在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Cortex-M v7 MPU以實(shí)現(xiàn)現(xiàn)代嵌入式系統(tǒng)

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Micro Digital ? 2022-06-09 17:20 ? 次閱讀

Cortex-M v7 內(nèi)存保護(hù)單元 (MPU) 很難使用,但它是 Cortex-M3、-M4 和 -M7 處理器可用的硬件內(nèi)存保護(hù)的主要手段。這些處理器廣泛用于中小型嵌入式系統(tǒng)。因此,學(xué)習(xí)有效地使用 Cortex-M v7 MPU 以實(shí)現(xiàn)現(xiàn)代嵌入式系統(tǒng)所需的可靠性、安全性和安全性非常重要。

以前的博客介紹了 MPU和術(shù)語(yǔ)、MPU 多任務(wù)處理和定義 MPU 區(qū)域。在第一篇博客中,定義了特權(quán)任務(wù) ( ptasks) 和非特權(quán)任務(wù) ( utasks)。前者以特權(quán)線程模式運(yùn)行,后者以非特權(quán)線程模式運(yùn)行[2]。任務(wù)的模式umode由其任務(wù)控制回(TCB)中的標(biāo)志確定,并在實(shí)時(shí)操作系統(tǒng)(RTOS)調(diào)度程序調(diào)度時(shí)生效。umode可以在創(chuàng)建任務(wù)后隨時(shí)設(shè)置標(biāo)志pmode。

ptasks可以直接調(diào)用系統(tǒng)服務(wù),但是utasks不能。有兩個(gè)原因:

保護(hù) RTOS 及其數(shù)據(jù)免受utasks. 這可能是未知譜系的軟件 (SOUP),或者它可能容易受到惡意軟件的攻擊(例如,TCP/IP 堆棧)。

限制此軟件可以使用的 RTOS 服務(wù)。不希望utasks能夠執(zhí)行可能損害正常系統(tǒng)操作的操作,例如斷電或刪除任務(wù)。

本博客討論了實(shí)現(xiàn)上述保護(hù)的機(jī)制。應(yīng)該注意的是,MPU 安全性的主要目標(biāo)是將盡可能多的應(yīng)用程序代碼放入utasks.

utask MPA 地區(qū)

每個(gè)任務(wù)都有自己的內(nèi)存保護(hù)數(shù)組 (MPA),它是從 MPA 模板初始化的。一個(gè)utask(例如ut2a)的典型 MPA 模板如下:

poYBAGKhu7iAfH8uAAGRE4WhScc353.png

該模板在創(chuàng)建任務(wù)后加載到任務(wù)的 MPA 中,然后在分派該任務(wù)時(shí)加載到 MPU 中。MPA[0]任務(wù)堆棧的區(qū)域是在任務(wù)首次啟動(dòng)時(shí)定義并放入的。因此,上面utask可以訪問(wèn)它自己的堆棧、它自己的代碼和數(shù)據(jù)區(qū)域、公共代碼和數(shù)據(jù)區(qū)域,而沒(méi)有其他任何東西。區(qū)域 5、6 和 7 被禁用或特權(quán)。因此,這utask被阻止直接訪問(wèn)系統(tǒng)服務(wù)和數(shù)據(jù)。后者適用于 all utasks,盡管它們的模板可能不同。

umode 服務(wù)

utasks必須使用軟件中斷 (SWI) 應(yīng)用程序編程接口 (API) 來(lái)訪問(wèn)系統(tǒng)服務(wù),并且他們永遠(yuǎn)無(wú)法直接訪問(wèn)系統(tǒng)數(shù)據(jù)。此外,只有不受限制的系統(tǒng)服務(wù)才能被utasks. 這些障礙有助于保護(hù)操作系統(tǒng) (OS) 免受不受信任的代碼的影響。

SWI API 是通過(guò) Cortex-M SVC 指令“ SVC n”實(shí)現(xiàn)的,其中n指定要執(zhí)行的系統(tǒng)服務(wù)。

對(duì)于 smx RTOS 內(nèi)核,頭文件 ,xapi.h包含所有 smx 服務(wù)的原型函數(shù)。在開(kāi)頭包含此文件pcode允許它訪問(wèn)其中任何一個(gè)。對(duì)于ucode,xapiu.h被定義。它由 。 中允許的系統(tǒng)服務(wù)的映射宏組成umode。例如:

