取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Highlighted
Observer
Observer
1,017 次查看
注册日期: ‎06-20-2018

ZYNQ 的AXI_GPIO linux下如何批量操作?

本人由于需要240个IO口,由于使用Z7035的IO资源有限,特使用了P8255A进行扩充,Vivado 使用AXI_GPIO核进行了扩展,使用petalinux搭建linux系统环境,但发现 "/sys/class/gpio"下貌似只能单个io口操作,能否批量操作io口呢?比如一次性操作8个呢?AXI-GPIO本是AXI_LITE总线的IP核,linux环境如何使用地址直接操作呢?一个一个IO口操作相当麻烦,裸机调试到是可以按地址操作io口

0 项奖励
3 回复数
Highlighted
Xilinx Employee
Xilinx Employee
981 次查看
注册日期: ‎09-14-2018

hi, 

@mxc528169645 以下几个方法供参考,

1. 使用linux下 devmem指令可以直接对实际地址进行读写操作,不过这个功能比较危险因为能直接访问物理地址,建议仅限测试使用。

2. UIO的方式。相比devmem更安全且可以使用中断。仅需要写应用代码,不需要写驱动。

3. 自己编写GPIO驱动,这个比较麻烦;

----------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
----------------------------------------------------------------------------------------------

 

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
978 次查看
注册日期: ‎09-14-2018

0 项奖励
Highlighted
Observer
Observer
958 次查看
注册日期: ‎06-20-2018

谢谢,我下你学习下,应该可以使用mmap 写应用代码实现
0 项奖励