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

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

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

3天內不再提示

OTA升級的詳細流程

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-07-04 09:08 ? 次閱讀

OTA升級已經不是什么新鮮事,現在大多數物聯網終端設備,基本具備這個功能。

今天以AT32為例給大家分享一下OTA升級的詳細流程。

概述

空中下載技術OTA(Over-the-Air Technology)是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是為了在產品發布后可以方便地通過預留的通信口,對產品中的固件程序進行更新升級。通常實現OTA功能時,即用戶程序運行中作自身的更新操作,需要在設計固件程序時編寫兩個項目代碼,第一個項目程序為Bootloader區域,第二個項目程序App代碼為真正的功能代碼,執行應用和升級。這兩部分項目代碼同時燒錄在User Flash中。

圖1. OTA代碼執行流程

d09abea6-fb31-11ec-ba43-dac502259ad0.jpg

在上圖所示流程中,MCU復位后,從0x08000004地址取出復位中斷向量的地址,并跳轉到復位中斷服務程序,在運行完復位中斷服務程序之后跳轉到Bootloader的main函數,如圖標號①所示;在執行完Bootloader以后(App代碼為圖中FLASH灰底部分App程序的復位中斷向量起始地址為0x08000004+N+M),跳轉至App程序的復位向量表,取出App程序的復位中斷向量的地址,并跳轉執行App程序的復位中斷服務程序,隨后跳轉至App程序的main函數,如圖標號②和③所示,同樣main函數為一個死循環,并且注意到此時AT32的FLASH,在不同位置上,共有兩個中斷向量表。在main函數執行過程中,如果CPU得到一個中斷請求,PC指針仍強制跳轉到地址0x08000004中斷向量表處,而不是App程序的中斷向量表,如圖標號④所示;程序再根據我們設置的中斷向量表偏移量,跳轉到對應中斷源新的中斷服務程序中,如圖標號⑤所示;在執行完中斷服務程序后,程序返回main函數繼續運行,如圖標號⑥所示。通過以上兩個過程的分析,我們知道OTA程序必須滿足兩個要求:

1) App程序必須在Bootloader程序之后的某個偏移量為x的地址開始。

2) 必須將App程序的中斷向量表相應的移動,移動的偏移量為x。

AT32 USART OTA 快速使用方法

硬件資源

文檔中是用AT-START-AT32F403A實驗板的硬件條件為例,OTA demo源代碼還包括AT32其他型號,用戶只需編譯對應型號工程燒錄于AT-START實驗板運行即可。

1) 指示燈LED2/LED3/LED42) USART1(PA9/PA10)

3) AT-START實驗板

軟件資源

1) tool_release

● IAP_Programmer.exe,PC機tool,用于演示OTA升級流程

2) source_code

● Bootloader,Bootloader源程序,運行LED2閃爍● App_led3_toggle,App1源程序,運行LED3閃爍

● App_led4_toggle,App2源程序,運行LED4閃爍

注:工程基于keil v5建立,若用戶需要在其他編譯環境上使用,請參考對應BSP目錄AT32F403A_407_Firmware_Library_V2.x.xprojectat_start_f403a emplates中各種編譯環境(例如IAR6/7/8,keil 4/5,eclipse_gcc)進行對應修改即可。

OTA Demo 使用

本文檔描述了兩種常用的OTA應用demo,template app和dual app,后面章節會分別介紹。

1) 打開Bootloader工程源程序,選擇對應MCU型號的target編譯后下載到實驗板2) 打開IAP_Programmer.exe3) 選擇正確的串口、APP下載地址和bin文檔,點擊Download下載,如下圖

4) 觀察LED2/3/4閃爍,LED2閃爍-Bootloader工作,LED3閃爍-App1工作,LED4閃爍-App2工作

圖2. IAP demo上位機

d0ac937e-fb31-11ec-ba43-dac502259ad0.jpg

Template app OTA程序設置

地址分布

圖3. Flash地址分配

d0bfc05c-fb31-11ec-ba43-dac502259ad0.jpg

注:Bootloader區域最后一個扇區,用于存放防止升級過程出錯(掉電等異常情況)的flag,用戶編譯修改Bootloader時,要保證不覆蓋flag的地址。

執行流程

OTA分為Bootloader、App和Template三部分,應用在App中執行,Template僅作為新App固件數據的臨時存放空間。程序執行整體流程框圖如下:

圖4. 程序執行流程

d0cf6e8a-fb31-11ec-ba43-dac502259ad0.jpg

Bootloader project 設置

1) Keil設置

圖5. Bootloader project中address 1在Keil設置

d0de189a-fb31-11ec-ba43-dac502259ad0.jpg

2) Bootloader源程序修改ota.h文件中

圖6. Bootloader project中address 2在程序中設置