pYYBAGKhu5KAACnTAAA680Xm4HM785.png

這個(gè)宏覆蓋了函數(shù)原型,xapi.h因此對(duì)于應(yīng)用程序模塊的其余部分,它不是直接調(diào)用系統(tǒng)服務(wù),而是調(diào)用一個(gè) shell 函數(shù):

pYYBAGKhu5iAQ3zAAABaFHMjhxM187.png

該外殼函數(shù)用于調(diào)用n == ID系統(tǒng)服務(wù)的 SVC 指令。NI(Not Inline) 是一個(gè)由編譯器阻止函數(shù)內(nèi)聯(lián)的宏。請(qǐng)注意,shell 函數(shù)具有相同的名稱,只是它的前綴smxu_不是smx_. 貝殼位于該ucom_code區(qū)域中,因此它們可以通過(guò)utasks.

應(yīng)用程序模塊可以以pcode開(kāi)頭ucode,也可以完全是pcode或ucode。無(wú)論哪種方式,ucode都以:

poYBAGKhu56AYBiiAAAw5iEyBMY249.png

在那之后不能直接調(diào)用任何系統(tǒng)服務(wù)。以上所有內(nèi)容都是在編譯時(shí)完成的,因此變成了硬編碼,因此可以抵抗惡意軟件和錯(cuò)誤,特別是如果代碼位于 ROM 中。

混合pcode/ucode模塊很方便,因?yàn)橄到y(tǒng)的功能部分通常會(huì)有一個(gè)根任務(wù),它是一個(gè)ptask為該部分創(chuàng)建、初始化和啟動(dòng)所有其他任務(wù)的任務(wù),其中大部分可能是utasks. 因此,所有相關(guān)的任務(wù)都可以放在一起。內(nèi)在的想法是系統(tǒng)部分的某些任務(wù)可能是執(zhí)行關(guān)鍵任務(wù)功能的精心構(gòu)建的任務(wù)。這些任務(wù)可能是ptasks。系統(tǒng)部分的其他任務(wù)可能正在執(zhí)行非關(guān)鍵功能,例如收集要發(fā)送到云的統(tǒng)計(jì)信息。這些將是utasks.

有些任務(wù)可能會(huì)隨著項(xiàng)目的發(fā)展而開(kāi)始存在ptasks并被遷移到。utasks通常更容易在其中調(diào)試代碼pmode然后將其移至umode. 此外,任務(wù)可以啟動(dòng)ptasks并執(zhí)行pcode,設(shè)置自己的umode標(biāo)志,然后重新啟動(dòng)自己utasks并執(zhí)行ucode。

另一個(gè)有趣的特性是xapiu.h可以部署多個(gè)文件并由不同的utasks. 這允許不同級(jí)別的信任。因此,與可信度較低的任務(wù)相比,可信度更高的任務(wù)可以訪問(wèn)更多的 RTOS 服務(wù)。這允許收緊 SOUP 或高度易受攻擊的任務(wù)的絞索。但是,這僅在編譯時(shí)有效。為了防止惡意軟件,還需要有對(duì)應(yīng)于不同xapiu.h文件的不同跳轉(zhuǎn)表(參見(jiàn)下面的圖 5)以及為每個(gè)任務(wù)選擇跳轉(zhuǎn)表的機(jī)制。

utask服務(wù)調(diào)用機(jī)制

如上所述,軟件中斷 API 的基本概念非常簡(jiǎn)單。但是當(dāng)調(diào)用的系統(tǒng)服務(wù)可能導(dǎo)致任務(wù)切換時(shí),事情就變得更加復(fù)雜了——尤其是對(duì)于 Cortex-M 架構(gòu),它要求 RTOS 調(diào)度程序駐留在PendSV_Handler. 同樣復(fù)雜的是,處理程序以特權(quán)模式運(yùn)行并使用系統(tǒng)堆棧 (SS)[3] 而不是當(dāng)前的任務(wù)堆棧 TS。

如下圖所示,SVC_Handler()由 SVC 指令調(diào)用并以處理程序模式運(yùn)行:

poYBAGKhu6SAU26XAACFXiExuEE915.png

