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

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

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

基于Cortex-M33內(nèi)核的系列

STM32單片機(jī) ? 來(lái)源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2020-06-19 11:35 ? 次閱讀

前言

STM32L5是STM32家族中第一個(gè)基于Cortex-M33內(nèi)核的系列,而TrustZone正是此內(nèi)核最重要的特性,使能TrustZone的方法非常簡(jiǎn)單,在RDP=0的情況下直接在option byte中將TZEN置1即可,但是一旦TrustZone使能后,與其相關(guān)的安全特性也將開啟,由于安全方面的特性,在TrustZone已經(jīng)打開的情況下欲將其再次關(guān)閉卻不能像打開時(shí)那樣那么簡(jiǎn)單操作了。本文將以用戶的視角描述一下關(guān)閉TrustZone的過(guò)程。

過(guò)程

為了講述這一過(guò)程,我們將以NUCLEO-L552ZE-Q這塊板子為例,工具使用STM32CubeProgrammer V2.4.0

首先通過(guò)CubeProgrammer這個(gè)工具將MCU的TrustZone打開, 在此之前讀保護(hù)RDP=0,是用戶面臨的選項(xiàng)字節(jié)最初始狀態(tài):

按客戶的操作思路,接下來(lái)我們嘗試關(guān)閉TrustZone。

首先,直接在option byte中直將TZEN后那個(gè)勾去掉,然后Apply。

此時(shí)會(huì)出現(xiàn)錯(cuò)誤,如上圖所示。

基于Cortex-M33內(nèi)核的系列

在TrustZone已經(jīng)激活的情況下,是不能直接將其關(guān)掉的。

接下來(lái)查看參考手冊(cè),在RM0438 4.4.2節(jié)有講述到如何將TrustZone關(guān)閉的內(nèi)容:

基于Cortex-M33內(nèi)核的系列

顯然,原來(lái)TrustZone關(guān)閉必須是在讀保護(hù)從RDP1回退到RDP0的同時(shí)進(jìn)行才可以。

首先,我們要將RDP設(shè)置為level1,然后再回退

基于Cortex-M33內(nèi)核的系列

如上圖所示,在設(shè)置RDP1的時(shí)候, 此時(shí)會(huì)出現(xiàn)警告,意思是說(shuō)在TrustZone開啟的情況下嘗試使能RDP,如果當(dāng)前FLASH內(nèi)的代碼不能使得芯片上電后執(zhí)行的程序最終跳轉(zhuǎn)到NS空間,將會(huì)導(dǎo)致關(guān)閉trustzone和回退RDP失敗,強(qiáng)烈建議將nSWBOOT0設(shè)置為1。這樣可以確保我們可以通過(guò)調(diào)整PH3/Boot0引腳電平來(lái)從系統(tǒng)bootloader啟動(dòng),這是一定可以跑到NS程序空間的?!綨S:Non-Secure】

我們先選擇“取消”,然后檢查nSWBOOT0的設(shè)置:

基于Cortex-M33內(nèi)核的系列

如上圖所示,nSWBOOT0的值已經(jīng)為1,是OK的,其值表示BOOT0的值將從PH3引腳的狀態(tài)來(lái)決定 。

既然關(guān)閉TrustZone必須是RDP從LEVEL 1回退到LEVEL 0的過(guò)程中操作才行,那么我們必須要先將RDP設(shè)置為L(zhǎng)EVEL 1才行。使能RDP LEVEL 1:

基于Cortex-M33內(nèi)核的系列

如上圖所示,警告意思是: 你確定?你的MCU將可能永遠(yuǎn)喪失!

點(diǎn)擊OK。如下圖所示:

基于Cortex-M33內(nèi)核的系列

表示FLASH內(nèi)的數(shù)據(jù)已經(jīng)不能讀取了,RDP LEVEL 1使能后,F(xiàn)LASH的內(nèi)容自然不能再讀出,點(diǎn)擊OK。

基于Cortex-M33內(nèi)核的系列

此時(shí)再次嘗試連接,則出現(xiàn)如下界面所示 :

基于Cortex-M33內(nèi)核的系列

此時(shí),ST-Link果然不能再連接。

那么接下來(lái)我們?cè)撊绾巫瞿兀?》拉高PH3, 讓MCU從RSS啟動(dòng)。

以NUCLEO-L552-Q板為例,將PH3拉到VDD后,再次上電重啟,此時(shí)板上的藍(lán)色的LD2和紅色LD3亮起。按照這塊板子的用戶手冊(cè)UM2581,章節(jié)6.11.2說(shuō)明:直接把CN11上的引腳5(VDD)和引腳7(PH3_BOOT0)短接即可。

使用Cubeprogrammer,以hotplug模式進(jìn)行連接(Mode :Hot plug) :

基于Cortex-M33內(nèi)核的系列

嘗試連接:

基于Cortex-M33內(nèi)核的系列

