市場(chǎng)上的嵌入式芯片千千萬(wàn)萬(wàn),那么對(duì)于我們初學(xué)的開(kāi)發(fā)者,該怎么選擇,怎么下手呢。
其實(shí)我們只要理清楚思路,每一個(gè)芯片背后肯定包含一個(gè)內(nèi)核以及他的架構(gòu)和指令集。比如我們以前學(xué)習(xí)意法半導(dǎo)體的STM32 MCU 它是ST公司生產(chǎn)的芯片,內(nèi)部是ARM Cortex-M3/M4內(nèi)核,采用ARMv7架構(gòu)(哈弗結(jié)構(gòu))。所以我們學(xué)完STM32,就其他類(lèi)型的單片機(jī)就觸類(lèi)旁通了。(類(lèi)似STM32的單片機(jī)有很多,比如NXP的 等等,但是這么多芯片,ARM公司卻從來(lái)不生產(chǎn)芯片,他只轉(zhuǎn)讓內(nèi)核的設(shè)計(jì)方案,所以這些芯片不過(guò)是在Cortex-M核的基本上增加片上外設(shè))
所以現(xiàn)在學(xué)習(xí)嵌入式Linux也是同樣如此,我們選定一款學(xué)習(xí)板,不管哪個(gè)公司生產(chǎn)的芯片,哪個(gè)機(jī)構(gòu)組合的開(kāi)發(fā)板,只要理清楚芯片、內(nèi)核、架構(gòu)之間的關(guān)系,學(xué)會(huì)一種典型芯片的開(kāi)發(fā)方法,那么再上手其他的芯片,就有相應(yīng)的開(kāi)發(fā)經(jīng)驗(yàn)了。

我手頭有一塊
這是ARM設(shè)計(jì)內(nèi)核的一個(gè)演變,從以前的ARM7 ARM9 ARM11到現(xiàn)在的Cortex系列。Cortex根據(jù)不同的應(yīng)用又可以分為幾個(gè)大類(lèi):
Cortex-M Embedded Microcontroller Processors 小型微控制器的應(yīng)用程序
Cortex-R Embedded Real-time Applications Processors 用于實(shí)時(shí)性能要求較高的應(yīng)用程序
Cortex-A Application Processors 通常用于需要操作系統(tǒng)或高性能支持的應(yīng)用程序
就Cortex-M處理器核心來(lái)講,ARM已經(jīng)擁有非常豐富的產(chǎn)品類(lèi)型。Cortex-M0是同系列的首款處理器,設(shè)計(jì)初衷是利用其小體積、低功耗的優(yōu)勢(shì),滿足深度嵌入、成本敏感的應(yīng)用程序的要求,例如智能傳感器節(jié)點(diǎn)。Cortex-M3處理器和Cortex-M4處理器則主要針對(duì)大眾市場(chǎng)的微控制器。Cortex-M7處理器則是整個(gè)系列的最高端產(chǎn)品,性能更高,可以處理計(jì)算強(qiáng)度極高的工作負(fù)載,也包括信號(hào)處理?;贏RMv6-M和ARMv7-M架構(gòu)的Cortex-M處理器,以簡(jiǎn)單易用的編程模型,通過(guò)搭載高度可配置核心,滿足多種不同設(shè)備的應(yīng)用。
對(duì)多數(shù)嵌入式應(yīng)用而言,盡管Cortex-M核心擁有簡(jiǎn)單易操作的強(qiáng)大優(yōu)勢(shì),但仍有很多用例需要更豐富、更強(qiáng)大的環(huán)境。一方面,這些應(yīng)用對(duì)效率和功耗依然十分敏感;但另一方面,諸如Linux或Android的操作平臺(tái)依舊不可或缺。遷移至類(lèi)似操作系統(tǒng),應(yīng)用程序即可利用規(guī)模更大、內(nèi)容更豐富、設(shè)計(jì)更精致的軟件生態(tài)系統(tǒng)。
Cortex-M處理器關(guān)注的重點(diǎn)不是運(yùn)行更高層次的操作系統(tǒng),因此也不需要考慮運(yùn)行負(fù)責(zé)操作系統(tǒng)的必備功能。例如,Cortex-M沒(méi)有內(nèi)存管理單元(MMU),不支持虛擬存儲(chǔ)環(huán)境,因此也就不支持這類(lèi)操作系統(tǒng)。如果應(yīng)用程序需要更豐富的操作環(huán)境,通常第一個(gè)選擇是“超高效率”的Cortex-A核心。這些核心可以為平臺(tái)操作系統(tǒng)提供更高級(jí)的功能支持,同時(shí)保持對(duì)很高的功耗效率。
得益于此,ARM Cortex-A處理器在深度嵌入式應(yīng)用程序中得到廣泛部署,尤其是在需要Linux或其他復(fù)雜操作系統(tǒng)的市場(chǎng)中,其采納更為普遍。
Cortex-A32是ARMv8-A 架構(gòu)中能效最高的CPU,是可穿戴設(shè)備、物聯(lián)網(wǎng)及富嵌入式應(yīng)用的理想選擇,而且尤其適合需要使用Linux等平臺(tái)操作系統(tǒng)的應(yīng)用。
Cortex-A32是ARM架構(gòu)中獨(dú)一無(wú)二的產(chǎn)品,擁有重要地位。Cortex-A32基于ARMv8-A架構(gòu),卻是針對(duì)32位設(shè)計(jì)的處理器。下圖介紹了Cortex-A32與ARMv8-A架構(gòu)的匹配程度,并與Cortex-A35進(jìn)行了對(duì)比。
Cortex-A32和ARMv8-A
Cortex-A35可以實(shí)現(xiàn)兩種執(zhí)行態(tài),分別為32位AArch32及64位AArch64,從而充分發(fā)揮ARMv8-A架構(gòu)的64位操作能力;相對(duì)比,Cortex-A32僅支持32位AArch32執(zhí)行態(tài),這一決定不僅進(jìn)一步壓縮產(chǎn)品面積,對(duì)于不需要64位操作能力的用例,還可以帶來(lái)顯著的功耗優(yōu)化。無(wú)可否認(rèn),部分嵌入式應(yīng)用可以從64位獲益;但許多其他應(yīng)用都是32位的,將來(lái)很長(zhǎng)一段時(shí)間市場(chǎng)也會(huì)依舊如此,Cortex-A32則專為這些應(yīng)用程序量身打造。
電子發(fā)燒友App


















評(píng)論