S3C2410 Linux下如何访问IO端口
ARM体系结构中访问IO需使用驱动模块,可在模块初始化中使用 request_mem_region()函数申请IO内存,然后通过ioremap()函数对获得的IO内存进行重映射.
如控制s3c2410的LED显示,使用GPF口,可用如下代码段进行访问
#define GPF 0x56000000
...
static void * GPF_BASE; //一定要定义成void *型
...
if(request_mem_region(GPF,16,"GPF")!=NULL) //16为从地址GPF开始的16个字节
{
GPF_BASE=ioremap(GPF,16);
writel(0x5500,GPF_BASE); //GPFCON=0x5500
writel(0xf0,GPF_BASE+8); //GPFUP=0xf0
writel(0x70,GPF_BASE+4); //GPFDAT=0x70 }
...
内核中通常并不使用ioremap()函数,而是直接通过宏来将物理地址转换为虚拟地址.但物理地址到虚拟地址的转换不可少.
相关推荐
farwang 2020-11-25
星愿心愿 2020-11-24
tianhuak 2020-11-24
zhjn0 2020-11-24
昭君出塞 2020-11-23
bluecarrot 2020-11-23
linuxwcj 2020-10-21
以梦为马不负韶华 2020-10-20
彼岸随笔 2020-10-20
yutou0 2020-10-17
applecarelte 2020-10-16
ourtimes 2020-10-16
waterhorse 2020-09-19
MRFENGG 2020-11-11
rainandtear 2020-10-30
kyssfanhui 2020-10-20
liuhangtiant 2020-10-20