如上圖所示,ST-Link已經(jīng)連接上,只不過(guò)由于RDP LEVEL 1使能了而不能讀取FLASH內(nèi)容,但此時(shí)option bytes是可以修改的。

打開Option byte界面,在User configuration下將TZEN對(duì)應(yīng)的復(fù)選框內(nèi)的勾去掉,然后再將Read Out Protection下的RDP改回LEVEL 0,然后點(diǎn)擊Apply

基于Cortex-M33內(nèi)核的系列

上圖表示已經(jīng)修改成功,斷開連接,斷開電源,然后將PH3引腳的高電平恢復(fù)到低電平。上電后再次連接…

基于Cortex-M33內(nèi)核的系列

如上圖所示,再次連上時(shí),F(xiàn)LASH的內(nèi)容由于RDP LEVEL 1回退到LEVEL 0時(shí)被全部清空。此時(shí)再次查看RDP和TZEN的值 :

基于Cortex-M33內(nèi)核的系列

基于Cortex-M33內(nèi)核的系列

RDP恢復(fù)到LEVEL 0,TrustZone成功關(guān)閉。

后注 :

1》 關(guān)閉trustzone需要通過(guò)RDP級(jí)別回退完成。

2》 nSWBOOT0=1 && BOOT0/ PH3引腳為高,使得上電后系統(tǒng)從RSS啟動(dòng)。

