新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8051與AndesCore的軟件差異與移植

8051與AndesCore的軟件差異與移植

——
作者: 時(shí)間:2015-07-29 來(lái)源:電子產(chǎn)品世界 收藏

  5. 中斷向量及異常處理函數(shù)例子 以中斷向量及中斷處理函數(shù)的例子說(shuō)明差異及移植。

本文引用地址:http://m.butianyuan.cn/article/277989.htm

  5.1. 匯編實(shí)現(xiàn)中段向量表

  []

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

  [ ™]

  該例子顯示怎樣用匯編設(shè)置™的中斷向量表和中斷處理函數(shù), 該例子中exception_vector 是中斷向量表的label, 后面分別表示第0,1,2,3…個(gè)中斷向量,它們只是簡(jiǎn)單的跳轉(zhuǎn)指令,跳到具體的執(zhí)行實(shí)體中去,如vector 0 跳到_start, 做系統(tǒng)相關(guān)的初始化操作,_start 是系統(tǒng)啟動(dòng)代碼,用匯編語(yǔ)言來(lái)實(shí)現(xiàn)。vector 9 后面對(duì)應(yīng)的是外部中斷,中斷處理函數(shù)如OS_Trap_Interrupt_HW0,OS_Trap_Interrupt_HW1… 它通常用C 來(lái)實(shí)現(xiàn),可以參考后面5.2 章節(jié)的™中斷處理函數(shù)范例。

  在上面用匯編設(shè)置AndesCore™的中斷向量表的例子中,我們需要將中斷向量表最終設(shè)定在0 地址處,可以通過(guò) section語(yǔ)法配合sag 工具實(shí)現(xiàn),例子中我們?cè)O(shè)定該段的 section 名為.vector, 所以在sag 中,我們自定義一個(gè)

  USER_SECTION 為.vector,并 將.vector放在0 開(kāi)始的地方并作為第一個(gè) section。

  通過(guò)上面的sag 語(yǔ)法,并使用andes 提供的sag 轉(zhuǎn)ld 的工具,可以產(chǎn)生類(lèi)似以下的ld ,在工程進(jìn)行鏈接的時(shí)候選擇該 ld 時(shí)就能確保 .vector鏈接的地址位于0 處。

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

  5.2. 中斷處理函數(shù)的C 實(shí)現(xiàn)

  6. 適用于MCU的Andes CPUs

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

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 8051 AndesCore

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