国产精品自产拍在线观看涩_一级毛片视频播放_可以在线看黄的网站_爽爽婬人综合网网站不卡免费_亚洲动作电影在线观看高清_日本人妻丝袜资源久草婷婷_一级做一级a做片爱_欧美成人免费大片_国产heyzo在线播放_午夜免费男女高潮啪啪

瑞薩
CPMG2UL 單核Cortex?-A55,1.0GHz,2路千兆,2路CAN FD
CPMG2L 雙核Cortex?-A55,1.2GHz,2路千兆,2路CAN FD
TI
M62xx 1.4GHz,3路CAN FD,2路千兆,9路串口
M6442 1.0GHz,5路TSN千兆網(wǎng)口,支持EtherCAT,GPMC
M65xx 1.1GHz,擴展18串口或6路千兆網(wǎng)口
M335x-T 800MHz,6串口,雙網(wǎng)口,雙CAN
A3352系列無線IoT核心板 800MHz,WiFi,藍牙,RFID
NXP
M6Y2C 800MHz,8串口,雙網(wǎng)口,大容量
A6G2C系列無線IoT核心板 528MHz,ZigBee,
Mifare,WiFi,藍牙
A6Y2C系列無線IoT核心板 800MHZ,8串口,WiFi,藍牙
M6G2C 528MHz,雙網(wǎng)口,8串口,雙CAN
M6708-T 雙核/四核,800MHz/1GHz,專注多媒體
瑞芯微
M3568 四核A55,2GHz,NPU,GPU,VPU
M3562 四核A53,1.8GHz,1.0 TOPs NPU
M1808 雙核A35,1.6GHz,AI核心板,3 TOPs NPU
M1126 四核A7,1.5GHz,2.0 TOPs NPU
先楫
MR6450/MR6750 15路串口,4路CAN FD,2路千兆
芯馳
MD9340/MD9350 真多核異構(gòu)A55+R5,1.6GHz,
2路千兆,4路CAN FD
MD9360 六核 Cortex?-A55,1.6GHz,2路千兆,4路CAN FD
君正
MX2000 1.2GHz,快速啟動,實時系統(tǒng)
Xilinx
M7015 雙核Cortex?-A9+FPGA,766MHz

為何Cortex?-M處理器運行不了linux

1 . Cortex?-M的定位

處理器的體系結(jié)構(gòu)定義了指令集(ISA)和基于這一體系結(jié)構(gòu)下處理器的程序員模型,通俗來講就是相同的Arm?體系結(jié)構(gòu)下的應用軟件是兼容的。從Arm?v1到Arm?v8,每一次體系結(jié)構(gòu)的修改都會添加實用技術(shù)。

在Arm?v7版本中,內(nèi)核架構(gòu)首次從單一款式變成3種款式。Cortex?-M系列屬于Arm?v7結(jié)構(gòu)下的一個款式:款式M??钍組包含的處理器有Cortex?-M0、Cortex?-M1、Cortex?-M3、Cortex?-M4以及Cortex?-M7,以上處理器常被用于低成本、低功耗、高可靠的嵌入式實時系統(tǒng)中。它們既可以用于“裸片”開發(fā)又能運行實時操作系統(tǒng),比如us/os-ll、VxWorks以及Aworks(致遠電子開發(fā))等。
圖1 Arm?v7下的Cortex?系列

款式A:高性能的處理器級平臺,性能比肩計算機。

款式R:定位應用于高端嵌入式系統(tǒng),高可靠及高時效性。

款式M:用于深度嵌入、定制的嵌入式系統(tǒng)。

值得注意的是,Cortex?-M下的處理器沒有內(nèi)存管理單元MMU。

2 . 內(nèi)存管理單元MMU

內(nèi)存管理單元簡稱MMU,它負責虛擬地址到物理地址的映射,并提供硬件機制的內(nèi)存訪問權(quán)限檢查。在多用戶、多進程的操作系統(tǒng)中,MMU使得各個用戶進程都有獨立的地址空間。

