RTOS实战(Day14) Zephyr OS安全OTA升级
🔒 双Bank验证流程: [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][backcolor=var(--ds-segmented-color,rgba(var(--ds-rgb-segmented)))][backcolor=var(--ds-segmented-selected-color,rgb(var(--ds-rgb-segmented-button)))]图表
代码
[color=var(--dsr-icon-fg-1)][color=var(--dsr-icon-fg-1)]
[color=var(--dsr-icon-fg-1)]
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
服务器设备服务器设备请求固件签名返回ECDSA签名验证签名(SHA-3)烧写到Bank1重启后校验CRC32
📦 关键API: [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
int dfu_write(const void *buf, size_t len) { flash_write(BANK1_ADDR + offset, buf, len); if(sha3_verify(buf, len, expected_hash)) { boot_set_confirmed(); // 确认升级有效 }}
|