新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > S3c2410 LINUX下如何訪問IO端口

        S3c2410 LINUX下如何訪問IO端口

        作者: 時間:2016-11-20 來源:網絡 收藏
        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()函數,而是直接通過宏來將物理地址轉換為虛擬地址.但物理地址到虛擬地址的轉換不可少.


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 汉寿县| 军事| 富平县| 梁山县| 铁力市| 陵水| 七台河市| 佛山市| 益阳市| 巫溪县| 平昌县| 棋牌| 七台河市| 磐石市| 临西县| 图木舒克市| 饶河县| 沽源县| 扎赉特旗| 阿合奇县| 临桂县| 浦东新区| 米脂县| 巴南区| 卢湾区| 民乐县| 蛟河市| 雷山县| 赞皇县| 毕节市| 静海县| 永川市| 宽城| 新乐市| 洪泽县| 普陀区| 上栗县| 松阳县| 临高县| 孟州市| 长寿区|