圖2 MMU的地位

任何微控制器都存在一個程序能夠產(chǎn)生的地址集和,被稱為虛擬地址范圍。以32為機為例,虛擬地址范圍為0~0xFFFFFFFF (4G)。當該控制器尋址一個256M的內(nèi)存時,它的可用地址范圍被限定為0x00000000~0x0FFFFFFF(256M)。在沒有MMU的控制器中,虛擬地址被直接發(fā)送到內(nèi)存總線上,以讀寫該地址下的物理存儲器。在擁有MMU的控制器中,虛擬地址首先被發(fā)送到MMU中,被映射為物理地址后再發(fā)送到內(nèi)存總線上。

圖3 內(nèi)存管理機制

3 . linux系統(tǒng)

一般將操作系統(tǒng)分為實時操作系統(tǒng)和非實時操作系統(tǒng)。實時操作系統(tǒng)大多為單進程、多線程(多任務),因此不涉及到線程間的地址空間分配,不需要使用MMU,例如VxWorks。Linux系統(tǒng)屬于非實時性操作體統(tǒng),多進程是其主要特點。

以Ubuntu為例,打開一個shell并且查看bash進程的地址范圍如圖4,它的地址范圍為0x0000000000400000~0xffffffffff600000。

圖4 shell 1中的bash地址

我們打開另一個shell,查看該shell中bash進程的地址范圍,如圖5。不難發(fā)現(xiàn),兩個不同bash進程的地址范圍完全相同。其實操作系統(tǒng)或者用戶在fork()進程時完全不需要考慮物理內(nèi)存的地址分配,該工作由微控制器的內(nèi)存管理單元MMU來做。

圖5 shell 2中的bash地址

既然是多進程依賴了內(nèi)存管理單元,那么在使用嵌入式linux時只開一個進程可以嗎?肯定是不可行的!開機后即使用戶什么都不做,可見的系統(tǒng)運行必須的進程已經(jīng)運行了幾十至上百個,如圖6。

圖6 進程樹

4 . 總結(jié)

綜合以上內(nèi)容,linux系統(tǒng)對內(nèi)存管理單元有極強的依賴,若在沒有MMU的處理器中運行l(wèi)inux,恐怕整個系統(tǒng)只能停留在Uboot階段了。由于Cortex?-m處理器沒有內(nèi)存管理單元,因此跑不了linux系統(tǒng)。任何事情都不是絕對的,如果你重寫了linux內(nèi)核且搭配足夠大的內(nèi)存芯片,從理論上來說是可以省掉MMU的。但是,這樣的工作量,真的值得嗎?實際上,MMU就是為了解決操作系統(tǒng)越來越復雜的內(nèi)存管理而產(chǎn)生的。

5 . 拓展部分

很大一部分開發(fā)者選用嵌入式linux系統(tǒng)未能發(fā)揮出它的優(yōu)勢,僅僅是為了獲得開發(fā)上的便利,比如以太網(wǎng)、4G上云、LCD驅(qū)動、文件系統(tǒng)、圖像識別、python應用等等。那么有沒有方法既能使用傳統(tǒng)高實時性、低成本的單片機又不用面對繁瑣的硬件驅(qū)動開發(fā)呢?廣州致遠電子有限公司(4640.com.cn)推出的全新AWorks平臺——IoT物聯(lián)網(wǎng)生態(tài)系統(tǒng)正是為此而生。

AWorks的誕生極大的降低了開發(fā)者門檻,為開發(fā)者提供便利,使開發(fā)者可以忽略底層技術(shù)細節(jié),專注產(chǎn)品“核心域”,更快的開發(fā)出具有競爭力的產(chǎn)品。同時,AWorks為開發(fā)者提供的是高度抽象的通用接口,基于AWorks平臺的軟件與底層硬件無關(guān),可以“隨心所欲”的跨平臺復用(如更換MCU等等)??缃缬布钶dAWoeks IoT實時操作系統(tǒng),讓您的開發(fā)更容易,功能更強大。