//向内核申请寄存器地址空间
if (!request_mem_region(0xE0200240, 4,"gpip_con"))
return -EINVAL;
//0xE020_0244 is the start of the gpj0 data register
if (!request_mem_region(0xE0200244, 4,"gpip_data"))
return -EINVAL;
//注册寄存器地址空间映射到虚拟内存中的指针
p_Gpj0CON = ioremap(0xE0200240, 4);
p_Gpj0DATA = ioremap(0xE0200244, 4);
//操作寄存器
*p_Gpj0CON = 0X11111111;
*p_Gpj0DATA &= ((0<<3)|(0<<4)|(0<<5));
取消注册地址空间
iounmap(p_Gpj0CON);
iounmap(p_Gpj0DATA);
//向内核释放寄存器地址空间
release_mem_region(0xE0200240, 4);
release_mem_region(0xE0200244, 4);
Linux驱动中建立动态映射来实现操作寄存器
最新推荐文章于 2022-04-10 22:17:22 发布