<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 8位還是32位,微處理器怎么選?

8位還是32位,微處理器怎么選?

作者: 時(shí)間:2018-07-24 來(lái)源:網(wǎng)絡(luò ) 收藏

另一個(gè)原因是ARM處理器比8051核心具有更多的自由使用堆疊。通常情況下,8051裝置針對每次函式呼叫僅在堆疊上儲存返回位址(2位元組),透過(guò)通常分配給堆疊的靜態(tài)變數處理大量的任務(wù)。在某些情況下,這會(huì )產(chǎn)生問(wèn)題,因為這會(huì )造成函數預設不可重入。然而,這也意味著(zhù)必須保留的堆疊空間很小,且完全可預測,這在RAM容量有限的MCU中至關(guān)重要。

本文引用地址:http://dyxdggzs.com/article/201807/383693.htm

舉個(gè)簡(jiǎn)單的例子,試驗者設計了以下程式,然后測量funcB內部的堆疊深度,發(fā)現M0+核心的堆疊用了四十八個(gè)位元組,而8051核心的堆疊僅用了十六個(gè)位元組。當然,8051核心還靜態(tài)配置了八個(gè)位元組的RAM,總共用了二十四個(gè)位元組。在較大的系統中,這個(gè)差異顯得微不足道,但是在僅有256位元組的ARM的系統中,這就變得很重要。

架構細節之考量

假設有基于A(yíng)RM和基于8051的MCU各一個(gè),配有所需的周邊,那么對于較大的系統或需要重點(diǎn)考慮易用性的應用來(lái)說(shuō),ARM裝置是更好的選擇。如果首要考量的是低成本/小尺寸,那么8051裝置將是更好的選擇。本文以下對于每種架構更擅長(cháng)的應用進(jìn)行更詳細的分析,同時(shí)也劃分出一般原則。

影響延時(shí)因素

兩種架構的中斷和函式呼叫延時(shí)存在很大差異,8051比ARM Cortex-M核心更快。

此外,高階周邊匯流排(APB)配備的周邊也會(huì )影響延時(shí),這是因為資料必須透過(guò)APB和AMBA高性能匯流排(AHB)傳輸。最后,當使用高頻核心時(shí)脈時(shí),許多基于Cortex-M的MCU需要分配APB時(shí)脈,這也增加了周邊延時(shí)。

試驗者做了個(gè)簡(jiǎn)單的實(shí)驗,實(shí)驗中的中斷是透過(guò)I/O引腳觸發(fā)的。該中斷對引腳發(fā)出一些訊號,并根據引發(fā)中斷的引腳更新標志,之后再量測其部分參數的變化。

8051核心在中斷服務(wù)程式(ISR)進(jìn)入和退出時(shí)顯示出優(yōu)勢。但是,隨著(zhù)中斷服務(wù)程式(ISR)越來(lái)越大和執行時(shí)間的增加,這些延遲將變得微不足道。和既有原則一致,系統越大,8051的優(yōu)勢越小。此外,如果中斷服務(wù)程式(ISR)涉及到大量資料移轉或大于元的整數資料運算,中斷服務(wù)程式(ISR)執行時(shí)間的優(yōu)勢將轉向ARM核心。例如,一個(gè)采用新樣本更新16位元或元轉動(dòng)平均(Rolling Average)的ADC ISR可能在A(yíng)RM裝置上執行的更快。

8051核心的基本功能是控制代碼,其中對于變數的存取是分散的,并且使用了許多控制邏輯(If、Case等)。8051核心在處理元資料時(shí)也是非常有效的,而ARM Cortex-M核心擅長(cháng)資料處理和元運算。此外,元資料通道使得ARM MCU復制大的資料更加有效,因為它每次可以移動(dòng)四個(gè)位元組,而8051每次僅能夠移動(dòng)一個(gè)位元組。因此,那些主要把資料從一個(gè)地方移到另一個(gè)地方(例如UART到CRC或者到USB)的資料流處理應用更適合選擇基于A(yíng)RM處理器的系統。

來(lái)做個(gè)簡(jiǎn)單的實(shí)驗。試驗者編譯以下兩種架構的函數(公式1),變數大小為uint8_t、uint16_t和uint32_t。