開(kāi)始運(yùn)行時(shí),由于處理器堆疊SVC_Handler(),系統(tǒng)服務(wù)參數(shù)處于 TS 中。處理程序?qū)?shù) 0 到 3 移動(dòng)到thru中,并將第 5 個(gè)參數(shù)(如果有)移動(dòng)到系統(tǒng)堆棧的頂部,SS(這是系統(tǒng)服務(wù)期望找到這些參數(shù)的地方)。然后通過(guò)跳轉(zhuǎn)表調(diào)用系統(tǒng)服務(wù)(SSR),使用傳遞給它的索引(ID)(見(jiàn)上文)。r0r3SVC_Handler()ssrt[]n

系統(tǒng)服務(wù)正常執(zhí)行并返回SVC_Handler(),將系統(tǒng)服務(wù)返回值從r0TS 移動(dòng)到正確位置。處理器執(zhí)行的處理程序返回操作將TS 中所有堆疊的寄存器取消堆疊,因此返回值以r0.

如果系統(tǒng)服務(wù)導(dǎo)致任務(wù)調(diào)度程序需要運(yùn)行 ( sched 》 0) 或中斷導(dǎo)致鏈接服務(wù)例程 (LSR) 調(diào)度程序需要運(yùn)行 ( lqctr 》 0),PendSV_Handler() 則將被掛起。在這種情況下,處理器尾鏈 [4] 從SVC_Handler()到PendSV_Handler(由圖中的虛線所示),而不是返回到utask.

在這種情況下,控制不會(huì)返回到utask尚未調(diào)用的點(diǎn),而是返回到在PendSV_Handler()。 這可能會(huì)導(dǎo)致當(dāng)前任務(wù)被掛起,而另一個(gè)任務(wù)被恢復(fù)運(yùn)行(如圖右側(cè)所示)。搶占任務(wù)可以是 autask或 a ptask。最終,掛起的utask將被恢復(fù)、取消堆棧,并從調(diào)用點(diǎn)繼續(xù)運(yùn)行,前提是它沒(méi)有被搶占任務(wù)停止或刪除。(注意:以上所有操作都是在特權(quán)模式下完成的,因此可以防止受到感染的惡意軟件的侵害ucode。)

ptask服務(wù)調(diào)用機(jī)制

相比之下,下圖顯示了從ptask.

pYYBAGKhu6qAGjaGAACHcwOkSMQ318.png

請(qǐng)注意,這更簡(jiǎn)單(更快):SVC_Handler()不涉及。ptask直接調(diào)用系統(tǒng)服務(wù),如果設(shè)置sched,PendSV_Handler()則掛起。從那里開(kāi)始,操作與 a 的操作相同utask。

交叉操作

無(wú)論系統(tǒng)服務(wù)是從utasks還是調(diào)用,系統(tǒng)服務(wù)的操作都是一樣的ptasks。例如,autask可以測(cè)試一個(gè)信號(hào)量并在它上面掛起。Aptask可以發(fā)出信號(hào)量并且utask將恢復(fù)。或相反亦然。Aptask可能具有比 a 更高或更低的優(yōu)先級(jí)utask,調(diào)度程序?qū)⒏鶕?jù)其優(yōu)先級(jí)調(diào)度它(特權(quán)在這里沒(méi)有優(yōu)先級(jí)!)。不同的是,ptask執(zhí)行受信任的代碼 ( pcode) 并且通常可以完全訪問(wèn)內(nèi)存、外圍設(shè)備和系統(tǒng)服務(wù),而utask執(zhí)行非特權(quán)代碼 ( ucode) 并且只能訪問(wèn) MPU 允許的內(nèi)容。此外,MPU 只能通過(guò) 更改pcode。

