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

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

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

3天內不再提示

官方“空投” — ESP特權隔離機制來了!

啟明云端 ? 2023-02-07 09:57 ? 次閱讀

一般情況下,微控制器上運行的應用程序采用的都是單體式系統(tǒng),即“用戶-內核”不隔離,這也是 SoC 和 MCU 在軟件架構上的差異之一。


傳統(tǒng)上,任何基于樂鑫芯片和 ESP-IDF 開發(fā)的應用程序均為單體式固件,即“內核”組件與“應用程序”或“業(yè)務邏輯”之間不相互獨立。因此一旦應用程序出錯就將導致整個系統(tǒng)崩潰。


如今,在 ESP 特權隔離框架下,能夠創(chuàng)建兩個獨立的執(zhí)行環(huán)境:用戶應用程序內核(或特權應用程序


受保護的應用程序不會受到用戶應用程序異常的影響,極大地提高了安全性,用戶應用程序的任何BUG都不會影響到整個系統(tǒng)。


e3eda2e8-a504-11ed-ad0d-dac502259ad0.jpg

ESP 特權隔離的亮點:

支持兩個獨立的執(zhí)行環(huán)境:安全世界和非安全世界。

將單體式固件劃分為兩個獨立的固件:受保護(安全)應用程序和用戶(非安全)應用程序。

受保護的應用程序不受用戶應用程序異常的影響。

提供標準系統(tǒng)調用接口,允許用戶應用程序通過這些接口發(fā)起內核服務訪問請求。

保持與 ESP-IDF API 的一致性。

支持可配置的內存訪問權限和外設訪問權限。

支持在受保護的應用程序和用戶應用程序之間靈活分配內存。

分割固件大小,加快OTA完成速度。

技術細節(jié)

1. 應用程序的啟動過程

e4042266-a504-11ed-ad0d-dac502259ad0.png

在 ESP 權限隔離框架下,應用程序的啟動流程與 ESP-IDF 一致,即 Boot ROM(一級引導加載程序)首先進行驗證,并從 flash 中加載 ESP-IDF 二級引導加載程序。然后,二級引導加載程序進行驗證,并加載受保護的應用程序。最后,受保護的應用程序在 flash 中尋找有效的用戶應用程序入口 (header)。如找到,則將設置適當?shù)臋嘞蓿L試驗證并加載用戶應用程序。

2. World 控制器和權限控制

ESP 特權隔離框架的主要目標是實現(xiàn)特權分離和強制權限管理。在 ESP32-C3 中,這是通過 World 控制器和權限管理控制器實現(xiàn)的。具體來說,權限管理控制器管理所有權限,而 World 控制器管理執(zhí)行環(huán)境(世界),且每個世界中均有獨立的權限配置。目前,我們有兩個世界:World0 和 World1。

World0 是安全(受保護)環(huán)境,World1 是非安全(用戶)環(huán)境。


e4136a5a-a504-11ed-ad0d-dac502259ad0.png

*World和權限管理

如上圖所示:

安全世界(World0)擁有對地址段 A 的全部訪問權限。

非安全世界(World1)僅擁有對地址段 A 的讀權限。

在這種權限配置下,如果非安全世界試圖向地址段 A 中的任何地址進行寫操作,則將觸發(fā)非法訪問中斷。安全世界將處理這個非法訪問中斷,并采取適當措施。

3. CPU 的世界切換

從安全世界切換到非安全世界:CPU 可以從安全世界切換到非安全世界,此時僅需將需要切換的地址配置至 World 控制器的地址寄存器,接著當 CPU 執(zhí)行至該地址時即可從安全世界切換到非安全世界,此后在非安全世界執(zhí)行應用程序。

從非安全世界切換到安全世界:CPU 可以從非安全世界切換至安全世界,但只能通過中斷或異常,即系統(tǒng)中發(fā)生任何中斷都會導致 CPU 切換到安全世界。

