嵌入式系統(tǒng)與FPGA的最新動向
可見,MCU不會脫離數(shù)字設(shè)計的核心。在集成模擬/數(shù)?;旌掀骷r,會對性能和制程帶來一些挑戰(zhàn)。在一些高性能或獨特應(yīng)用場合,獨立的模擬器件仍舉足輕重。獨立的模擬器件的發(fā)展趨勢是集成度更高,精度更高,可編程性更強,并有自家的開發(fā)工具支持,簡單易用等。
本文引用地址:http://www.ex-cimer.com/article/118084.htmMIPS架構(gòu)尋機突破
如今,ARM是32位MCU架構(gòu)中增長最快的部分,有專門為不同嵌入式處理器準(zhǔn)備的10種左右的Cortex授權(quán)。一般公認(rèn)ARM陣營的優(yōu)勢是可利用的豐富的生態(tài)環(huán)境。
不過,MIPS科技公司這幾年也在尋求突破。Microchip是MIPS架構(gòu)的積極擁躉者之一,最近,Microchip的Erlendur Kristjansson對ARM公司聲稱的32位單片機(MCU)應(yīng)用的可移植性產(chǎn)生了疑問。
32位單片機的應(yīng)用可移植性:現(xiàn)實還是神話?
Erlendur首先介紹了事情的原委:2008 年11 月,ARM公司宣布推出Cortex微控制器軟件接口標(biāo)準(zhǔn)(Microcontroller Software Interface Standard,CMSIS)。ARM聲稱,對于新器件的軟件開發(fā)項目或?qū)F(xiàn)有軟件在不同芯片廠商的基于Cortex-M 的單片機之間移植時,這項標(biāo)準(zhǔn)可降低軟件設(shè)計成本。這聽起來很不錯,但事實確實如此嗎?
Erlendur分析道,根據(jù)ARM 所言,CMSIS 是“適用于Cortex-M 處理器系列的與廠商無關(guān)的硬件抽象層。CMSIS為不同芯片廠商和中間件提供商的處理器提供了簡單一致的軟件接口,這簡化了軟件重用,縮短了開發(fā)人員對于新單片機(MCU)的學(xué)習(xí)過程以及新器件的上市時間。CMSIS的問世使芯片廠商可將資源集中在突出其產(chǎn)品的外設(shè)功能上,無需在對單片機進(jìn)行編程時保持各自不兼容的標(biāo)準(zhǔn)[10]。”
可移植性的可能性探討
我們已了解各個單片機制造商都能提供什么,現(xiàn)在可以看一下抽象層能為設(shè)計人員做些什么(如果有的話)。首先,我們來看CMSIS 聲稱所能提供的功能,同時應(yīng)記住前文所述的系統(tǒng)架構(gòu)、外設(shè)和固件庫。
CMSIS 版本1.3
1.內(nèi)核外設(shè)訪問層:包含用于訪問內(nèi)核寄存器和外設(shè)的名稱定義、地址定義和輔助函數(shù)。它還定義了一個用于RTOS 內(nèi)核的器件無關(guān)接口,其中包含調(diào)試通道定義[11]。
2. 這些軟件層由芯片合作伙伴通過以下方式進(jìn)行擴展:
a) 器件外設(shè)訪問層,提供所有器件外設(shè)的定義;
b) 用于外設(shè)的訪問函數(shù)(可選):提供用于外設(shè)的附加輔助函數(shù)[11]。
仔細(xì)閱讀此說明后,我們可以看到CMSIS 提供了一種通用語言,通過它可描述MCU 的不同元件。
接下來,我們看一下兩個不同的“芯片合作伙伴(使用ARM Cortex-M 處理器內(nèi)核的MCU 制造商)”所生產(chǎn)的MCU 中包含的部分功能。
顯而易見的是,盡管這兩個32 位MCU制造商都使用Cortex-M3 內(nèi)核,但主要功能仍有區(qū)別。表1中列出的功能是單片機最標(biāo)準(zhǔn)的功能,即便如此它們?nèi)杂胁煌_@意味著,即使這兩個制造商使用相同的內(nèi)核,也需要對軟件進(jìn)行調(diào)整才能運行最基本的程序,例如翻轉(zhuǎn)I/O 或使用UART。如果不進(jìn)行一定程度的代碼重寫,而只是對基本參數(shù)進(jìn)行調(diào)整,則無法在A和B之間移植軟件。
另外,在表1的示例中,廠商A和B的單片機都使用了ARM Cortex-M3 內(nèi)核,并且都具有符合CMSIS 標(biāo)準(zhǔn)的固件庫。這是否意味著他們的庫(例如電機控制庫)可以互相移植?
其實不見得。這兩個制造商對外設(shè)和固件采用了完全不同的方法。廠商A 使用專用算法庫(可能由多人經(jīng)過數(shù)年開發(fā)而成)來最高效地利用其單片機上的專用外設(shè)。而廠商B 則專注于使用更通用的外設(shè)并構(gòu)建通用外設(shè)庫,對于特定應(yīng)用則使用示例代碼和應(yīng)用筆記進(jìn)行說明。
這兩種完全不同的方法使得在這兩個制造商的MCU 之間移植程序(例如電機控制子程序)非常困難,盡管它們使用了相同的內(nèi)核。此外,庫函數(shù)的命名也不相同,這意味著用戶必須重寫代碼中的所有庫函數(shù)調(diào)用,并且要弄清將哪些變量和值提交給函數(shù)。這完全不是所謂的可移植性。
再有,設(shè)計人員關(guān)注的重點是開發(fā)特定最終用途代碼時的速度、效率和可靠性。廠商A和B采用不同的方法來達(dá)到這些目標(biāo)。廠商A使用基于專用硬件的方法,而廠商B的法更加專注于通用硬件。廠商A 針對特定應(yīng)用提供了經(jīng)過潛心開發(fā)的專用庫,以最大限度地利用其單片機的功能。而廠商B 只提供基本構(gòu)件,讓開發(fā)人員構(gòu)建自己的解決方案。
評論