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

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>嵌入式Web服務器的 STM32 固件更新代碼

嵌入式Web服務器的 STM32 固件更新代碼

2023-06-21 | zip | 0.00 MB | 次下載 | 2積分

資料介紹

此開源參考設計演示了如何通過支持 LwIP 的微控制器系統上的嵌入式 Web 服務器安全、穩健和專業地更新固件。

使用stm32-secure-patching-bootloader作為后端固件更新引擎,該設計通過 HTML 多部分/表單數據文件上傳方法提供簽名和加密的固件更新補丁或完整圖像文件。大多數瀏覽器都原生支持此方法。后端多部分表單處理已集成到現有的 FreeRTOS 和支持 LwIP-netconn 的 Web 服務器應用程序中。

該項目在 NUCLEO-F429ZI 開發板上運行。它價格低廉,隨時可用,并且包括 USB OTG 和以太網端口

什么是多部分表單文件上傳?它是如何工作的?

以下 HTML 代碼被插入到網頁中并提供給瀏覽器。瀏覽器自動生成一個文件選擇器按鈕并將另一個按鈕綁定到表單提交操作(按下時生成 POST 請求)。不需要javascript。

id="form" action="upload" method="post" enctype="multipart/form-data"> id="file" type="file" name="binary" accept=".sfb,.sfbp"/> type="submit">upload

服務器將在 /upload URL 處看到一個 HTTP POST 請求。請求中有一些常用的 HTTP 協議標頭,包括預期長度(文件八位字節數據加上 HTTP 數據)和內容類型指示符。來自表單的每個“部分”在標題中都有自己的內容類型指示符。我們正在尋找的是Content-Type:application/octet-stream后跟 HTTP 標頭終止符“\r\n”。此后在 LwIP 緩沖區中接收到的所有數據都是固件更新文件字節并按原樣使用。

?

POST /upload HTTP/1.1\r\n
...
Content-Length: 129773\r\n
...
Content-Type: multipart/form-data; 
...
Content-Type: application/octet-stream\r\n
\r\n

?

在 Web 服務器源代碼 (httpserver-netconn.c) 中,我構建了一個狀態機來解析此數據流并適當地使用 SE_PATCH_InitSE_PATCH_Data API

本質上,當找到并驗證 HTTP 標頭時,將調用 SE_PATCH_Init 函數。這個函數只是重置和準備補丁引擎內部狀態機。然后作為“八位字節流”的一部分接收到的所有字節都被送入 SE_PATCH_Data 函數。修補引擎管理字節計數器以及擦除和寫入閃存以及執行修補(如果使用 .sfbp 文件)的所有細節,因此除了在 Web 服務器中正確解析接收到的網絡數據包之外,更新固件真的沒有什么可做的處理循環。

修補引擎首先使用 ECDSA 簽名驗證來驗證固件更新文件頭(256 字節),然后再接受任何其他字節。當滿意有效的固件更新文件正在發送時,它將累積字節并將它們寫入下載槽(使用 .sfb 文件)或將它們與現有固件映像組合以重新創建新的固件映像內部閃存中的下載槽(using.sfbp 文件)。

當所有字節都被正確接收和處理后,修補引擎可以立即重啟或由用戶手動重啟。我選擇手動重新啟動,以便可以將“成功”消息發送回客戶端瀏覽器并在重新啟動前關閉連接。“成功”頁面包含一個重定向計時器,用于在延遲顯示更新后的固件版本后自動重新加載固件更新頁面。

需要重新啟動,因為實際上是stm32-secure-patching-bootloader在下載槽 (SLOT1) 中獲取更新映像候選并覆蓋 SLOT0 中的活動固件映像。它只有在所有簽名、解密和 SHA256 哈希都經過檢查時才會這樣做,這使得它非常健壯,非常適合任何打包的交付框架,如以太網、wifi、藍牙lora、lorawan、CAN、modbus、UART 等。

在存儲庫中,您可以使用 bin 目錄中的預構建文件立即測試更新,或者您可以使用 STM32CubeIDE 和包含的項目文件自行構建更新文件。有關如何執行此操作的更多說明,請參閱項目 readme.txt。

使用網絡更新界面

打開連接到 Nucleo 的 STLINK 的終端,這樣您就可以看到分配給它的 IP 地址:

?

