91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

官方“空投” — ESP特權(quán)隔離機制來了!

啟明云端 ? 2023-02-07 09:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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


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


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


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


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

ESP 特權(quán)隔離的亮點:

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

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

受保護的應(yīng)用程序不受用戶應(yīng)用程序異常的影響。

提供標準系統(tǒng)調(diào)用接口,允許用戶應(yīng)用程序通過這些接口發(fā)起內(nèi)核服務(wù)訪問請求。

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

支持可配置的內(nèi)存訪問權(quán)限和外設(shè)訪問權(quán)限。

支持在受保護的應(yīng)用程序和用戶應(yīng)用程序之間靈活分配內(nèi)存。

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

技術(shù)細節(jié)

1. 應(yīng)用程序的啟動過程

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

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

2. World 控制器和權(quán)限控制

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

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


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

*World和權(quán)限管理

如上圖所示:

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

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

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

3. CPU 的世界切換

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

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

4. 內(nèi)存布局

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

內(nèi)部 SRAM

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


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

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


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


外部 flash:

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


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

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

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


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

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

6. API 一致性

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

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

同一個程序可以構(gòu)建為受保護的應(yīng)用程序或用戶應(yīng)用程序。

7. 用戶空間異常處理

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

8. 設(shè)備驅(qū)動程序

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

此外,也可以向用戶應(yīng)用程序開放對外設(shè)寄存器的訪問權(quán)限,允許用戶應(yīng)用程序?qū)懽约旱尿?qū)動程序。


優(yōu)勢

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

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

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

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

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

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

