在线时间3 小时
UID1748134
注册时间2020-1-22
NXP金币0
该用户从未签到
新手上路

- 积分
- 40
- 最后登录
- 2020-3-24
|
LINUX下,eim_reg = (int *)mmap(NULL, 4*6*4+4*3, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x021B8000); ,这个方式居然不能写EIM的配置寄存器【其他外设比如GPIO_BASE=0x0209C000就能正常配置和操作IO】,而且访问EIM 数据地址空间CPU就会死掉,是什么原因?无论怎么配置EIM寄存器的值,回读EIM寄存器值都是如下值
RegInit 2##EIM_CS0GCR1=0x00610089
RegInit 2##EIM_CS0GCR2=0x00001002
RegInit 2##EIM_CS0RCR1=0x1C022000
RegInit 2##EIM_CS0RCR2=0x00000000
RegInit 2##EIM_CS0WCR1=0x1C092480
RegInit 2##EIM_CS0WCR2=0x00000000
代码:
eim_reg[ZJWEIM_CS0RCR1] = 0x0C000000;
eim_reg[ZJWEIM_CS0RCR2] = 0x00000000;
eim_reg[ZJWEIM_CS0WCR1] = 0x0A000000;
eim_reg[ZJWEIM_CS0GCR1] = 0x0041008F;
eim_reg[ZJWEIM_CS0GCR2] = 0x00000001;
usleep(1000000);
printf("RegInit 2##EIM_CS0GCR1=0x%08X\n",eim_reg[ZJWEIM_CS0GCR1]); //0x1C022000
printf("RegInit 2##EIM_CS0GCR2=0x%08X\n",eim_reg[ZJWEIM_CS0GCR2]); //0x00000000
printf("RegInit 2##EIM_CS0RCR1=0x%08X\n",eim_reg[ZJWEIM_CS0RCR1]); //0x1C092480
printf("RegInit 2##EIM_CS0RCR2=0x%08X\n",eim_reg[ZJWEIM_CS0RCR2]); //0x00000000
printf("RegInit 2##EIM_CS0WCR1=0x%08X\n",eim_reg[ZJWEIM_CS0WCR1]); //0x1C092480
printf("RegInit 2##EIM_CS0WCR2=0x%08X\n",eim_reg[ZJWEIM_CS0WCR2]); //0x00000000
最佳答案
关于 EIM configuration你可以查看
linux/Documentation/devicetree/bindings/bus/imx-weim.txt
linux-imx.git - i.MX Linux Kernel
EIM registers in i.MX6Q RM Chapter 22 External Interface Module (EIM)
h ...
|
|