引用 3 楼 tianxiapdw 的回复:
楼上正解!
sysMmuMapAdd必须在MMU初始化前调用(也就sysHwInit()内调用),你调用的位置是对的,但那时候printf不好用。
可以在vxworks启动后,再打印看一下。通过全局变量就可以使用基地址。(定义在驱动文件的初始处)
按照楼上说的试了下,在sysHwInit里用全局变量保存基地址membaseCsr 和映射空间长度r_membase,在usrAppInit里打印,显示membaseCsr 为0xfebff000,r_membase为0xfffff000,这是怎么回事呢,按照pci协议,先往配置空间写0xffffffff,再读就可以得到映射空间的长度了,地址不应该这么大?
我用的pci设备是RTD的CM17320HR,映射到存储器空间,长度为4K