新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S3c2410 LINUX下如何訪問IO端口

S3c2410 LINUX下如何訪問IO端口

作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
ARM體系結(jié)構(gòu)中訪問IO需使用驅(qū)動(dòng)模塊,可在模塊初始化中使用 request_mem_region()函數(shù)申請(qǐng)IO內(nèi)存,然后通過ioremap()函數(shù)對(duì)獲得的IO內(nèi)存進(jìn)行重映射.
如控制s3c2410的LED顯示,使用GPF口,可用如下代碼段進(jìn)行訪問
#define GPF 0x56000000
...
static void * GPF_BASE; //一定要定義成void *型
...
if(request_mem_region(GPF,16,"GPF")!=NULL) //16為從地址GPF開始的16個(gè)字節(jié)
{
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
}
...
內(nèi)核中通常并不使用ioremap()函數(shù),而是直接通過宏來將物理地址轉(zhuǎn)換為虛擬地址.但物理地址到虛擬地址的轉(zhuǎn)換不可少.


關(guān)鍵詞: S3c2410LINUX訪問IO端

評(píng)論


技術(shù)專區(qū)

關(guān)閉