傳統(tǒng)應(yīng)用程序與ESP特權(quán)分離程序的內(nèi)存使用對比(Rainmaker Demo)。

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



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

    關(guān)注

    48

    文章

    8381

    瀏覽量

    164607
  • ESP
    ESP
    +關(guān)注

    關(guān)注

    0

    文章

    197

    瀏覽量

    36459
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    ESP-01/01S 燒錄固件

    一、ESP-01 與 ESP-01S 的區(qū)別 引腳:ESP-01S 的 IO0、RST 和 EN 引腳內(nèi)置上拉,ESP-01 則沒有。 絲印:ESP
    的頭像 發(fā)表于 02-10 11:36 ?210次閱讀
    <b class='flag-5'>ESP</b>-01/01S 燒錄固件

    ESP32 驅(qū)動瀚海微SD NAND 完整方案 + FAT/FAT32 驅(qū)動核心區(qū)別

    ESP32?驅(qū)動 SD NAND?的核心是基于SDIO?接口(SD NAND?主流通信方式,兼容 SPI?但速率更高),借助樂鑫官方esp-idf框架的SDMMC?驅(qū)動庫實現(xiàn),無需額外第三方驅(qū)動
    的頭像 發(fā)表于 02-02 11:38 ?259次閱讀
    <b class='flag-5'>ESP</b>32 驅(qū)動瀚海微SD NAND 完整方案 + FAT/FAT32 驅(qū)動核心區(qū)別

    芯盾時代為湖南銀行建立特權(quán)賬號全生命周期管理體系

    芯盾時代中標湖南銀行!芯盾時代基于零信任安全理念,通過密碼集中管控、動態(tài)權(quán)限調(diào)整及自動化運維流程,為客戶建立特權(quán)賬號全生命周期管理體系,實現(xiàn)全局特權(quán)賬號的統(tǒng)一管理,打破特權(quán)賬號管理系統(tǒng)與員工身份
    的頭像 發(fā)表于 01-22 11:14 ?554次閱讀

    樂鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開發(fā)板推薦!啟明云端樂鑫科技代理

    操作系統(tǒng),并提供完整的核間通信機制。啟明云端旗兩款高性能開發(fā)板——WT99P4C5-S1與WTDKP4C5-S1,搭載樂鑫科技ESP32-P4芯片和ESP32-C5芯
    的頭像 發(fā)表于 12-18 18:02 ?1216次閱讀
    樂鑫科技<b class='flag-5'>ESP</b>-AMP框架詳解!兩款已支持的<b class='flag-5'>ESP</b>32-P4C5開發(fā)板推薦!啟明云端樂鑫科技代理

    Arduino plc和termux esp

    Arduino plc和termux esp
    的頭像 發(fā)表于 12-06 06:41 ?1864次閱讀

    VSCode + ESP-IDF環(huán)境下給ESP32-S3項目添加頭文件

    VSCode + ESP-IDF環(huán)境下給ESP32-S3項目添加頭文件
    的頭像 發(fā)表于 11-28 07:27 ?2338次閱讀

    晶科鑫 | 國產(chǎn)26MHz晶振匹配Espressif(樂鑫) ESP8285/ESP8266芯片案例

    【應(yīng)用】國產(chǎn)26MHz頻率晶振應(yīng)用于物聯(lián)網(wǎng)WIFI物聯(lián)網(wǎng)模塊(串口轉(zhuǎn)WiFi模塊),Espressif(樂鑫)ESP8285/ESP8266芯片匹配測試OKESP8285其實是ESP8266的升級版
    的頭像 發(fā)表于 11-21 15:37 ?4630次閱讀
    晶科鑫 | 國產(chǎn)26MHz晶振匹配Espressif(樂鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP</b>8266芯片案例

    ESP8266和ESP32開發(fā)板常見的2種下載方式

    ESP32和ESP8266是性價比很高而且使用較為廣泛的的Wi-Fi模塊,在物聯(lián)網(wǎng)(IoT)領(lǐng)域的DIY項目中可以首先考慮這2款產(chǎn)品。 兩款芯片都屬于32位處理器。ESP32是低功耗雙核80MHz
    的頭像 發(fā)表于 11-10 20:30 ?971次閱讀
    <b class='flag-5'>ESP</b>8266和<b class='flag-5'>ESP</b>32開發(fā)板常見的2種下載方式

    ESP8266和ESP32開發(fā)板常見的2種下載方式

    32燒錄固件,選擇文件-示例-ESP32-GPIO-Functionallnterrupt文件打開,驗證一下編譯完成,然后點擊上傳。也可以燒錄自己編程的文件。 官方FLASH下載軟件燒錄固件 使用樂鑫
    發(fā)表于 10-24 18:04

    空投影燈方案開發(fā)設(shè)計案例

    面臨的挑戰(zhàn)。今天,深圳三佛科技將介紹一款基于輝芒微8 位 MCU 的星空投影儀控制方案,它不僅能夠滿足上述需求,還能在極短的開發(fā)周期內(nèi)實現(xiàn)量產(chǎn),為市場帶來全新的選擇。 方案定位 星空投影燈方案面向三類
    發(fā)表于 09-03 15:45

    芯盾時代如何破解特權(quán)賬號管理難題

    特權(quán)賬號,是指數(shù)據(jù)中心內(nèi)部,分布在主機、網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)庫等資產(chǎn)上具有較高訪問權(quán)限的賬號,衍生到一切資產(chǎn)上具有可訪問權(quán)限的賬號。按照Gartner的分類,特權(quán)賬號分為人員特權(quán)賬號和軟件特權(quán)
    的頭像 發(fā)表于 08-20 10:37 ?1045次閱讀

    ESP32-P4-MINI開發(fā)板開箱和上手指南來了!速速碼住!

    上期“夢中情板”ESP32-P4-MINI開發(fā)板一出就備受青睞這期我們立馬就端著開箱和上手指南來了!不用驚嘆,我們就是這么迅速,請把“啟明云端權(quán)威”打在公屏上好嘛!開箱展示拿到
    的頭像 發(fā)表于 07-25 18:02 ?2148次閱讀
    <b class='flag-5'>ESP</b>32-P4-MINI開發(fā)板開箱和上手指南<b class='flag-5'>來了</b>!速速碼??!

    ESP32開發(fā)板元件資料

    ESP32開發(fā)板元件
    發(fā)表于 07-21 14:47 ?15次下載

    啟明云端ESP32-S3 2.8寸串口屏到手了?如何上手?看這篇!

    【場外插播】ESP32-S32.8寸串口屏、MX1.25-7P線、MX1.25-8P線我們都帶來了,開箱展示如下【競猜繼續(xù)】ESP32-S32.8寸串口屏到手還不知道如何上手點屏?不要擔(dān)心,我們的上手指南
    的頭像 發(fā)表于 07-07 18:04 ?940次閱讀
    啟明云端<b class='flag-5'>ESP</b>32-S3 2.8寸串口屏到手了?如何上手?看這篇!

    ESP32-P4 C5開發(fā)板燒錄小智全流程!速看!

    沒錯,你沒有看錯!我們帶著WT99P4C5-S1開發(fā)板燒錄小智全流程走來了!開發(fā)板搭載樂鑫科技ESP32-P4和ESP32-C5芯片,代碼完全開源,支持靈活二次開發(fā)。什么?文字教程不好理解?別怕
    的頭像 發(fā)表于 07-04 18:03 ?2325次閱讀
    <b class='flag-5'>ESP</b>32-P4 C5開發(fā)板燒錄小智全流程!速看!