基於STM32N6的Demo板開箱實驗

關鍵字 :N6STM32STM32N6AIST
相關商品 :STM32F723IEK6STM32N657X0H3Q

STM32N6是有史以來功能最強大的STM32系列

 

STM32N6內嵌了意法半導體專有的Neural-ART加速器以及運行頻率為800 MHz的Arm® Cortex®-M55核心,提供了迄今為止最高的STM32微控制器 (MCU) 計算能力。利用強大的邊緣AI功能,在微控制器的功耗預算和PCB佔用空間內,為您的客戶帶來媲美MPU的終端用戶體驗,對邊緣AI應用可謂如虎添翼。

 

STM32N6產品組合:

 

NUCLEO-N657X0-Q 是我們這次實驗的硬體平台工具:

 

1. STM32 Nucleo-144 開發板,搭載 STM32N657X0 MCU,具備 SMPS,支援 Arduino 和 ST morpho 連接。以下是板子的正反面照片。操作手冊、Bom 和原理圖請參考附件文件。

 

2.STM32CubeMx 設定:

3. 打開由 STM32CubeMx 生成的專案,並添加程式碼:

 

BSP_LED_Toggle(LED_GREEN);
HAL_延遲(500);
如果 (BspButtonState == BUTTON_PRESSED)
            {
BspButtonState = BUTTON_RELEASED; // 按鈕狀態設為已釋放
printf("重置系統。 ");
NVIC_SystemReset();
            }

4. 模擬時可以看到綠色LED閃爍,另外兩個LED常亮。如果按下B1按鈕使晶片復位,就無法進行調試了。這是因為STM32N6內部的Flash容量較小,程式碼需要存儲在外部的OSPI Flash中,而調試只能在RAM中運行。復位後,指針會指向Flash區域,導致無法進行Debug。接下來將介紹STM32N6的啟動模式。

 

<1>.STM32N6 是 ST 第一顆帶有 NPU 的 MCU 晶片,內部僅有一小塊 ROM 用於第一階段的 Boot,必須使用外部 Flash 存儲用戶代碼或通過 USB/U(S)ART 串口啟動。此外,STM32N6 的工程引入了一些新的術語,比如 FSBL 等。本文記錄了 STM32N6 使用的一些基本啟動步驟,重點介紹 FSBL。FSBL 的全稱為 First Stage Boot Loader,在上電後,會先執行片內 ROM 區域的 BootROM,然後根據 Boot 選項和地址,執行相應地址的 FSBL。
 
<2>. 啟動模式:其中 BOOT1 腳位決定了兩種不同的啟動模式,分別是 dev boot 和 Flash boot/Serial boot 模式:Flash boot(BOOT1 = 0, BOOT0 = 0)表示上電後,BootROM 程式(固化在晶片內 ROM 的一小段啟動程式)會嘗試從外部 Flash 啟動,應用程式需要下載到外部 Flash,如果沒有應用程式則無法啟動。Dev boot 表示上電後,BootROM 程式會嘗試從內部 RAM 中啟動。

 

 

<3>FSBL 的全稱為 First Stage Boot Loader,在上電後,會先執行片內 ROM 區域的 BootROM,然後根據 Boot 選項和地址,執行相應地址的 FSBL。以下圖為例,為外部 Flash 的啟動流程。BootROM 啟動後,會驗證 FSBL 的頭部,深黃色部分為 1024Bytes 的 Header 資訊,可以使用 ST 提供的腳本對 FSBL 進行簽名。FSBL 程序必須完成簽名,否則無法正常啟動。驗證成功後,BootROM 將 FSBL 程序搬運至內部 SRAM2:0x34180000 的位置,然後 PC 指針跳轉到該位置開始執行 FSBL。由於本示例僅涉及 FSBL,其他如 FSBL+Load&Run、FSBL+XiP(Execute in Place)等方式就不再贅述。如需了解,請參考 ST LAT1491。

<4>編譯後的bin檔案需要通過STM32MP_SigningTool_CLI.exe簽名後才能在外部Flash中運行。在簽名前,需要安裝ST最新的CubeProgrammer,安裝後其中包含STM32MP_SigningTool_CLI.exe工具,並將STM32MP_SigningTool_CLI.exe的路徑加入到Windows系統的PATH環境變數中,確保該exe程式可以被正確找到並運行。以下是簽名運行的效果圖:

簽名指令: STM32_SigningTool_CLI.exe -bin C:\Users\l9781\Desktop\n6\FSBL.bin -nk -of 0x80000000 -t fsbl -o C:\Users\l9781\Desktop\n6\FSBL_trusted.bin -hv 2.3 -dump C:\Users\l9781\Desktop\n6\FSBL_trusted.bin

 

• -bin:原始 bin 檔案。


• -nk:no keys,沒有使用密鑰相關選項。
• -of:選項旗標。
• -t:bin 文件的類型為 fsbl。
• -o:輸出的檔案。
• -hv:header version,版本號。
• -dump:將 bin 檔案的 header 資訊 dump 出來,方便查看。
FSBL.bin 是原始的 FSBL 專案的 bin 檔案,FSBL-trusted.bin 是已經被正確簽名並添加好 header 的 bin 檔案。
 

下載指令: STM32_Programmer_CLI -c port=SWD mode=HOTPLUG ap=1 -el C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\ExternalLoader\MX25UM51245G_STM32N6570-NUCLEO.stldr -hardRst -w C:\Users\l9781\Desktop\n6\FSBL_trusted.bin 0x70000000


我這個實驗使用命令列燒錄,也可以使用STM32CubeProgrammer命令列燒錄,效果一樣。

 

運行效果圖:<因為是靜態圖,看不到綠色LED閃爍>,代碼與工程參考附件。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

:

評論