新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S3C44BOX用中斷方式在μC/OS-Ⅱ上實現多任務通信

        基于S3C44BOX用中斷方式在μC/OS-Ⅱ上實現多任務通信

        作者: 時間:2012-04-20 來源:網絡 收藏

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

        34.jpg
        圖2 應用主程序流程圖

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 敦化市| 青州市| 新巴尔虎左旗| 永济市| 财经| 同德县| 永川市| 和平区| 工布江达县| 石门县| 南郑县| 曲周县| 吉水县| 大新县| 东丽区| 鸡西市| 潜江市| 凤庆县| 孝感市| 五大连池市| 丹巴县| 清新县| 龙川县| 景德镇市| 郎溪县| 新巴尔虎右旗| 湄潭县| 扶沟县| 原平市| 黄陵县| 常宁市| 长治县| 普格县| 通化市| 开阳县| 健康| 南澳县| 噶尔县| 油尖旺区| 余江县| 荣昌县|