隨著(zhù)資料量的增加,8051核心需要越來(lái)越多的代碼來(lái)完成這項工作,最終超過(guò)了ARM函數的大小。在16位元的情況下,代碼大小幾乎類(lèi)似,在執行速度上稍?xún)?yōu)于32位元核心,因為相同代碼通常需要更少周期。還有一點(diǎn)很重要:只有采用最佳化的ARM編譯代碼時(shí),這種比較才有效。未最佳化的代碼需要花費幾倍長(cháng)的時(shí)間。

這并不意味著(zhù)有大量資料移動(dòng)或32位元運算的應用不應該選擇8051核心完成。

在許多情況下,其它方面的考量將超過(guò)ARM核心的效率優(yōu)勢,或者說(shuō)這種優(yōu)勢是無(wú)關(guān)緊要的。舉例來(lái)說(shuō),考慮使用UART到SPI橋接器時(shí),該應用花費大部分時(shí)間在周邊之間復制資料,而ARM核心會(huì )更高效地完成該任務(wù)。然而,這也是一個(gè)非常小的應用,可能放入到一個(gè)僅有2KB儲存容量的晶片就足夠了。

盡管8051核心效率較低,但它仍然有足夠的處理能力去處理該應用中的高資料速率。對于A(yíng)RM裝置來(lái)說(shuō),可用的額外周期可能處于空閑回圈或“等待中斷”(WFI),等待下一個(gè)可用的資料到來(lái)。在這種情況下,8051核心仍然最有意義,因為額外的CPU周期是微不足道的,而較小的Flash封裝會(huì )節約成本。如果使用者要利用額外的周期去做些有意義的工作,那么額外的效率將是至關(guān)重要的,且效率越高越可能越有利于A(yíng)RM核心。這個(gè)例子說(shuō)明,清楚被開(kāi)發(fā)系統所關(guān)注的環(huán)境中的各種架構優(yōu)勢是何等重要,而作出這個(gè)最佳的決定是簡(jiǎn)單但卻重要的一步。

指標為8051特殊優(yōu)勢

8051裝置不像ARM裝置般統一的儲存映射,而是對存取碼(Flash)、IDATA(內部RAM)和XDATA(外部RAM)有不同的指令。為了產(chǎn)生高效的代碼,8051代碼的指標會(huì )說(shuō)明它指向什么空間。然而,在某些情況下,使用通用指標,可以指向任何空間,但是這種類(lèi)型的指標是低效的存取。例如,將指標指向緩沖區并將該緩沖區資料輸出到UART的函數。如果指標是XDATA指標,那么XDATA陣列能被發(fā)送到UART,但在代碼空間中的陣列,首先需要被復制到XDATA。通用指標能同時(shí)指向代碼和XDATA空間,但速度較慢,并且需要更多的代碼來(lái)存取。

專(zhuān)用區域指標在大多情況下能發(fā)揮作用,但是通用指標在編寫(xiě)使用情況未知的可重用代碼時(shí)非常靈活。如果這種情況在應用中很常見(jiàn),那么8051就失去了其效率優(yōu)勢。

仔細評估了解MCU使用優(yōu)勢

本文已經(jīng)多次注意到,運算傾向于選擇ARM,而控制傾向于選擇8051,但沒(méi)有應用僅僅著(zhù)眼于計算或控制,該怎樣才能定義各種應用,并計算出它的合適范圍呢?

本文考量一個(gè)由10%的32位元計算、25%的控制代碼和65%的一般代碼構成的假定應用時(shí),其不能明確的歸成8或32位元類(lèi)別。這個(gè)應用也更注重代碼空間而不是執行速度,因為其并不需要所有可用的運算效能,并且必須為成本進(jìn)行最佳化。

成本比應用速度更為重要的事實(shí)在一般代碼情形下將為8051核心帶來(lái)些微優(yōu)勢。此外,8051核心在控制代碼中有中間等級的優(yōu)勢。ARM核心在32位元計算方面占上風(fēng),但是這并非是很多應用所重視的??剂康剿羞@些因素,這個(gè)特殊的應用選擇8051核心更加合適。

如果做一個(gè)細微的改變,假設該應用更關(guān)心執行速度而非成本,那么通用代碼不會(huì )傾向于哪種架構,并且ARM核心在計算代碼中全面占有優(yōu)勢。在這種情況下,雖然有比計算更多的控制代碼,但是最后結果將相當均衡。顯然,在這個(gè)過(guò)程中有很多的評估,但是分解應用,然后評估每一元件的技術(shù)將能確保使用者了解,在哪種情況下哪種架構有更顯著(zhù)的優(yōu)勢。



關(guān)鍵詞: 8位 32位 微處理器

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>