3》 在STM32CubeProgrammer中使用hot plug連接方式是為了讓MCU從RSS啟動(dòng)后,在運(yùn)行到NS空間的時(shí)候方便跟調(diào)試端口連接,以便進(jìn)行后續(xù)的Option Bytes修改操作。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1336

    瀏覽量

    40084
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6715

    瀏覽量

    88307
  • trustzone
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    12514
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    瑞薩電子基于Arm Cortex-A55和雙Cortex-M33 MPU的SOM方案 加速物聯(lián)網(wǎng)設(shè)計(jì)

    基于Arm Cortex-A55(1.1GHz)和雙Cortex-M33(250MHz)MPU的SOM(系統(tǒng)模塊)方案,該方案可加快物聯(lián)網(wǎng)應(yīng)用的開發(fā)進(jìn)程,并降低其設(shè)計(jì)風(fēng)險(xiǎn)。 系統(tǒng)框圖 方案介紹 本方案由一個(gè)多功能OSM載板和一個(gè)兼容的OSM模塊組成。核心在于集成的 RZ/
    的頭像 發(fā)表于 08-15 17:23 ?1577次閱讀
    瑞薩電子基于Arm <b class='flag-5'>Cortex</b>-A55和雙<b class='flag-5'>Cortex-M33</b> MPU的SOM方案 加速物聯(lián)網(wǎng)設(shè)計(jì)

    樹莓派Pico 2發(fā)布,搭載RP2350雙核RISC-V和Arm Cortex-M33微控制器!

    復(fù)雜得多的設(shè)計(jì),具有: – 兩個(gè) 150MHz Arm Cortex-M33 內(nèi)核,支持浮點(diǎn)和 DSP – 內(nèi)置 520KB SRAM – 圍繞 Arm TrustZone for Cortex-M
    發(fā)表于 08-13 10:07

    恩智浦發(fā)布支持多協(xié)議無(wú)線連接的MCX W系列

    基于MCX N和MCX A系列微控制器取得的成功,恩智浦發(fā)布支持多協(xié)議無(wú)線連接的MCX W系列。作為MCX廣泛產(chǎn)品組合的重要成員,MCX W系列具有與MCX產(chǎn)品其他系列相同的Arm
    的頭像 發(fā)表于 05-10 15:38 ?1710次閱讀
    恩智浦發(fā)布支持多協(xié)議無(wú)線連接的MCX W<b class='flag-5'>系列</b>

    兆易創(chuàng)新推出GD32F5系列Cortex-M33內(nèi)核MCU

    兆易創(chuàng)新GigaDevice宣布,正式推出GD32F5系列高性能微控制器,該系列MCU基于Arm? Cortex?-M33內(nèi)核,旨在滿足各類
    的頭像 發(fā)表于 03-16 09:58 ?941次閱讀

    兆易創(chuàng)新推出GD32F5系列Cortex?-M33內(nèi)核MCU

    業(yè)界領(lǐng)先的半導(dǎo)體器件供應(yīng)商兆易創(chuàng)新GigaDevice 今日宣布,正式推出基于Arm? Cortex?-M33內(nèi)核的GD32F5系列高性能微控制器,全面適配于能源電力、光伏儲(chǔ)能、工業(yè)自
    的頭像 發(fā)表于 03-07 11:40 ?685次閱讀
    兆易創(chuàng)新推出GD32F5<b class='flag-5'>系列</b><b class='flag-5'>Cortex</b>?-<b class='flag-5'>M33</b><b class='flag-5'>內(nèi)核</b>MCU

    兆易創(chuàng)新推出基于Arm? Cortex?-M33內(nèi)核的GD32F5系列高性能微控制器

    中國(guó)北京(2024年3月7日)——業(yè)界領(lǐng)先的半導(dǎo)體器件供應(yīng)商兆易創(chuàng)新GigaDevice (股票代碼 603986) 今日宣布,正式推出基于Arm Cortex-M33內(nèi)核的GD32F5系列高性能微控制器,全面適配于能源電力、光
    的頭像 發(fā)表于 03-07 09:09 ?730次閱讀
    兆易創(chuàng)新推出基于Arm? <b class='flag-5'>Cortex</b>?-<b class='flag-5'>M33</b><b class='flag-5'>內(nèi)核</b>的GD32F5<b class='flag-5'>系列</b>高性能微控制器

    Cortex-M85內(nèi)核單片機(jī)如何快速上手

    2022年4月,Arm推出了全新的MCU級(jí)內(nèi)核Cortex-M85。截止目前(2024年2月),Cortex-M85是最新、最強(qiáng)的Cortex-M內(nèi)
    發(fā)表于 02-29 09:35 ?552次閱讀
    <b class='flag-5'>Cortex-M</b>85<b class='flag-5'>內(nèi)核</b>單片機(jī)如何快速上手

    強(qiáng)大的Arm? Cortex?-M3內(nèi)核(下)

    經(jīng)過(guò)前一期的芝識(shí)課堂,我們了解了東芝MCU產(chǎn)品所基于Arm Cortex-M3內(nèi)核的基本結(jié)構(gòu)和寄存器分配的細(xì)節(jié)。
    的頭像 發(fā)表于 01-25 09:25 ?707次閱讀
    強(qiáng)大的Arm? <b class='flag-5'>Cortex</b>?-<b class='flag-5'>M</b>3<b class='flag-5'>內(nèi)核</b>(下)

    STM32 Cortex?-M33 MCU編程手冊(cè)

    本編程手冊(cè)為應(yīng)用程序和系統(tǒng)級(jí)軟件開發(fā)人員提供信息。它給出了完整的描述STM32 Cortex-M33處理器編程模型、指令集和核心外設(shè)。適用的產(chǎn)品有列在下表中。Cortex-M33處理器是為微控制器
    發(fā)表于 01-09 09:50 ?11次下載

    GD32W515系列 32位ARM? Cortex? -M33 MCU選擇指南

    電子發(fā)燒友網(wǎng)站提供《GD32W515系列 32位ARM? Cortex? -M33 MCU選擇指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 10:07 ?0次下載
    GD32W515<b class='flag-5'>系列</b> 32位ARM?  <b class='flag-5'>Cortex</b>? -<b class='flag-5'>M33</b> MCU選擇指南

    芝識(shí)課堂【TX03微控制器】—強(qiáng)大的Arm? Cortex?-M3內(nèi)核(上)

    單元,要應(yīng)用好TX03系列MCU必須要先了解該系列所基于的Arm Cortex -M3內(nèi)核。本期內(nèi)容開始,芝子將向大家介紹Arm
    的頭像 發(fā)表于 11-28 17:45 ?750次閱讀
    芝識(shí)課堂【TX03微控制器】—強(qiáng)大的Arm? <b class='flag-5'>Cortex</b>?-<b class='flag-5'>M</b>3<b class='flag-5'>內(nèi)核</b>(上)

    Arm Cortex R4F內(nèi)核M4F內(nèi)核有什么區(qū)別?

    TI的FAE給推薦了一款基于Arm Cortex R4F內(nèi)核的MCU TMS570系列,不知道這個(gè)內(nèi)核與ARM Cortex
    發(fā)表于 11-06 07:13

    貿(mào)澤電子開售STMicroelectronics配備FPU的 STM32H5 Arm Cortex-M33 32位MCU

    。 ? 貿(mào)澤電子供應(yīng)的STMicroelectronics STM32H5是搭載Arm? Cortex?-M33 32位RISC內(nèi)核的高性能微控制器 (MCU),包含浮點(diǎn)運(yùn)算單元 (FPU),工作頻率高達(dá)250 MHz,兼具高性
    發(fā)表于 11-03 14:57 ?600次閱讀

    LPC55S69是兩個(gè)ARM Cortex M33內(nèi)核,這種雙內(nèi)核應(yīng)用在那種場(chǎng)景中比較合適?

    NXP的LPC55S69是兩個(gè)ARM Cortex M33內(nèi)核,這種雙內(nèi)核應(yīng)用在那種場(chǎng)景中比較合適?顯示全部
    發(fā)表于 10-30 07:40

    北歐半導(dǎo)體推出128 MHz nRF54L15 Cortex-M33多協(xié)議無(wú)線微控制器

    Nordic Semiconductor最近推出了128 MHz nRF54L15 Cortex-M33多協(xié)議無(wú)線微控制器,這是nRF54L系列的第一款,也是繼去年春天推出更強(qiáng)大的 320 MHz
    的頭像 發(fā)表于 10-17 11:56 ?1727次閱讀