新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 8051與AndesCore的軟件差異與移植

        8051與AndesCore的軟件差異與移植

        ——
        作者: 時間:2015-07-29 來源:電子產品世界 收藏

          5. 中斷向量及異常處理函數例子 以中斷向量及中斷處理函數的例子說明差異及移植。

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

          5.1. 匯編實現中段向量表

          []

          該例子顯示怎樣用匯編設置的中斷向量和中斷處理函數,在匯編中ORG指定了后面匯編代碼的位置,后面的中斷向量通常是一個跳轉語句。如下例第一個向量跳到主函數MAIN函數中,另外一個外部中斷1, 也是一個跳轉指令:LJMP INT 到后面的用匯編實現的中斷處理函數 INT 中。

          [ ™]

          該例子顯示怎樣用匯編設置™的中斷向量表和中斷處理函數, 該例子中exception_vector 是中斷向量表的label, 后面分別表示第0,1,2,3…個中斷向量,它們只是簡單的跳轉指令,跳到具體的執行實體中去,如vector 0 跳到_start, 做系統相關的初始化操作,_start 是系統啟動代碼,用匯編語言來實現。vector 9 后面對應的是外部中斷,中斷處理函數如OS_Trap_Interrupt_HW0,OS_Trap_Interrupt_HW1… 它通常用C 來實現,可以參考后面5.2 章節的™中斷處理函數范例。

          在上面用匯編設置AndesCore™的中斷向量表的例子中,我們需要將中斷向量表最終設定在0 地址處,可以通過 section語法配合sag 工具實現,例子中我們設定該段的 section 名為.vector, 所以在sag 中,我們自定義一個

          USER_SECTION 為.vector,并 將.vector放在0 開始的地方并作為第一個 section。

          通過上面的sag 語法,并使用andes 提供的sag 轉ld 的工具,可以產生類似以下的ld ,在工程進行鏈接的時候選擇該 ld 時就能確保 .vector鏈接的地址位于0 處。

          關于詳細的SAG使用,可以參考我們的另一篇文章:《Andes 的分散聚合(SAG)機制

          5.2. 中斷處理函數的C 實現

          6. 適用于MCU的Andes CPUs

          Andes 有三款非常適用于 MCU應用的CPU,分別是:N705,N801,N968A,如下圖所列:

          N705和N801分別采用了兩級和三級流水線,都具有很低的功耗和很好的性能,當應用需要的頻率較低時,使用兩級流水線的N705能發揮出更好的性能和更低功耗的特性,相比于8051,兩級流水線的 N705 在頻率方面高出許多,比如在TSMC 40nm LP 工藝下能跑到超過240MHz ,所以完全能勝任8051的應用需求。N968A使用了五級的流水線,同樣有低功耗的特性和很好的性能,同時該款CPU具有很強的可配置性,如支持多種總線接口,還支持了專門為audio的加速指令,N968A是一個多面手,性能好,功耗低,又具備強大的可配置特性,適合于多種應用。


        上一頁 1 2 3 下一頁

        關鍵詞: 8051 AndesCore

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 依兰县| 金溪县| 肇源县| 红原县| 新泰市| 元江| 无棣县| 册亨县| 锡林郭勒盟| 武功县| 丰台区| 五寨县| 乐亭县| 清河县| 宝坻区| 泽库县| 铜梁县| 黄冈市| 金阳县| 娄底市| 黑龙江省| 库车县| 姚安县| 云安县| 阿拉善右旗| 定襄县| 肇源县| 安化县| 祁门县| 宝鸡市| 安国市| 习水县| 周宁县| 玛多县| 海安县| 米林县| 深泽县| 清水县| 靖边县| 大关县| 托克托县|