新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S3C2440和嵌入式Linux的擴展串口設計

        基于S3C2440和嵌入式Linux的擴展串口設計

        作者: 時間:2011-07-18 來源:網絡 收藏

        2)增加的物理信息
        在common-smdk.c文件中增加8個元素的structplat_serial8250_port結構數組,并加入數據項,如每個使用的物理地址和中斷號等信息,使系統啟動后能找到。下面以第1片TL16c554A的第1個串口CSA為例說明如何在源程序中添加數據結構:
        f.JPG
        g.JPG
        3)加入內核設備列表中
        把串口設備(s3c_deviee_8250代表TL16c550A芯片)加入到內核的platform_device結構中
        static struct platform_device_initdata*smdk_devs[]={ s3c_device_8250,};

        3.2 增加開發板代碼使串口可用
        主要修改drivers/serial/8250.c文件,使BANK5以8位的位寬訪問TL16c554A芯片,并指定芯片的中斷觸發方式。
        1)增加頭文件asm/areh-s3c2410/regs-mem.h,定位TL16c554A所在的地址空間;
        2)設置存儲控制器的BANK5的位寬(8位)
        在serial8250_init(void)初始化函數中把存儲控制器的位寬寄存器設為0X22011110;
        3)指定中斷觸發方式
        因為TL160554A的中斷信號INTA、INTB、INTC、INTD為高電平有效,所以需將INTA、INTB、INTC、INTD上升沿觸發,在調用中斷函數req-uest_irq前應設置中斷標志為IRQF_TRIGGER_RISING。
        3. 3 增加內核配置項
        在內核源代碼的driver/serial/Kconfig中增加config條目CONFIG_SERIAL_EXTEND_S3C24XX,內核編譯時選定該選項可以把驅動程序編譯進系統中。

        4 測試串口
        測試的工作包括編譯內核、在根文件系統中增加設備文件、修改系統初始化腳本、測試串口幾個步驟。圖6為串口測試流程圖。

        本文引用地址:http://www.104case.com/article/150465.htm

        h.JPG


        1)配置、編譯內核
        配置內核時增加配置選項CONFIG_SERIAL_EXTEND_S3C24XX,執行“make uImage”命令,編譯內核。
        2)修改根文件系統
        系統中通過設備文件來訪問具體的物理設備,故使用mknod命令,增加ttyS0,ttyS1,…,ttyS7設備文件,分別對應兩片TL16c554A的8個串口。命令格式如下:
        # mknod/dev/ttyS0 c 4 64
        3)修改配置文件
        在/etc/inittab配置文件中添加ttyS0::askfirat:-/bin/sh
        4)測試
        把第一個串口與主機相連,設置U-Boot的啟動參數為:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttyS0,重新啟動開發板,就能在超級終端下看到linux系統啟動信息了。

        5 結束語
        本文提供了在原有TQ2440開發板中8個串口,采用中斷服務的方案,提高了ARM9系統運行效率。在此基礎上可以進一步擴大,將串口擴展到12個、16個或者更多。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 漯河市| 航空| 马公市| 黔西县| 诸暨市| 咸丰县| 九龙县| 东源县| 泗水县| 山西省| 万荣县| 湾仔区| 射洪县| 平南县| 临汾市| 肇庆市| 庆元县| 西吉县| 沅江市| 沈阳市| 永福县| 额济纳旗| 韩城市| 张家口市| 沅江市| 宜川县| 原平市| 广汉市| 扶风县| 新巴尔虎右旗| 潞城市| 黄山市| 分宜县| 太康县| 丹江口市| 漳平市| 霞浦县| 五台县| 隆尧县| 开江县| 宝丰县|