www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

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

一、Cortex-M的定位

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

在ARMv7版本中,內(nèi)核架構(gòu)首次從單一款式變成3種款式。Cortex-M系列屬于ARMv7結(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 ARMv7下的Cortex系列

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

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

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

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

二、內(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)存管理機制

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

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

三、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 進程樹

四、總結(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)生的。

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

8位單片機在嵌入式設計領域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設計與硬件實現(xiàn)的關鍵環(huán)節(jié)。當前主流的單片機燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術(shù)體系,分別對應開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關鍵字: 單片機 開發(fā)板 Keil

CPU親和度通過限制進程或線程可以運行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關鍵字: Linux 嵌入式

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關鍵字: 單片機 電磁兼容

ARM系統(tǒng)幾乎都采用Linux的操作系統(tǒng),而且?guī)缀跛械挠布到y(tǒng)都要單獨構(gòu)建自己的系統(tǒng),與其他系統(tǒng)不能兼容,這也導致其應用軟件不能方便移植,這一點一直嚴重制約了ARM系統(tǒng)的發(fā)展和應用。GOOGLE開發(fā)了開放式的Andro...

關鍵字: Linux x86 ARM

隨著計算需求的多樣化,尤其是隨著移動設備、嵌入式系統(tǒng)和云計算的興起,ARM 和 x86 架構(gòu)之間的爭論變得更加突出。ARM(高級 RISC 機器)和 x86 代表兩種不同類型的處理器架構(gòu),每種架構(gòu)都針對不同的工作負載和用...

關鍵字: Linux x86 ARM

以下內(nèi)容中,小編將對單片機的相關內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關鍵字: 單片機 復位電路
關閉