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 ...
随机推荐
- 一个完整的可以输出移动端当前省市(地理坐标)的html页面
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 通俗易懂的KMP理论讲解(含手求Next数组)
通俗易懂的KMP理论讲解(含手求Next数组) 1.KMP算法介绍 KMP算法的核心是利用匹配失败后的信息,通过一个 next 数组,保存模式串中前后最长公共子序列的长度,尽量减少模式串与主串的匹配次 ...
- 【强化学习】Markov Decision processes【二】
目录 Markov Decision processes Markov Process Markov reward process Markov Decision processes 马尔可夫决策过程 ...
- 使用sshfs-win将linux服务器目录挂载到windows下
可以直接将服务器上的目录挂载到 Windows 的资源管理器,相当于多了一个磁盘,这样子就可以直接将数据下载到服务器上了,挺方便的. 原理说明 一般情况下,我们可以通过 samba 协议挂载远程服务器 ...
- C 语言编程 — 高级数据类型 — 字符串
目录 文章目录 目录 前文列表 字符串 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本数据类型> <C ...
- EDP .Net开发框架--WebApi
平台下载地址:https://gitee.com/alwaysinsist/edp 按分类管理EDP所提供的WebApi接口,以供其他应用调用.WebApi接口不仅可以进行访问控制管理,同时还提供了版 ...
- Istio(六):Istio弹性(超时&重试)和故障注入
目录 一.模块概览 二.系统环境 三.弹性(超时&重试) 3.1 弹性 四.故障注入 4.1 故障注入 五.实战:观察错误注入 5.1 在 Grafana.Zipkin 和 Kiali 中观察 ...
- linux ls命令的重要用法:按照文件大小排序和按照时间排序
1.ls命令是list的缩写,用来打印当前目录清单或者打印出指定目录下的文件及文件清单. 2.本文介绍ls的重要用法:按"文件大小"排序列出文件清单和按"时间" ...
- 【u8 login debug】u8 16.0 没有调试 login的解决办法
16.0 没有调试 login,改一下注册表 就行[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ufsoft\WF\V8.700]"Enable.Debu ...
- c# 32位程序突破2G内存限制
起因在开发过程中,由于某些COM组件只能在32位程序下运行,程序不得不在X86平台下生成.而X86的32位程序默认内存大小被限制在2G.由于程序中可能存在大数量处理,期间对象若没有及时释放或则回收,内 ...