新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式技巧:ARM的三種中斷調試方法介紹

        嵌入式技巧:ARM的三種中斷調試方法介紹

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

        1 軟件開發流程

        參照軟件的開發流程。第一步:工程建立和配置。第二步:編輯源文件。第三步:工程編譯和鏈接。第四步:軟件的調試。第五步:執行文件的固化。

        在整個流程中,用戶首先需要建立工程并對工程做初步的配置,包括配置處理器和配置調試設備。編輯工程文件,包括自己編寫的匯編和C語言源程序,還有工程編譯時需要編寫的鏈接腳本文件,調試過程中需要編寫存儲區映像文件和命令腳本文件,以及上電復位時的程序運行入口的啟動程序文件。

        對后四種文件的理解很重要,其作用解釋如下。

        (1) 鏈接腳本文件:在程序編譯時起作用。該文件描述代碼鏈接定位的有關信息,包括代碼段,數據段,地址段等,鏈接器必須使用該文件對整個系統的代碼做正確的定位。在SDRAM中調試程序、在FLASH中調試或固化后運行的鏈接腳本文件應加以區分。(在IDE開發環境中使用擴展名*.ld)

        (2)命令腳本文件:在SDRAM中調試程序時起作用。在集成環境與目標連接時、軟件調試過程中以及目標板復位后,有時需要集成環境自動完成一些特定的操作,比如復位目標板、清除看門狗、屏蔽中斷寄存器、存儲區映射等。這些操作可以通過執行一組命令序列來完成,保存一組命令序列的文本文件稱為命令腳本文件(在 IDE開發環境中使用擴展名*.cs)。

        (3)存儲區映像文件:在SDRAM中調試程序時起作用。在軟件調試過程中訪問非法存儲區在部分處理器和目標板上會產生異常,如果異常沒有處理,則會導致軟件調試過程無法繼續,為了防止以上問題并調整仿真器訪問速度以達到最合適的水平,提供這樣一種用于描述各個存儲區性質的文件叫存儲區映像文件(在IDE開發環境中使用擴展名*.map)。

        在程序的調試過程中可以選擇使用存儲區映像文件*.map和命令腳本文件*. cs配合程序的調試。

        (4) 啟動文件:它主要是完成一些和硬件相關的初始化的工作,為應用程序做準備。一般,啟動代碼的第一步是設置中斷和異常向量;第二步是完成系統啟動所必須的寄存器配置;第三步設置看門狗及用戶設計的部分外圍電路;第四步是配置系統所使用的存儲區分配地址空間; 第五步是變量初始化;第六步是為處理器的每個工作模式設置棧指針;最后一步是進入高級語言入口函數(Main函數)。

        2 中斷程序設計

        方面可以采用類似矢量中斷動態處理方式,讓中斷對應的確定地址代碼調轉到RAM的固定地址處,定義一個函數指針指向該固定地址,就可以隨時通過替換RAM固定地址處的代碼,實現動態改變中斷處理函數。

        具體方法是:

        (1)將中斷源函數指針定義在RAM中相對的固定地址,建立中斷矢量表;

        void SetInterrupt (U32 vector, void (*handler)())
        {
        InterruptHandlers[vector] = handler;
        }

        (2)在程序中,調用具體某中斷源的中斷處理函數;

        如: SetInterrupt(IIC_INT,IICWriteIsr);

        /* 聲明IIC中斷處理函數,其中IIC_INT為 IIC中斷源序號,IICWriteIsr為 IIC的寫中斷處理函數 */

        (3)在0x18處的IRQ或0x1C處的FIQ中斷入口函數中,獲取中斷源、清除中斷掛起標志、通過已定義的中斷源函數指針進入用戶具體某中斷處理程序。

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

        上一頁 1 2 下一頁

        關鍵詞: 嵌入式 ARM 中斷調試

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴宁市| 青海省| 定安县| 五寨县| 塘沽区| 原阳县| 安达市| 绥江县| 休宁县| 台南市| 江山市| 琼海市| 叙永县| 寿阳县| 逊克县| 湘乡市| 大悟县| 安丘市| 平武县| 绥江县| 绵阳市| 铜鼓县| 汝阳县| 衢州市| 共和县| 合江县| 大渡口区| 广州市| 南靖县| 宁晋县| 上思县| 饶平县| 本溪| 息烽县| 侯马市| 高要市| 精河县| 虞城县| 兴义市| 嘉义市| 苗栗县|