4. 內存布局

在強制執(zhí)行權限管理后,下一步是分割內存。

內部 SRAM

下圖展示了如何劃分 SRAM,供受保護的應用程序和用戶應用程序使用。SRAM 分為 IRAM 和 DRAM,可以根據(jù)應用程序的使用情況進行非常靈活的配置。


e4299eba-a504-11ed-ad0d-dac502259ad0.jpg

DRAM 區(qū)域包含對應應用程序的 .data 和 .bss 段,其余部分用作堆。在 ESP 特權隔離框架下,每個受保護的應用程序和用戶應用程序均有一個專用的堆分配器。


這種 SRAM 內存分布可以在受保護的應用程序升級后,依然很好地使用內存。此時,一旦受保護應用程序使用的 IRAM 有所增加或減少,我們均可以重新配置 IRAM-DRAM 分割線,且并不用影響用戶內存的劃分情況。


外部 flash:

下圖展示了如何在受保護的應用程序和用戶應用程序之間分割 flash 虛擬內存。與內存分割一樣,flash MMU 地址段也分為 .rodata 和 .text 區(qū)域,可進行靈活配置。


e448bb9c-a504-11ed-ad0d-dac502259ad0.png

5. 系統(tǒng)訪問接口

受保護的應用程序提供了一個標準的“系統(tǒng)調用”接口,用戶應用程序可以通過該接口請求訪問內核服務。這個過程會使用一個特殊的 CPU 指令生成一個同步異常,并通過這個異常將控制權移交給受保護的應用程序。系統(tǒng)調用處理程序將仔細檢查請求,并相應地執(zhí)行操作。下圖概述了系統(tǒng)調用接口的實現(xiàn)過程:


e45d1dee-a504-11ed-ad0d-dac502259ad0.png

*系統(tǒng)調用執(zhí)行過程

6. API 一致性

對于大多數(shù)組件,受保護的應用程序和用戶應用程序均與 ESP-IDF API 保持一致。通過系統(tǒng)調用接口開放給用戶應用程序的組件必須使用系統(tǒng)調用實現(xiàn),而不是實際功能實現(xiàn)。我們利用鏈接器的特點,使用系統(tǒng)調用定義覆蓋 API 的定義。這種與 ESP-IDF API 的一致性可以確保:

輕松將 ESP-IDF 示例應用程序(僅需少量修改)移植到此框架。

同一個程序可以構建為受保護的應用程序或用戶應用程序。

7. 用戶空間異常處理

在完成權限配置和內存分割后,可能會出現(xiàn)用戶應用程序故意或無意嘗試訪問受保護禁區(qū)的情況。此時,權限控制器會觸發(fā)一個非法訪問中斷,由受保護的應用程序處理。這種強制執(zhí)行權限管理的好處是,受保護的空間內存和應用程序不會受到用戶應用程序任何(錯誤)行為的影響。在 ESP 特權隔離框架中,我們允許受保護的應用程序注冊專門的處理程序,以應對用戶應用程序中出現(xiàn)的任何異常。這個處理程序還可以收集一些重要信息,并相應地處理異常。

8. 設備驅動程序

用戶應用程序可能需要通過外圍設備(SPI、I2C 等)才能與外部設備和傳感器通信。在 ESP 特權隔離框架中,我們將設備驅動實現(xiàn)在受保護的應用程序中,并通過標準 I/O 系統(tǒng)調用(open, read, write 等)的方式,將其開放給用戶應用程序。這樣一來,我們可以通過一組公共的系統(tǒng)調用接口,實現(xiàn)多個設備驅動程序。

此外,也可以向用戶應用程序開放對外設寄存器的訪問權限,允許用戶應用程序寫自己的驅動程序。


優(yōu)勢

ESP 特權隔離框架可以實現(xiàn)一些此前傳統(tǒng)單體式方法通常無法實現(xiàn)的用例和場景,以下為一些例子:

