Xilinux PS与PL交互:裸机程序读写FPGA-REG
背景
当时在搞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的更多相关文章
- 78.PL和PS通过BRAM交互共享数据
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果 ...
- MiZ702学习笔记13——ZYNQ通过AXI-Lite与PL交互
在<MiZ702学习笔记7——尝试自制带总线IP>,我曾提到了AXI4-Lite的简单用法,驱动了下流水灯,只涉及到了写总线.今天,我想利用之前的VGA模块,将AXI4-Lite的读写都应 ...
- PS与PL协同设计
https://blog.csdn.net/Fei_Yang_YF/article/details/79676172 什么是PS和PL ZYNQ-7000是Xilinx推出的一款全可编程片上系统(Al ...
- zedboard通过BRAM实现PS和PL的简单通信
使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口 ...
- 基于KEIL4开发ARM9(S3C2440)的裸机程序
本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序. 说明: 一.平台: 操作系统:Windows XP系统 KEIL版本:4.73 开发板:ARM9(S3C2440) 二.建立工程 ...
- 使用axi_datamover完成ZYNQ片内PS与PL间的数据传输
分享下PS与PL之间数据传输比较另类的实现方式,实现目标是: 1.传输时数据不能滞留在一端,无论是1个字节还是1K字节都能立即发送: 2.PL端接口为FIFO接口: PS到PL的数据传输流程: PS到 ...
- ubuntu15.10跑裸机程序跑.bin文件
1:安装tftp:#apt-get update#apt-get install tftp-hpa tftpd-hpa xinetd2:#cd /srv#mkdir tftp#chmod 777 tf ...
- zedboard如何从PL端控制DDR读写(六)
上一节说到了DDR寻址的问题,如下图: 从官方文档上我们看到了DDR的地址是从0008_0000开始的,那么我们开始修改Xilinx给我们提供的IP核代码.其实很简单,上一节已经分析了地址停留在000 ...
- EB-SAM9G45裸机程序下载方法
开发板:EB-SAM9G45 这里提供一种裸程序下载的方法. 在官方提供的下载方法中有手动下载和自动下载,它们都离不开SAM-BA软件,而该软件使用比较麻烦,而且操作不当很容易导致电脑蓝屏,还有一个很 ...
- s3c2440 lcd 显示图片裸机程序
因为前面的裸机程序非常的简单,就不写博了. 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SD ...
随机推荐
- GeoHash实现附近的人功能(如微信附近的人、共享单车附近的车辆、美团附近的商家)
如何查找当前点(118.818747°E,32.074497°N)附近500米的人? 这一类功能很常见(如微信附近的人.共享单车附近的车辆.美团附近的商家),那在java中是如何实 现的呢? 1 实现 ...
- redo日志全部丢失的情况下。Oracle的实例恢复
场景: redo日志全部丢失的场景. alert日志报错如下: ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员 ORA-00312: 联机日志 1 线程 1: '/u01/app/ ...
- Python中强大的通用ORM框架:SQLAlchemy
Python中强大的通用ORM框架:SQLAlchemy https://zhuanlan.zhihu.com/p/444930067
- NASM中的ALIGN ALIGNB SECTALIGN
ALIGN与ALIGNB NASM中的ALIGN与ALIGNB是用来字节对齐的,它们接收2个参数,第一个参数是必须的,表示对齐的字节数(必须是2的幂),第二个参数是可选的,表示为了对齐而进行填充的内容 ...
- Selenium4自动化测试3--元素定位By.NAME,By.LINK_TEXT 和通过链接部分文本定位,By.PARTIAL_LINK_TEXT,css_selector定位,By.CSS_SELECTOR
4-通过名称定位,By.NAME name属性为表单中客户端提交数据的标识,一个网页中name值可能不是唯一的.所以要根据实际情况进行判断 import time from selenium impo ...
- Laravel框架中数据库分表时Model使用方法
前言: 0.最近在使用laravel框架做MySQL分表的时候经过实践和踩坑,总结了以下3种可行的分表方法,亲测可用. 1.本人公司做的是SaaS系统,以店铺为维度.店铺id(shop_id) 命名规 ...
- Composer 的下载与安装
一,Composer 的下载与安装 官网下载:https://getcomposer.org/download/ 打开 penssl的注释,在 D:\wamp\php7230\php.ini 文 ...
- React 的 KeepAlive 探索
什么是 KeepAlive? 用过 Vue 的童鞋都知道 Vue 官方自带了 Keep-Alive 组件,它能够使组件在切换时仍能保留原有的状态信息,并且有专门的生命周期方便去做额外的处理.该组件在很 ...
- RTMP 直播 H265 推流适配总结
1.在iOS11的系统之上,苹果逐渐放开H265硬编硬解的能力,硬解码的能力只要升级到iOS11之后,iPhone6+以上的机型就支持了(印象中): H265硬编码的能力对设备要求较高,不仅要求系统版 ...
- uniapp 上拉加载下拉刷新
page.json中配置"enablePullDownRefresh": true //单个页面修改刷新按钮的颜色 "app-plus": { "ti ...