[  0.000] Bootloader starting up.
STM32 Secure Patching Bootloader. github.com/firmwaremodules/stm32-secure-patching-bootloader
Build: v1.3.0
Registered to: unregistered
Target: NUCLEO-F429ZI
UID: 175053388a356f20
Clock:HSE,8,168 Crypto:SW UART:3,115200,N81
SLOT0:08020000 SLOT1:08060000 SIZE:40000
APP RAMSTART:20002700 VTOR:08020200
[  0.029] Target check: CPUID:410FC241 IDCODE:20036419 FLASHSZ:0800 .. OK.
[  0.288] Verify bootloader.
[  0.315] SHA256: 3e8790d4724c52e5f5f2352bc6b132f1c8320134e0c89de983b98904c80e73a5 Valid
[  0.323] UART loader check trigger.
[  1.328] Check USB flash media.
[  2.330] No valid firmware found on flash media, status=1
[  2.336] Verify slot 1 header.
[  2.339] Slot 1 is empty.
[  2.341] Verify slot 0.
[  2.343] Verify slot 0 header.
[  2.484] Verify slot 0 signature.
[  2.535] Verify slot 0 ready.
[  2.538] Verify slot 0 fw ver.
[  2.679] Slot 0 has valid active firmware version 1.0.0
[  2.684] Preparing to launch application in slot 0.

LwIP_HTTP_Server_Netconn_RTOS - NUCLEO-F429ZI
Built FW_UPDATE_VERSION=1
Firmware Version: 1.0.0
Bootloader Version: v1.3.0
  State: Looking for DHCP server ...
IP address assigned by a DHCP server: 192.168.1.75

?

使用 Chrome 或兼容的瀏覽器,轉到 http://

單擊固件更新選項卡。

poYBAGSAZwyAdXs9AADRHJrR8EM813.jpg

使用文件選擇器按鈕選擇要上傳的更新文件。然后單擊“上傳”按鈕,它將從那里開始。

pYYBAGSAZw6Ad5AtAABASbkdGzA642.jpg

選擇器只允許選擇 .sfb(全圖)或 .sfbp(補丁)。下面顯示了可供選擇器使用的預構建圖像。

poYBAGSAZxGAaoKUAAA_L-ZSWto683.jpg

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1涂鴉各WiFi模塊原理圖加PCB封裝
  2. 11.75 MB   |  76次下載  |  1 積分
  3. 2錦銳科技CA51F2 SDK開發包
  4. 24.06 MB   |  29次下載  |  1 積分
  5. 3錦銳CA51F005 SDK開發包
  6. 19.47 MB   |  3次下載  |  1 積分
  7. 4蘋果iphone 11電路原理圖
  8. 4.98 MB   |  3次下載  |  2 積分
  9. 5基礎模擬電子電路
  10. 3.80 MB   |  3次下載  |  1 積分
  11. 6RA-Eco-RA6M4-100PIN-V1.0開發板資料
  12. 34.89 MB  |  1次下載  |  免費
  13. 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
  14. 3.32 MB   |  1次下載  |  免費
  15. 8聯想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
  16. 0.62 MB   |  次下載  |  5 積分

本月

  1. 1AI智能眼鏡產業鏈分析
  2. 4.43 MB   |  383次下載  |  免費
  3. 2蘇泊爾電磁爐線路的電路原理圖資料合集
  4. 2.02 MB   |  296次下載  |  5 積分
  5. 3貼片三極管上的印字與真實名稱的對照表詳細說明
  6. 0.50 MB   |  94次下載  |  1 積分
  7. 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  8. 0.46 MB   |  91次下載  |  5 積分
  9. 5涂鴉各WiFi模塊原理圖加PCB封裝
  10. 11.75 MB   |  76次下載  |  1 積分
  11. 6錦銳科技CA51F2 SDK開發包
  12. 24.06 MB   |  29次下載  |  1 積分
  13. 7AO4803A雙P通道增強型場效應晶體管的數據手冊
  14. 0.11 MB   |  28次下載  |  2 積分
  15. 8長虹液晶彩電LS29機芯的技術資料說明
  16. 3.42 MB   |  16次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191388次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 久久亚洲国产午夜精品理论片 | 日本免费精品视频 | 色中文字幕在线 | 国内精品视频 | 深夜偷偷看视频在线观看 | 国模吧2021新入口 | 你懂得在线网站 | 日本巨黄视频 | 国产成人夜间影院在线观看 | 一级待一黄aaa大片在线还看 | 午夜久久免影院欧洲 | 日日做日日摸夜夜爽 | 午夜在线视频国产 | 亚洲综合一区二区 | 国产网站在线免费观看 | 午夜免费啪在线观看视频网站 | 69pao强力打造免费高清 | 亚洲高清一区二区三区四区 | 亚洲va中文字幕 | 大象焦伊人久久综合网色视 | 欧美性xx18一19 | 亚洲色图图片区 | 中文字幕一区在线播放 | 99久久综合狠狠综合久久男同 | 成人二区 | 免费三级毛片 | 四虎在线永久 | 高清一区二区三区免费 | 插插操操| 日韩美aaa特级毛片 日韩美a一级毛片 | 黄色片xxx| 欧美黄色片免费看 | 国产精品亚洲四区在线观看 | 国产一区国产二区国产三区 | 午夜艹逼| 天天躁狠狠躁狠狠躁夜夜躁 | 性欧美视频在线观看 | 色噜噜狠狠狠综合曰曰曰 | 久久夜色精品国产亚洲 | 欧美一级看片a免费观看 | 日韩午夜r电影在线观看 |