0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

stm32可以跑Linux操作系統(tǒng)嗎?

jf_BxU6dNQb ? 來源:混說Linux ? 作者:混說Linux ? 2022-12-13 09:53 ? 次閱讀

STM32是一款單片機,它由意法半導體公司制造。ST是意法半導體的簡稱,M是指微控制器(也就是單片機的)MCU的第一個英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的內核設計。

1. Cortex-M 的定位

ARM處理器的體系結構定義了指令集(ISA)和基于這一體系結構下處理器的模型。ARM的指令集從ARMv1發(fā)展到今天的ARMv9,每一次體系結構的修改都會添加實用技術。

f0bbe55a-7a0e-11ed-8abf-dac502259ad0.png

圖1 Armv7下的Cortex系列

在ARMv6之前,其內核指令集架構都是單一款式,但在ARMv7開始,其指令集架構變成3種款式,即目前大家熟知的Cotex-M、 Cotex-R、 Cotex-A,或者ARMv7-A、ARMv7-R、 ARMv7-M這三款。

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

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

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

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

2. 內存管理單元 MMU

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

f0e2391c-7a0e-11ed-8abf-dac502259ad0.png

圖2 MMU的地位

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

f149da9a-7a0e-11ed-8abf-dac502259ad0.png

圖3 內存管理機制

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。

f16d5ea2-7a0e-11ed-8abf-dac502259ad0.png

圖4 shell 1中的bash地址

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

f19c6120-7a0e-11ed-8abf-dac502259ad0.png

圖5 shell 2中的bash地址

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

f1cef874-7a0e-11ed-8abf-dac502259ad0.png

圖6 進程樹

4. 總結

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

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6040

    文章

    44594

    瀏覽量

    636917
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9121

    瀏覽量

    368247
  • Linux
    +關注

    關注

    87

    文章

    11327

    瀏覽量

    209966
  • STM32
    +關注

    關注

    2270

    文章

    10915

    瀏覽量

    356762

原文標題:stm32可以跑Linux操作系統(tǒng)嗎?