d0f1cba6-fb31-11ec-ba43-dac502259ad0.jpg

App project 設置

OTA demo提供了2個App程序供測試用,皆以address 2(0x800 4000)為起始地址。App1 LED3閃爍,App2 LED4閃爍。以App1為例,設計步驟如下:

1) Keil工程設置

圖7. App project中address 2在Keil設置

d104da48-fb31-11ec-ba43-dac502259ad0.jpg

2) App1源程序設置

圖8. App project向量表偏移在程序中設置

d11d23dc-fb31-11ec-ba43-dac502259ad0.jpg

3) 編譯生成bin文件

通過User選項卡,設置編譯后調用fromelf.exe,根據.axf文件生成.bin文件,用于OTA更新。通過以上3個步驟,我們就可以得到一個.bin的APP程序,通過Bootloader程序即可實現更新。

4) 開啟debug app code功能

如果在設計App code過程中需要對App project進行單獨調試,請按照以下操作。

● 先下載Bootloader工程● 再調試App工程

Dual app OTA與程序設置

地址分布

圖9. Flash地址分配

d12c9704-fb31-11ec-ba43-dac502259ad0.jpg

注:Bootloader區域最后2個扇區,用于存放App是否正常的flag,用戶編譯修改Bootloader時,要保證不覆蓋flag的地址。

執行流程

OTA分為Bootloader、App1和App2三部分,應用在App1或App2中執行。程序執行整體流程框圖如下:

圖10. 程序執行流程

d143aaa2-fb31-11ec-ba43-dac502259ad0.jpg

Bootloader project設置

3) Keil設置圖11. Bootloader project中address 1在Keil設置

d15be900-fb31-11ec-ba43-dac502259ad0.jpg

4) Bootloader源程序修改ota.h文件中

圖12. Bootloader project中address 2在程序中設置

d174ff30-fb31-11ec-ba43-dac502259ad0.jpg

App project設置

OTA demo提供了2個App程序供測試用,app_led3_toggle以0x800 4000為起始地址,app_led4_toggle以0x8080000為起始地址。App1 LED3閃爍,App2 LED4閃爍。以App1為例,設計步驟如下:

5) Keil工程設置圖13. App project中address 2在Keil設置

d18c4f14-fb31-11ec-ba43-dac502259ad0.jpg

6) App1源程序設置

圖14. App project向量表偏移在程序中設置

d19d9d78-fb31-11ec-ba43-dac502259ad0.jpg

7) 編譯生成bin文件通過User選項卡,設置編譯后調用fromelf.exe,根據.axf文件生成.bin文件,用于OTA更新。通過以上3個步驟,我們就可以得到一個.bin的APP程序,通過Bootloader程序即可實現更新。8) 開啟debug App code功能如果在設計App code過程中需要對App project進行單獨調試,請按照以下操作。● 先下載Bootloader工程● 再調試App工程

Bootloader/App與上位機串口通信協議

程序與上位機通信,接收固件升級數據,上位機端和嵌入式端通信協議如下:1) 上位機通信協議圖15. 上位機通信協議

d1b46ed6-fb31-11ec-ba43-dac502259ad0.png

2) 嵌入式端下位機通信協議

圖16. 下位機通信協議

d1c95d82-fb31-11ec-ba43-dac502259ad0.png

注:ACK:0xCCDDNACK:0xEEFFData:0x31+Addr+數據+chenksum(1byte)Addr:4bytes,高位在前Kbytes,下載數據,不足2K內容填充0xFFChecksum:1byte,4bytes的Addr+2KBytes數據的校驗和的低八位

原文標題:MCU通過UART實現OTA在線升級流程

文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OTA
    OTA
    +關注

    關注

    7

    文章

    582

    瀏覽量

    35263
  • 代碼
    +關注

    關注

    30

    文章

    4793

    瀏覽量

    68700
  • 終端設備
    +關注

    關注

    1

    文章

    170

    瀏覽量

    15257

