求问在ZYNQ上跑linux,怎样开发多寄存器的AXI4_IP的驱动
题主既然看了1个寄存器的驱动程序,想必知道要实现哪些函数了,那这部分我就不说了。单说用4个寄存器有什么不同。把用户空间的参数取过来之后,按照参数,分别写指定的寄存器。在FPGA的IP中(verilog文件),有个在AXI模板中例化LED接口的模块。默认有四个寄存器,把不同的寄存器的最低位连接到LED接口上。
■网友
很简单啊 。首先软件寄存器(也就是写驱动会用到的那个硬件地址)适合硬件逻辑一一对应的,你说的一个寄存器的最低四位映射到了4个LED,那是因为32位的寄存器至少可以分别控制32个LED,如果再加寄存器岂不是浪费。当然如果你非要用4个软件寄存器,那么你在建立IP的时候就建立4个32位软件寄存器,然后你用每一个32位寄存器的任意一位去控制一个LED就可以了,比如:LED1 = slv_reg0;LED2 = slv_reg1;LED3 = slv_reg2;LED4 = slv_reg3;所以说这并不是Linux驱动的问题,而是你硬件支持不的事情,你的硬件设计了多少个软件寄存器,那么驱动应该(而且是必须)根据这些寄存器去控制,具体的控制逻辑必然要遵循你硬件设计逻辑。驱动仅仅是配合硬件而已。
■网友
使用/dev/mem或者UiO,这俩种方法各有优缺点
■网友
最近我也遇到这个问题~ 同求
推荐阅读
- 大学要开始查文献le,求问有哪些中英文的文献网站或下载工具(最好是医药,生命科学类的),多谢啦?
- 趣头条|"穷人"才买自主品牌?你们发现没,路上跑的红旗越来越多了
- 求问:重启手机QQ,消息记录消失
- 车市纵览|20年后汽车长啥样?不光能地上跑,还能天上飞!
- 产品经理同时接手多个项目,现略抓狂状态,求问有哪些工作方法或者提高效率的工具可以解决
- 求问codewar上的一道题
- 请问房产策划助理和4S店市场专员,饿了么的大客户BD哪个比较有前景求问
- 懂车之后吧|高速上跑120,还有人超车,难道钱多不怕罚?还是我车码表是假的
- 咋在服务器上跑R
- 求问,这些淘宝上一块两块钱就能获得的上万留痕访问、浏览、点赞等是咋办到的(⊙o⊙)?