文章出處:【微信號:混說Linux,微信公眾號:混說Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    deepin操作系統(tǒng)介紹

    希望從自己的能力和對桌面操作系統(tǒng)的理解,能給 Linux 的用戶與開發(fā)者更多的選擇。我們也相信 deepin 能夠得到更多用戶的認可與喜愛,成為開源世界的最佳選擇。? 一、 deepin 操作系統(tǒng) 先說
    的頭像 發(fā)表于 12-23 09:08 ?445次閱讀
    deepin<b class='flag-5'>操作系統(tǒng)</b>介紹

    linux是實時系統(tǒng)還是分時操作系統(tǒng)

    大家平時玩單片機基本上對于μC/OS、FreeRTOS、ThreadX這些操作系統(tǒng)非常熟悉了,他們都屬于實時操作系統(tǒng)(RTOS),在工業(yè)領域比較廣泛;然而對于linux這樣的基于時間片劃分的非實時
    的頭像 發(fā)表于 11-11 11:43 ?543次閱讀

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(IoT)和智能設備的快速發(fā)展,嵌入式系統(tǒng)在各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)的首選操作系統(tǒng)。 1. 硬件選擇 在配置嵌入式
    的頭像 發(fā)表于 11-06 10:22 ?524次閱讀

    linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點及組成

    Linux操作系統(tǒng)安裝步驟 Linux操作系統(tǒng)是一種開源的操作系統(tǒng),它以其穩(wěn)定性、安全性和靈活性而聞名。以下是安裝
    的頭像 發(fā)表于 10-21 11:24 ?620次閱讀

    面向功能安全應用的汽車開源操作系統(tǒng)解決方案

    在SAE 2024國際汽車安全大會上,Elektrobit的Linux專家王紅燕在操作系統(tǒng)與芯片技術的分論壇上為大家?guī)砹恕懊嫦蚬δ馨踩珣玫钠囬_源操作系統(tǒng)解決方案”主題演講。
    的頭像 發(fā)表于 09-27 09:21 ?509次閱讀
    面向功能安全應用的汽車開源<b class='flag-5'>操作系統(tǒng)</b>解決方案

    Linux操作系統(tǒng)份額創(chuàng)歷史新高,逼近4.5%里程碑

    在最新的全球操作系統(tǒng)市場份額報告中,市調機構StatCounter于8月27日發(fā)布了令人矚目的數據:2024年7月,Linux系統(tǒng)實現(xiàn)了歷史性的飛躍,其市場份額首次逼近4.5%的關口,達到了4.44%的新高。這一成就標志著
    的頭像 發(fā)表于 08-27 17:05 ?980次閱讀

    Linux操作系統(tǒng)運行參數自動調整技術

    Linux操作系統(tǒng)運行參數的自動調整是一個復雜而關鍵的技術,它可以顯著提高系統(tǒng)性能、穩(wěn)定性和資源利用率。通過使用自適應算法特別是內核態(tài)的機器學習框架、性能監(jiān)控工具和配置管理工具,能夠在
    的頭像 發(fā)表于 08-22 09:53 ?335次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>運行參數自動調整技術

    嵌入式實時操作系統(tǒng):Intewell操作系統(tǒng)與VxWorks操作系統(tǒng)有啥區(qū)別

    Intewell操作系統(tǒng)和VxWorks操作系統(tǒng)都是工業(yè)領域常用的操作系統(tǒng),它們各有特點和優(yōu)勢。以下是它們之間的一些主要區(qū)別:
    的頭像 發(fā)表于 07-08 14:16 ?474次閱讀
    嵌入式實時<b class='flag-5'>操作系統(tǒng)</b>:Intewell<b class='flag-5'>操作系統(tǒng)</b>與VxWorks<b class='flag-5'>操作系統(tǒng)</b>有啥區(qū)別

    工業(yè)實時操作系統(tǒng)對比:鴻道Intewell跟rt-linux有啥區(qū)別

    Intewell和RT-Linux是兩種不同的實時操作系統(tǒng)(RTOS),它們具有各自獨特的特點和優(yōu)勢。以下是Intewell操作系統(tǒng)的一些關鍵特性,以及與RT-Linux的比較:
    的頭像 發(fā)表于 07-03 10:00 ?561次閱讀
    工業(yè)實時<b class='flag-5'>操作系統(tǒng)</b>對比:鴻道Intewell跟rt-<b class='flag-5'>linux</b>有啥區(qū)別

    研華工控機用什么系統(tǒng)?Windows與Linux操作系統(tǒng)的較量

    工控機用什么系統(tǒng)?Windows與Linux操作系統(tǒng)的較量。工控機(工業(yè)控制計算機)作為工業(yè)自動化和監(jiān)控系統(tǒng)的核心組件,其穩(wěn)定性、可靠性和性能對整個
    的頭像 發(fā)表于 06-14 14:38 ?740次閱讀
    研華工控機用什么<b class='flag-5'>系統(tǒng)</b>?Windows與<b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>的較量

    AURIX3G可以使用Linux操作系統(tǒng)嗎?

    即使在 AURIX3G 中,也可以使用 Linux 操作系統(tǒng)嗎?
    發(fā)表于 05-22 07:12

    請問STM32上有RTOS實時操作系統(tǒng)的嗎?

    親們最近在鼓搗實時操作系統(tǒng),有什么好的經驗請不吝賜教,嘿嘿。 我在摸索uT/OS。社區(qū)有在STM32幾款芯片上的移植。
    發(fā)表于 05-16 07:16

    CH32X035是否適合操作系統(tǒng)

    定時器等豐富外設資源,可輕松構建電機方案;同時廣泛應用于光伏、儲能電源等相關領域。 不知道他是否適合國產的開源操作系統(tǒng)
    發(fā)表于 03-18 11:00

    Linux操作系統(tǒng)上的射頻測試模式應用指南

    電子發(fā)燒友網站提供《Linux操作系統(tǒng)上的射頻測試模式應用指南.pdf》資料免費下載
    發(fā)表于 02-19 09:39 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>上的射頻測試模式應用指南

    Linux操作系統(tǒng)中如何按下PCIe的復位鍵

    Linux操作系統(tǒng)中,看如何按下PCIe的復位鍵
    的頭像 發(fā)表于 01-20 09:31 ?1678次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>中如何按下PCIe的復位鍵