1、背景介绍
最近调试的模块中使用PS GPIO模拟I2C进行I2C数据接收,在把standalone程序移植到应用程序下后,发现在mmap映射后读取PS GPIO物理地址寄存器空间(0xE000A000-0Xe000b000)返回值均为0,用devmem应用程序跑了一下,发现无法写入。
2、解决方法
在xilinx论坛上查到了解决办法,如下:
上面提到由于新内核中启用了电源管理机制,内核默认将设备处于暂停状态,从而使用devmem读写寄存器失败,关闭电源管理机制后能解决该问题。
于是修改了内核配置,如下。
使用devmem能对PS GPIO进行正常读写。