以免擔(dān)心ptasks不受約束的代理,請(qǐng)注意,即使啟用了后臺(tái)區(qū)域,也可以阻止通過(guò) MPU 訪問(wèn)區(qū)域。因此,對(duì)一個(gè)任務(wù)進(jìn)行讀/寫(xiě) (RW) 的區(qū)域可能對(duì)另一個(gè)任務(wù)是只讀 (RO) 并且從不對(duì)兩者執(zhí)行 (XN)。另一方面,ptasks確實(shí)可以直接訪問(wèn)所有 smx 服務(wù)。隨著系統(tǒng)安全性的加強(qiáng),應(yīng)考慮限制ptasks以及utasks.

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19833

    瀏覽量

    233925
  • 嵌入式
    +關(guān)注

    關(guān)注

    5144

    文章

    19575

    瀏覽量

    315771
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1566

    瀏覽量

    63661
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式開(kāi)發(fā)入門(mén)指南:從零開(kāi)始學(xué)習(xí)嵌入式

    開(kāi)發(fā)(設(shè)備驅(qū)動(dòng)、內(nèi)核編譯) 4. 推薦的學(xué)習(xí)資源書(shū)籍:《嵌入式系統(tǒng)軟件設(shè)計(jì)基礎(chǔ)》《ARM Cortex-M系列嵌入式開(kāi)發(fā)》在線課程:慕課網(wǎng)、B站嵌入
    發(fā)表于 05-15 09:29

    RZ/V2N中檔嵌入式AI MPU 數(shù)據(jù)手冊(cè)和產(chǎn)品介紹

    Renesas Electronics RZ/V2N中檔嵌入式AI微處理器 (MPU) 設(shè)計(jì)用于提供強(qiáng)大的人工智能 (AI)性能和出色的效率,非常適用于需要先進(jìn)嵌入式處理能力的應(yīng)用。R
    的頭像 發(fā)表于 05-08 18:40 ?500次閱讀
    RZ/<b class='flag-5'>V</b>2N中檔<b class='flag-5'>嵌入式</b>AI <b class='flag-5'>MPU</b> 數(shù)據(jù)手冊(cè)和產(chǎn)品介紹

    MPU嵌入式系統(tǒng)中的應(yīng)用

    一、MPU的基本功能 微處理器單元(MPU)是嵌入式系統(tǒng)中的大腦,負(fù)責(zé)執(zhí)行程序指令、處理數(shù)據(jù)和控制其他硬件設(shè)備。MPU的基本功能包括: 指令
    的頭像 發(fā)表于 01-08 09:26 ?805次閱讀

    ARM嵌入式實(shí)時(shí)操作系統(tǒng)比較

    嵌入式系統(tǒng)領(lǐng)域,實(shí)時(shí)操作系統(tǒng)(RTOS)是確保任務(wù)按時(shí)完成的關(guān)鍵技術(shù)。ARM架構(gòu)因其低功耗、高性能的特點(diǎn),在嵌入式系統(tǒng)中得到了廣泛應(yīng)用。本
    的頭像 發(fā)表于 12-28 09:15 ?1259次閱讀

    如何使用Ozone分析Cortex-M異常

    Ozone可以幫助用戶快速分析和查找導(dǎo)致CPU故障的軟件bug。本文解釋如何使用Ozone的調(diào)試功能,深入了解Cortex-M架構(gòu)上的這些錯(cuò)誤。
    的頭像 發(fā)表于 11-29 11:14 ?1563次閱讀
    如何使用Ozone分析<b class='flag-5'>Cortex-M</b>異常

    嵌入式系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合

    隨著科技的飛速發(fā)展,嵌入式系統(tǒng)和物聯(lián)網(wǎng)(IoT)已經(jīng)成為現(xiàn)代技術(shù)領(lǐng)域的重要組成部分。嵌入式系統(tǒng)是指嵌入
    的頭像 發(fā)表于 11-06 10:23 ?1023次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式嵌入式
    的頭像 發(fā)表于 10-16 10:14 ?2490次閱讀

    嵌入式系統(tǒng)的硬件架構(gòu)

    嵌入式系統(tǒng)是一種專(zhuān)用的計(jì)算機(jī)系統(tǒng),它以應(yīng)用為中心,現(xiàn)代計(jì)算機(jī)技術(shù)為基礎(chǔ),能夠根據(jù)用戶的具體需求(如功能、可靠性、成本、體積、功耗、環(huán)境等)
    的頭像 發(fā)表于 09-29 16:29 ?924次閱讀

    嵌入式系統(tǒng)的未來(lái)趨勢(shì)有哪些?

    智能家居領(lǐng)域,嵌入式系統(tǒng)可以集成語(yǔ)音識(shí)別和自然語(yǔ)言處理技術(shù),去實(shí)現(xiàn)智能家電的語(yǔ)音控制。 2. 更強(qiáng)大的處理能力 在未來(lái)的嵌入式系統(tǒng)將具備更加
    發(fā)表于 09-12 15:42

    ARM MCU嵌入式開(kāi)發(fā) | 基于國(guó)產(chǎn)GD32F10x芯片+嵌入的開(kāi)始

    ,其低功耗和高效能的特點(diǎn)使其成為嵌入式系統(tǒng)和移動(dòng)設(shè)備的首選。ARM處理器架構(gòu)包括Cortex-A、Cortex-R和Cortex-M系列,廣
    發(fā)表于 09-09 14:48

    七大嵌入式GUI盤(pán)點(diǎn)

    采用純C語(yǔ)言開(kāi)發(fā)。它的作者是來(lái)自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C語(yǔ)言編寫(xiě),實(shí)現(xiàn)最大的兼容性(與C++兼容),模擬器可在沒(méi)有嵌入式硬件的PC上啟動(dòng)
    發(fā)表于 09-02 10:58

    【出版發(fā)行】嵌入式系統(tǒng)原理與開(kāi)發(fā)——基于RISC-V和Linux系統(tǒng)

    【出版發(fā)行】嵌入式系統(tǒng)原理與開(kāi)發(fā)——基于RISC-V和Linux系統(tǒng)
    的頭像 發(fā)表于 07-26 08:36 ?618次閱讀
    【出版發(fā)行】<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理與開(kāi)發(fā)——基于RISC-<b class='flag-5'>V</b>和Linux<b class='flag-5'>系統(tǒng)</b>

    專(zhuān)家力薦|《嵌入式系統(tǒng)原理與開(kāi)發(fā)——基于RISC-V和Linux系統(tǒng)》新書(shū)發(fā)售

    當(dāng)前,嵌入式系統(tǒng)已成為智能設(shè)備的核心之一,RISC-V+Linux的開(kāi)源力量為嵌入式系統(tǒng)注入強(qiáng)大的創(chuàng)新動(dòng)力。作為中國(guó)RISC-
    的頭像 發(fā)表于 07-24 08:20 ?1043次閱讀
    專(zhuān)家力薦|《<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理與開(kāi)發(fā)——基于RISC-<b class='flag-5'>V</b>和Linux<b class='flag-5'>系統(tǒng)</b>》新書(shū)發(fā)售

    飛凌嵌入式Forlinx pinMux,更好用的MPU引腳復(fù)用配置工具

    飛凌嵌入式打造了一款專(zhuān)門(mén)針對(duì)ARM嵌入式MPU引腳復(fù)用的軟件工具——Forlinx pinMux
    的頭像 發(fā)表于 07-05 10:28 ?2533次閱讀
    飛凌<b class='flag-5'>嵌入式</b>Forlinx pinMux,更好用的<b class='flag-5'>MPU</b>引腳復(fù)用配置工具

    嵌入式系統(tǒng)怎么學(xué)?

    嵌入式系統(tǒng)之間或與外部設(shè)備的數(shù)據(jù)通信。 7、傳感器和執(zhí)行器:了解各種傳感器(如溫度傳感器、加速度傳感器等)和執(zhí)行器(如電機(jī)、舵機(jī)等)的工作原理和接口方式,
    發(fā)表于 07-02 10:10
    主站蜘蛛池模板: 色姑娘天天干 | 视频免费黄色 | 网色视频 | 亚洲色图欧美在线 | 欧美色成人综合 | 成人亚洲欧美在线电影www色 | 在线观看h视频 | 2021久久精品国产99国产精品 | 波多野结衣在线一区 | 扒开末成年粉嫩的小缝强文 | 欧美aⅴ| 好硬好大好爽女房东在线观看 | 黄网站在线观看 | 国产一区二区三区波多野吉衣 | 久久夜色精品国产噜噜小说 | 多男一女一级淫片免费播放口 | 日韩一级片在线播放 | 天天看天天摸色天天综合网 | 久久久久国产精品四虎 | 毛片视频免费网站 | 亚洲a视频在线 | 可以免费观看的一级毛片 | 日本在线视频二区 | 久久久久久久国产免费看 | 黄色h视频 | 色香蕉在线视频 | 最近最新免费视频 | 国产成人乱码一区二区三区 | 日韩三级在线免费观看 | 优优国产在线视频 | 天堂网www在线资源 天堂网www在线资源链接 | 成人牲交一极毛片 | 欧美精品videosex极品 | 男男np主受高h啪啪肉 | 国产黄色a三级三级三级 | 欧美午夜性春猛xxxx | 在线观看黄色的网站 | 亚在线 | 色婷婷久久免费网站 | 激情久久久久久久久久 | 在线精品小视频 |