新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C44BOX用中斷方式在μC/OS-Ⅱ上實(shí)現(xiàn)多任務(wù)通信

        基于S3C44BOX用中斷方式在μC/OS-Ⅱ上實(shí)現(xiàn)多任務(wù)通信

        作者: 時(shí)間:2012-04-20 來源:網(wǎng)絡(luò) 收藏

        應(yīng)用主程序是用C編寫,通過的初始化程序中Bmain語句跳轉(zhuǎn)進(jìn)入的,首先對串口的端口、波特率、數(shù)據(jù)位等進(jìn)行初始化,然后設(shè)定串口調(diào)用函數(shù)的地址,該地址和下面串口源的地址一致,然后通過對寄存器的設(shè)置打開串口中斷,這時(shí)才開始啟動,在中完成對串口數(shù)據(jù)的處理。在主程序中程序流程見圖2。

        34.jpg
        圖2 應(yīng)用主程序流程圖

        在編寫與硬件有關(guān)的初始化程序時(shí)主要是對內(nèi)部各寄存器進(jìn)行初始化,S3C44BOX有七種異常中斷向量,地址為0x00— 0x1c(其中0x14地址保留),這些是硬件固化了的地址,不能用軟件隨意改變,只能根據(jù)各異常中斷向量地址編寫中斷入口點(diǎn),在入口地址處放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序。當(dāng)內(nèi)部或外部中斷產(chǎn)生時(shí),程序會跳轉(zhuǎn)到相對應(yīng)的異常中斷向量地址處,在應(yīng)用主程序的初始化過程中已通過S3C44BOX內(nèi)部寄存器INTMOD將串口中斷設(shè)置為IRQ中斷模式,所以在該部分程序中,當(dāng)串口中斷產(chǎn)生時(shí),會跳轉(zhuǎn)到IRQ異常中斷向量地址處,根據(jù)跳轉(zhuǎn)語句進(jìn)入到對應(yīng)的 IRQ異常處理程序中。因?yàn)镮RQ有30個(gè)中斷源,所以在該處理程序中要判斷中斷源的類型,判斷是串口中斷后就跳轉(zhuǎn)到位于操作系統(tǒng)中的串口中斷處理調(diào)用程序中去。其中每個(gè)中斷源的物理地址(起始地址加上矢量地址)是在數(shù)據(jù)段中定義的,起始地址則是根據(jù)硬件結(jié)構(gòu)在option.a文件中設(shè)置,為 0x0c7fff00。



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 马边| 海宁市| 霍林郭勒市| 永春县| 吉首市| 开阳县| 秦皇岛市| 江口县| 沙洋县| 水城县| 崇信县| 中宁县| 喀喇沁旗| 和政县| 郯城县| 江都市| 广南县| 莱阳市| 额敏县| 阳东县| 阿图什市| 芜湖市| 眉山市| 卓尼县| 乌拉特前旗| 永州市| 广昌县| 靖安县| 铜川市| 习水县| 托克逊县| 上蔡县| 九龙县| 犍为县| 水富县| 施甸县| 龙门县| 德化县| 通河县| 兰坪| 乡城县|