隔離系統(tǒng)和業(yè)務邏輯,從而分離維護軟件的責任劃分。

業(yè)務邏輯(用戶應用程序)中的任何錯誤都不會影響整個系統(tǒng)。用戶空間中的此類異常由受保護的應用程序捕獲并進行相應處理,并且允許實時收集并傳輸診斷信息(如果需要)。

可以獨立管理受保護應用程序和用戶應用程序的 OTA(空中升級)更新。只要兩者的接口相互兼容,受保護的應用程序和用戶應用程序可以有不同的發(fā)布節(jié)奏。

認證角度來說,僅需認證一次受保護的應用程序并進行分發(fā),之后的用戶應用程序均可基于此已認證的受保護應用程序進行構建。

設備可同時保留多個用戶應用程序,并使用同個受保護應用程序進行執(zhí)行。

傳統(tǒng)應用程序與ESP特權分離程序的內存使用對比(Rainmaker Demo)。

e474e60e-a504-11ed-ad0d-dac502259ad0.jpg



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

    關注

    48

    文章

    7646

    瀏覽量

    151962
  • ESP
    ESP
    +關注

    關注

    0

    文章

    186

    瀏覽量

    34055
收藏 人收藏

    評論

    相關推薦

    ESP系統(tǒng)的控制邏輯與響應機制

    在探討現(xiàn)代汽車安全技術時,汽車電子穩(wěn)定程序系統(tǒng)無疑是一個不可或缺的部分。這種先進的系統(tǒng)通過精確控制車輛的動態(tài)表現(xiàn),顯著提高了駕駛時的安全性和穩(wěn)定性。 ESP系統(tǒng)的控制邏輯與響應機制 動態(tài)方向比
    的頭像 發(fā)表于 08-29 11:00 ?541次閱讀

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術的飛速發(fā)展,越來越多的智能設備開始進入我們的生活。其中,ESP32和ESP
    的頭像 發(fā)表于 08-19 18:23 ?1388次閱讀

    esp8266和esp32區(qū)別是什么

    以下是關于ESP8266和ESP32的主要區(qū)別: 處理器和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?5870次閱讀

    ESP8266為什么掛載不同大小的FlashROM,下載bin文件的地址不同?

    ESP8266官方下載工具里的SPI 速度設置,晶振頻率選擇,F(xiàn)lash 容量選擇有何實際意義?這些設置不是應該用程序修改的嘛?難道這里的設置能用來修改boot.bin里的參數(shù)?或者這些設置僅僅是在下
    發(fā)表于 07-19 15:34

    ESP8266如何通過AT命令設置ESP主機名?

    我認為允許為 ESP8266設置自定義主機名可以通過官方 AT 命令來實現(xiàn)。 這是一個非常有用的功能,與AT CIUPDATE(官方)結合使用,它將運行良好,所有人都會擁有該功能
    發(fā)表于 07-16 06:09

    esp freertos sdk使用默認的lwipopts.h編譯lwip源代碼時,輸出的liblwip.a與官方的格式不同,為什么?

    您好,我想編譯 esp freertos sdk 并使用官方源代碼(2015 年 1 月 1 日github@15獲取)。當使用默認的 lwipopts.h 編譯 lwip 源代碼時,輸出
    發(fā)表于 07-15 06:57

    ESP32S2最小模塊,采用官方例子進入深度睡眠,功耗為什么降不到和官方手冊一致

    使用的是ESP32S2 idf 5.2.2 官方代碼歷程deep_sleep 進入深度睡眠 睡眠后功耗為1.9mA,一直降不下去。
    發(fā)表于 07-10 18:02

    請問esp8266官方spi的例子是不是都是4字節(jié)傳輸?shù)模?/a>

    esp8266的官方例子可有1字節(jié)傳輸?shù)陌。瑑勺止?jié)傳輸?shù)奈腋某?字節(jié)的接收數(shù)據(jù)總是錯誤,也不知道哪里錯了,請問有單字節(jié)傳輸?shù)膯幔课以囋嚳磾?shù)據(jù)可對?
    發(fā)表于 07-09 06:01

    使用esp-mdf官方例程mconfig組網(wǎng)后app加載不了設備,為什么?

    使用esp-mdf 官方例程mconfig 組網(wǎng)后app加載不了設備 esp-mesh 剛開始能搜索到設備 然后配網(wǎng)那些都能正常進行 但是最后組網(wǎng)后搜索不到設備了
    發(fā)表于 06-28 10:01

    ESP32用send函數(shù)發(fā)送數(shù)據(jù)時,經(jīng)常出現(xiàn)進到send后就出不來了的情況,為什么?

    在使用ESP32的WIFI發(fā)送TCP數(shù)據(jù)時(模塊做AP,TCP-Server),用send函數(shù)發(fā)送數(shù)據(jù)時,經(jīng)常出現(xiàn)進到send后就出不來了的情況,唯一的解救辦法就是斷開WIFI連接,send才會返回
    發(fā)表于 06-26 07:00

    使用esp32c3開發(fā)matter時,開發(fā)好的產(chǎn)品還需要走matter官方認證流程獲得認證嗎?

    使用esp32c3開發(fā)matter時,(SDK使用esp-matter),使用這個芯片開發(fā)matter的話,開發(fā)好的產(chǎn)品還需要走matter官方認證流程獲得認證嗎?詢問其他人時他們說是需要經(jīng)過一個
    發(fā)表于 06-11 07:46

    esp32自動重連機制怎么做?

    esp32成功連上一個路由器,這個時候斷開路由器電源,再上電,這個esp32自動重連機制怎么做?
    發(fā)表于 06-07 07:31

    ESP32-C3編譯官方例程缺少頭文件怎么解決?

    ESP32-C3官方示例modbus-master,編譯時提示找不到這兩個頭文件\"modbus_params.h\"和\"mbcontroller.h\"
    發(fā)表于 06-06 07:28

    特權賬號管理的那些坑,芯盾時代PAM幫你踩平!

    特權賬號,是指數(shù)據(jù)中心內部,分布在主機、網(wǎng)絡設備、數(shù)據(jù)庫等資產(chǎn)上具有較高訪問權限的賬號,衍生到一切資產(chǎn)上具有可訪問權限的賬號。
    的頭像 發(fā)表于 03-21 11:44 ?1289次閱讀
    <b class='flag-5'>特權</b>賬號管理的那些坑,芯盾時代PAM幫你踩平!
    主站蜘蛛池模板: 久久国产美女免费观看精品 | 色无五月 | 在线精品国产第一页 | 免费看成年视频网页 | 国产一区二区三区夜色 | 毛片.com| 久久久久久免费观看 | 深夜免费视频 | www在线播放| 好紧好爽太大了h视频 | 永久手机看片福利盒子 | 天天爽夜夜爽精品免费 | 特级黄视频| 在线观看色视频网站 | 日韩一级黄色录像 | 手机在线完整视频免费观看 | 国产你懂| 亚洲精品91大神在线观看 | 手机看片中文字幕 | 久久riav二区三区 | 色视频亚洲 | 性欧美xxxx| 三级网站在线免费观看 | 狠狠色综合网 | 你懂的免费在线观看 | 特级做a爰片毛片免费看一区 | 亚洲一区二区影视 | 手机看片1024欧美 | tom影院亚洲国产一区二区 | 色播五月婷婷 | 丁香综合五月 | 1024毛片基地 | 99久久免费午夜国产精品 | 亚洲大胆精品337p色 | 韩国韩宝贝2020vip福利视频 | 夜色福利久久久久久777777 | 香蕉视频在线观看黄 | 视频在线一区二区 | 亚洲光棍天堂 | 天天视频天天爽 | 午夜噜噜噜 |