日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]單片機(jī)與應(yīng)用處理器的核心區(qū)別到底是什么呢?是核心主頻的差異?還是Linux系統(tǒng)的支持?又或者是處理器的架構(gòu)?本文將以NXP的Cortex-M系列為例做簡(jiǎn)要介紹。

單片機(jī)與應(yīng)用處理器的核心區(qū)別到底是什么呢?是核心主頻的差異?還是Linux系統(tǒng)的支持?又或者是處理器的架構(gòu)?本文將以NXP的Cortex-M系列為例做簡(jiǎn)要介紹。

一、Cortex-M的定位

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

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

 

 

圖1 ARMv7下的Cortex系列

● 款式A:高性能的處理器級(jí)平臺(tái),性能比肩計(jì)算機(jī)。

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

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

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

二、內(nèi)存管理單元MMU

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

 

 

圖2 MMU的地位

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

 

 

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

注:上圖僅簡(jiǎn)單反映內(nèi)存管理的映射機(jī)制,權(quán)限映射、TLB快表、頁(yè)表等概念不做深入討論。

虛擬內(nèi)存管理最主要的作用是讓每個(gè)進(jìn)程有獨(dú)立的地址空間。不同進(jìn)程中的同一個(gè)虛擬地址被MMU映射到不同的物理地址,并且在某一個(gè)進(jìn)程中訪問任何地址都不可能訪問到另外一個(gè)進(jìn)程的數(shù)據(jù),這樣使得任何一個(gè)進(jìn)程由于執(zhí)行錯(cuò)誤指令或惡意代碼導(dǎo)致的非法內(nèi)存訪問都不會(huì)意外改寫其它進(jìn)程的數(shù)據(jù),不會(huì)影響其它進(jìn)程的運(yùn)行,從而保證整個(gè)系統(tǒng)的穩(wěn)定性。另一方面,每個(gè)進(jìn)程都認(rèn)為自己獨(dú)占整個(gè)虛擬地址空間,這樣鏈接器和加載器的實(shí)現(xiàn)會(huì)比較容易,不必考慮各進(jìn)程的地址范圍是否沖突。

三、linux系統(tǒng)

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

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

 

 

圖4 shell 1中的bash地址

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

 

 

圖5 shell 2中的bash地址

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

 

 

圖6 進(jìn)程樹

四、總結(jié)

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

五、拓展部分

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

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

 

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