原文標題:MCU通過UART實現OTA在線升級流程

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OTA固件升級教程

    設備端。支持一個產品同時有多個推送支持wifi/mcu升級支持定向升級。可指定設備mac地址、區域、舊固件版本進行推送。支持定時推送。可自定義推送周期及推送時段。OTA進度統計分析OTA
    發表于 03-01 18:31

    STM32自定義USB設備開發詳細流程講解

    STM32自定義USB設備開發詳細流程講解及全套資料源碼下載
    發表于 08-03 09:50

    如何進行OTA操作升級

    藍牙固件空中升級OTA)涉及到藍牙無線通信、固件外存分布、固件內存分布(定制鏈接腳本)、固件二次引導等技術,需要開發人員深入理解藍牙單芯片的存儲架構、啟動引導流程、外存設備驅動和產品電路設計等領域知識。完整和完美地設計和實現
    發表于 09-16 10:36

    設備OTA空中升級原理是什么

    1.背景沒有完美的軟件,因為設計缺陷、業務需求更新,軟件始終都在不斷升級完善。新軟件如何替換正在運行的舊軟件就是本文關注的重點,尤其是針對電子產品,設備空中升級OTA,受限于硬件資源,需要選擇
    發表于 01-19 07:44

    STM32F103C8的OTA升級流程是怎樣的

    OTA升級流程本文檔以 STM32F103C8 為例。此 MCU 的 flash 共 64k,分為 64 頁,每頁 1k ,flash 的擦除需要以頁為單位進行。OTA 實現的思路是,
    發表于 01-24 08:13

    OTA升級方法

    ,再決定升級方式,是單備份升級還是雙備份升級。本文主要講解嵌入式設備的OTA升級流程架構,雖然會
    發表于 01-25 08:12

    多晶硅制備詳細流程及圖解

    多晶硅制備詳細流程
    發表于 01-10 16:18 ?66次下載
    多晶硅制備<b class='flag-5'>詳細流程</b>及圖解

    特斯拉的OTA升級步驟詳解

    本文主要詳細闡述了特斯拉的OTA升級過程。
    的頭像 發表于 09-24 09:07 ?2.4w次閱讀

    PE工具安裝的詳細流程詳細說明

    PE工具安裝的詳細流程詳細說明
    發表于 12-10 08:00 ?29次下載

    【筆記】MCU OTA升級流程

    OTA升級流程本文檔以 STM32F103C8 為例。此 MCU 的 flash 共 64k,分為 64 頁,每頁 1k ,flash 的擦除需要以頁為單位進行。OTA 實現的思路是,
    發表于 11-29 18:21 ?33次下載
    【筆記】MCU <b class='flag-5'>OTA</b><b class='flag-5'>升級</b><b class='flag-5'>流程</b>

    以AT32為例詳解OTA升級詳細流程

    OTA分為Bootloader、App和Template三部分,應用在App中執行,Template僅作為新App固件數據的臨時存放空間。
    發表于 09-30 11:53 ?2081次閱讀

    在線升級 | 物聯網中的OTA升級原理

    從最新的固件方式來看,可以分成以下幾類 0 1 OTA升級 1.1? 概念 OTA:Over-the-Air Technology,即空中下載技術。 OTA
    的頭像 發表于 02-03 02:40 ?1386次閱讀

    OTA是什么?OTA升級有何用?

    ota是什么?ota升級是什么意思?很多用智能手機的人應該都會知道 ota是什么 ,而對于一些剛入門的機友們,ROOT、刷機、越獄都比較熟悉,但OT
    的頭像 發表于 03-15 14:36 ?8129次閱讀

    在線升級 | 物聯網中的OTA升級原理

    從最新的固件方式來看,可以分成以下幾類01OTA升級1.1概念OTA:Over-the-AirTechnology,即空中下載技術。OTA升級
    的頭像 發表于 02-02 09:59 ?1542次閱讀
    在線<b class='flag-5'>升級</b> | 物聯網中的<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>原理

    BOSHIDA DC電源模塊檢測穩定性能詳細流程

    BOSHIDA DC電源模塊檢測穩定性能詳細流程 DC電源模塊是電力電子產品中非常常見和重要的設備。它們被廣泛應用于各種公共場所和工業領域,如通信系統、計算機、工業自動化以及醫療設備等。為確保電源
    的頭像 發表于 06-30 11:08 ?626次閱讀
    BOSHIDA DC電源模塊檢測穩定性能<b class='flag-5'>詳細流程</b>
    主站蜘蛛池模板: 在线观看日本免费视频大片一区| 欧美乱妇15p| 香蕉久久影院| 在线黄色大片| www.夜夜操.com| 日本色视| 亚洲国产片| 天天躁日日躁狠狠躁一级毛片 | 天堂资源最新版在线www| 天天做天天爱天天大综合| 天天操夜夜草| 91色视| 免费大片黄日本在线观看| 亚洲无线视频| 五月婷婷开心综合| 人人干97| 国产一级特黄一级毛片| 91久久婷婷国产综合精品青草 | 日本黄色视| 黄色一级一毛片| 在线色片| 99r8这里精品热视频免费看| 一级毛片免费不卡直观看| 日韩在线影院| 天天操天天操天天操香蕉| 黄色成人一级片| 色爽爽爽| 视频在线h| 2019天天操| a级男女性高爱潮高清试| 久操免费在线| 女女同免费播放毛片| 伊人色强在线网| 不卡视频免费在线观看| 四虎sihu新版影院亚洲精品| 久青草视频免费视频播放线路1| 俺去啦最新官网| ts在线视频| 99视频全部免费| 国内精品久久久久影院免费| 久久久精品免费观看|