背景

当时在搞ZYNQ驱动的时候,出于TDD的思想,从最简单的功能开始验证。因此就涉及到了下面的需求。

PL侧会提供寄存器地址供PS端读写,这部分的寄存器在PL侧作为Avalon的IP,对PS端来说,就是一片物理地址。

PL

不做修改,但在其中Launch SDK

只要确保platform.h的内容是正确的,不这么做也没问题。

PS

工具是SDK。

NEW - Application,建一个HelloWord

使用Vivado生成的BSP

只使用以下代码:


#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xil_io.h" int main()
{
int i = 0, loop = 0;
init_platform(); print("Hello World\n\r");
while(1)
{
loop++;
i++;
Xil_Out32(XPAR_M_AVALON_0_BASEADDR, i);
if(Xil_In32(XPAR_M_AVALON_0_BASEADDR) !=loop)
{
printf("loop %x, read %x\n",loop, Xil_In32(XPAR_M_AVALON_0_BASEADDR)); }else{
printf("loop %x, OK\n",loop);
} if(Xil_In32(XPAR_AXI_GPIO_1_BASEADDR))
{
Xil_Out32(XPAR_AXI_GPIO_0_BASEADDR , 1) ;
}else
{
Xil_Out32(XPAR_AXI_GPIO_0_BASEADDR , 0) ;
} } cleanup_platform();
return 0;
}

右键 项目 Run As --RunConfiguration

  • 双击System Debugger
  • 勾选 全部

运行,测试。查看结果是否与PL端的预期一致(或者可以使用逻辑分析仪抓一下时序图)

Xilinux PS与PL交互:裸机程序读写FPGA-REG的更多相关文章

  1. 78.PL和PS通过BRAM交互共享数据

    本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...

  2. MiZ702学习笔记13——ZYNQ通过AXI-Lite与PL交互

    在<MiZ702学习笔记7——尝试自制带总线IP>,我曾提到了AXI4-Lite的简单用法,驱动了下流水灯,只涉及到了写总线.今天,我想利用之前的VGA模块,将AXI4-Lite的读写都应 ...

  3. PS与PL协同设计

    https://blog.csdn.net/Fei_Yang_YF/article/details/79676172 什么是PS和PL ZYNQ-7000是Xilinx推出的一款全可编程片上系统(Al ...

  4. zedboard通过BRAM实现PS和PL的简单通信

    使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口 ...

  5. 基于KEIL4开发ARM9(S3C2440)的裸机程序

    本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序. 说明: 一.平台: 操作系统:Windows XP系统 KEIL版本:4.73 开发板:ARM9(S3C2440) 二.建立工程 ...

  6. 使用axi_datamover完成ZYNQ片内PS与PL间的数据传输

    分享下PS与PL之间数据传输比较另类的实现方式,实现目标是: 1.传输时数据不能滞留在一端,无论是1个字节还是1K字节都能立即发送: 2.PL端接口为FIFO接口: PS到PL的数据传输流程: PS到 ...

  7. ubuntu15.10跑裸机程序跑.bin文件

    1:安装tftp:#apt-get update#apt-get install tftp-hpa tftpd-hpa xinetd2:#cd /srv#mkdir tftp#chmod 777 tf ...

  8. zedboard如何从PL端控制DDR读写(六)

    上一节说到了DDR寻址的问题,如下图: 从官方文档上我们看到了DDR的地址是从0008_0000开始的,那么我们开始修改Xilinx给我们提供的IP核代码.其实很简单,上一节已经分析了地址停留在000 ...

  9. EB-SAM9G45裸机程序下载方法

    开发板:EB-SAM9G45 这里提供一种裸程序下载的方法. 在官方提供的下载方法中有手动下载和自动下载,它们都离不开SAM-BA软件,而该软件使用比较麻烦,而且操作不当很容易导致电脑蓝屏,还有一个很 ...

  10. s3c2440 lcd 显示图片裸机程序

    因为前面的裸机程序非常的简单,就不写博了. 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SD ...

随机推荐

  1. 一个可以输出当前移动设备机型(安卓,ios)系统版本的html页面

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Ubuntu20.04桌面版图文安装(超详细)

    参考文档: https://baijiahao.baidu.com/s?id=1670100505795119581&wfr=spider&for=pc https://mirrors ...

  3. 飞桨动态图PyLayer机制

    一.主要用法 如下是官方文档上的使用样例: import paddle from paddle.autograd import PyLayer # Inherit from PyLayer class ...

  4. 1分钟了解什么是SQL聚合函数,一看就懂,一学就会!(AVG(column_name)\COUNT(column_name)\MAX(column_name)\MIN(column_name)\SUM(column_name))

    聚集函数:SQL基本函数,聚集函数对一组值执行计算,并返回单个值,也被称为组函数.聚集函数经常与SELECT语句的GROUP BY子句的HAVING一同使用.但是不可用于WHERE语句中,因为WHER ...

  5. OpenNESS NTS 的前世今生

    目录 文章目录 目录 NEV SDK NEV SDK 的软件架构 NEV SDK 的持续演进 OpenNESS NTS NTS 在 VM 场景中的应用 NTS 在 Container 场景中的应用 N ...

  6. 智能勘探 | AIRIOT智慧油田管理解决方案

      石油勘探和开采地处偏远地区,涉及面广且生产规模大.特殊的作业环境下,使得工作人员作业条件艰苦,仅靠人工值守难度很大,不可避免的遇到一系列硬核挑战: 1.设备维护难度较高: 2.采油厂分布地域广.分 ...

  7. 使用 Spacesniffer 找回 48G 系统存储空间的总结

    前言 Spacesniffer 是一个免费的文件扫描工具,通过使用树状图可视化布局,可以立即了解大文件夹的位置,帮助用户处理找到这些文件夹 当前系统C盘空间 清理后系统C盘空间 下载 Spacesni ...

  8. Spring 对于事务上的应用的详细说明

    1. Spring 对于事务上的应用的详细说明 @ 目录 1. Spring 对于事务上的应用的详细说明 每博一文案 2. 事务概述 3. 引入事务场景 3.1 第一步:准备数据库表 3.2 第二步: ...

  9. 使用jsbarcode生成条形码

    安装 yarn add jsbarcode 使用 // HTMLElement 承载条形码的元素 svg/canvas // text 显示在条形码下方的文字 // option 条形码的配置项 具体 ...

  10. JDK8之前,匿名内部类访问的局部变量为什么必须要用final修饰

    更多博文请关注:https://blog.bigcoder.cn 前不久在学习中意外发现了自己原来忽略的一个小知识点,挺有意思的,现在我来给大家分享一下! 我们先来看一段代码 public class ...