社区
驱动开发/核心开发
帖子详情
arm读取fpga寄存器数据错误
jidesanhaofei110
2012-03-13 09:41:34
fpga接在arm总线上,fpga准备好数据,给个中断,arm开始读数据,现在的情况是这样,Fpga写的数据是0,1,2,3,4.。。。65535连续的数,而arm-linux下读出的数据时0,257,514,。。。。65535,中间间隔了257,我用的是ioremap地址映射,然后读虚拟地址的值,而在裸机下直接读物理地址,数据是对的,真是奇了怪了,这种情况有可能是什么情况造成的啊?各位大大遇到过类似的情况吗?求各位大大指点?好纠结
...全文
225
4
打赏
收藏
arm读取fpga寄存器数据错误
fpga接在arm总线上,fpga准备好数据,给个中断,arm开始读数据,现在的情况是这样,Fpga写的数据是0,1,2,3,4.。。。65535连续的数,而arm-linux下读出的数据时0,257,514,。。。。65535,中间间隔了257,我用的是ioremap地址映射,然后读虚拟地址的值,而在裸机下直接读物理地址,数据是对的,真是奇了怪了,这种情况有可能是什么情况造成的啊?各位大大遇到过类似的情况吗?求各位大大指点?好纠结
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lkncjy
2012-03-16
打赏
举报
回复
1.fpga先只送一个数据,ARM再读取看看正确不
重复几次1步骤看下规律。
shenlin19860229
2012-03-14
打赏
举报
回复
我想是由于你FPGA发送数据的频率和ARM读数据频率不同步吧!我最近也在做传输这块,用的是DMA,问题差不多,FPGA未发出请求,ARM也开始读数据,也是才用的ioremap方式。
falloutmx
2012-03-14
打赏
举报
回复
[Quote=引用楼主 jidesanhaofei110 的回复:]
fpga接在arm总线上,fpga准备好数据,给个中断,arm开始读数据,现在的情况是这样,Fpga写的数据是0,1,2,3,4.。。。65535连续的数,而arm-linux下读出的数据时0,257,514,。。。。65535,中间间隔了257,我用的是ioremap地址映射,然后读虚拟地址的值,而在裸机下直接读物理地址,数据是对的,真是奇了怪了,这种情况有可能是什么情况造成的啊?各位大大遇到过……
[/Quote]
有点怀疑是位宽问题。257和512的二进制分别是1 0000 0001和10 0000 0010
jidesanhaofei110
2012-03-13
打赏
举报
回复
大大门指点指点啊
异步FSMC的方式实现
FPGA
与STM32通信
异步FSMC的方式实现
FPGA
与STM32通信。自己写的程序。通过16位复用的地址信号线实现STM32与
FPGA
直接的
数据
交互。在
FPGA
中例化了位宽:16位;深度:4096 word的 8K RAM空间。其中前16个字地址为预留的16个16位
寄存器
,其余的为
数据
存储区。前三个
寄存器
目前用来指示
FPGA
LED的三个颜色。 按下
ARM
按键后STM32开始往
数据
存储区中写入
数据
。 全部写满后开始
读取
,若与写入
数据
相同,说明验证成功。 此时
ARM
LED为绿色,
FPGA
LED循环亮一次。
Xilinx_ZYNQ7020_自定义IP开发文档.docx
本文档详细描述了基于Xilinx Zynq 7020 SOC的自定义IP的实现,并带领大家一步步完成自定义用户逻辑IP与Zynq
ARM
通过AXI-Lite通讯的实验。教程非常详细包括
FPGA
部分和SDK软件部分的开发,以及自定义驱动文件的创建和使用等。 ZYNQ芯片的PL部分也就是
FPGA
部分,定义了一个用户逻辑的IP,实现将两个输入的32bit的
数据
相加。自定义的用户逻辑IP中设计了4个
寄存器
,其中3个配置
寄存器
(可读、可写)和一个状态
寄存器
(只读)。
ARM
处理器通过写配置
寄存器
slv_reg0和slv_reg1分别写入两个输入
数据
,用户逻辑做加法运算,计算相加的结果放入slv_reg3
寄存器
中。slv_reg3
寄存器
作为自定义IP的状态
寄存器
使用,不能写,只能读。
ARM
处理器
读取
slv_reg3
寄存器
中的
数据
,并将结果显示在串口调试工具窗口中。
custom_ip.zip
Xilinx_ZYNQ7020_自定义IP开发文档(配套源码)。 本文档详细描述了基于Xilinx Zynq 7020 SOC的自定义IP的实现,并带领大家一步步完成自定义用户逻辑IP与Zynq
ARM
通过AXI-Lite通讯的实验。教程非常详细包括
FPGA
部分和SDK软件部分的开发,以及自定义驱动文件的创建和使用等。 ZYNQ芯片的PL部分也就是
FPGA
部分,定义了一个用户逻辑的IP,实现将两个输入的32bit的
数据
相加。自定义的用户逻辑IP中设计了4个
寄存器
,其中3个配置
寄存器
(可读、可写)和一个状态
寄存器
(只读)。
ARM
处理器通过写配置
寄存器
slv_reg0和slv_reg1分别写入两个输入
数据
,用户逻辑做加法运算,计算相加的结果放入slv_reg3
寄存器
中。slv_reg3
寄存器
作为自定义IP的状态
寄存器
使用,不能写,只能读。
ARM
处理器
读取
slv_reg3
寄存器
中的
数据
,并将结果显示在串口调试工具窗口中。
复旦nois教材01.rar
1 第一章 绪论....................................................................................................................................1 1.1 概述...................................................................................................................................1 1.2 本书内容安排....................................................................................................................3 1.3 设计步骤............................................................................................................................4 1.4 支持Nios CPU的
FPGA
型号.............................................................................................5 第二章 SOPC Builder开发环境......................................................................................................8 2.1 创建Quartus II工程...........................................................................................................8 2.2 创建 Nios 系统模块......................................................................................................10 2.2.1 创建新的 .bdf ......................................................................................................10 2.2.2 开始使用SOPC Builder........................................................................................11 2.2.3 系统主频...............................................................................................................12 2.2.4 加入CPU和IP模块...............................................................................................12 2.2.5 指定基地址...........................................................................................................21 2.2.6 配置Nios系统.......................................................................................................22 2.2.7 生成Nios32 并把它加入到设计中......................................................................23 2.2.8 把符号(symbol)加入到BDF文件中...............................................................24 2.2.9 加入引脚和基本单元....................................................
ARM
和
FPGA
之间的通信(硬件原理图篇)
设计该开发板的初衷是为了学习,但也希望今后能扩展其功能,看到大家都在diy示波器,自己也非常冲动的想DIY一把,于是呼选了
arm
+
fpga
的方案,
fpga
主要用来实现
数据
的高速采样,而
ARM
则提供
数据
的显示,以及一些人机交互的功能。那么该方案中最重要的地方就是
ARM
和
FPGA
之间的通信如何实现了。在网上查了很多的资料,有说将
FPGA
作为
ARM
的一个外设,可以通过DMA的方式来直接访问;也有说把FP
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章