新聞中心

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

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

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

        因為方案采用中斷方式,所以將NSEL置高位,即允許芯片中斷。16C554A有INTA、INTB、INTC、IN TD4個中斷線,第一片與系統(tǒng)總線的EINT1,EINT2,EINT5,EINT6相連,第二片與GPIO中的EINT11,EINT13,EINT15,EIN39中斷相連,使得任一片芯片的任意的端口都能產生中斷。
        的A0,A1,A2,A4,A5,A24通過不同組合可以選擇8個不同的端口。nGCS5與74LS138譯碼器片選腳相連,根據對地址空間的定義,這樣就確定了第一片16C554A芯片4個端口的訪問地址為0X28000000,0X28000010,0X28000020,0X28000030,第二片16C554A擴展芯片4個端口的訪問地址為0X29000000,0X29000010,0X29000020,0X29000030,根據端口基地址就可以確定片內的各個寄存器地址。具體連接如圖4所示。

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

        d.JPG



        3 驅動程序移植
        軟件主要是為設備編寫驅動程序。設備驅動是介于硬件和操作系統(tǒng)之間的軟件接口,主要功能包括:探測和初始化設備;從設備接收數據并提交給內核;從內核接收數據送到設備;檢測和處理設備錯誤。
        驅動程序從上到下分為4層:終端設備層、行規(guī)程、串口抽象層、串口芯片層。其中,串口芯片層與具體的芯片相關,主要是向串口抽象層提供串口芯片所用的資源,還進行一些與芯片相關的設置。
        TL16C554A擴展串口芯片屬于標準串口,內核的串口驅動程序對它支持它的驅動程序就是內核代碼中的driver/seria/8250.c.入口函數是serial8250_init,它用于向串口抽象層提供注冊串口的物理信息。串口的物理信息主要有兩類:訪問地址和中斷號。所以只要設置好這兩類物理信息,就可以驅動擴展串口了,圖5為驅動程序移植流程。

        e.JPG


        3.1 構建擴展串口的數據結構
        串口的物理信息存儲在內核源程序arch/arm/plats3c24xx/common-smdk.c中,所以主要工作是在commonsmdk.c源文件中增加三段代碼:
        1)增加頭文件
        源程序中要包含頭文件linux/serial_8250.h,用于告訴編譯器使用8250.c作為擴展串口的源程序;

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


        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 黄陵县| 崇阳县| 墨脱县| 鸡西市| 海宁市| 徐汇区| 汉中市| 射洪县| 平定县| 大石桥市| 贵阳市| 安西县| 北票市| 本溪市| 阿巴嘎旗| 咸宁市| 来安县| 临澧县| 全南县| 商丘市| 额尔古纳市| 凤阳县| 体育| 那曲县| 广德县| 布尔津县| 丹巴县| 东丰县| 威远县| 漾濞| 古田县| 司法| 浏阳市| 井研县| 托里县| 拜泉县| 集贤县| 石首市| 达孜县| 九寨沟县| 乐都县|