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

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

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

IAP編程的流程及IAP的應(yīng)用場(chǎng)所

FPGA那點(diǎn)事兒 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:Tweedle Dee ? 2021-08-11 09:27 ? 次閱讀

IAP是什么

有時(shí)項(xiàng)目上需要遠(yuǎn)程升級(jí)單片機(jī)程序,此時(shí)需要接觸到IAP編程。

IAP即為In Application Programming,解釋為在應(yīng)用中編程,用戶自己的程序在運(yùn)行過(guò)程中對(duì)User Flash的部分區(qū)域進(jìn)行燒寫。即是一種對(duì)單片機(jī)Flash擦寫的一種編程方案。

通常情況下,一片STM32單片機(jī)的Flash只有一個(gè)用戶程序,而IAP編程則是將單片機(jī)的Flash分成至少兩大區(qū)域,一部分叫做bootloader區(qū),一部分叫做app用戶代碼區(qū),還可留出一部分區(qū)域?yàn)榇a備份區(qū)。

IAP的應(yīng)用場(chǎng)所

通常情況下我們給STM32單片機(jī)燒錄更新程序時(shí)是通過(guò)SWD、J-link或者通過(guò)設(shè)置BOOT引腳后,使用串口進(jìn)行程序下載,這樣的方式直接一次性將程序文件下載到單片機(jī)的Flash中,比較適合絕大部分的應(yīng)用。

但是當(dāng)產(chǎn)品投入實(shí)際應(yīng)用時(shí),封裝完成后在后期的使用過(guò)程中遇到某些程序上的bug或者是根據(jù)客戶需求需要增加一些功能的時(shí)候,使用傳統(tǒng)代碼燒錄的方法就可能需要拆除封裝,而使用IAP編程在bootloader區(qū)提前寫入與外部通信接口用于升級(jí)單片機(jī)代碼,使得我們不用對(duì)已完成包裝的產(chǎn)品進(jìn)行拆除既可以更新代碼,這樣既節(jié)約了成本,也更加方便快捷。

IAP編程的流程

IAP編程將Flash區(qū)分成的兩個(gè)區(qū)域,bootloader區(qū)和app用戶代碼區(qū)具有截然不同的功能。

bootloader區(qū),主要實(shí)現(xiàn)接收程序文件,并將該程序?qū)懹谔囟ㄎ恢玫腇lash區(qū)域。而這里接收外部程序文件,就需要實(shí)時(shí)和外部通信了。STM32單片機(jī)與外部通信大多是通過(guò)自身的串口接收和發(fā)送數(shù)據(jù),不過(guò)STM32單片機(jī)的串口可以外接多種通訊接口。

例如422、485、GPRSESP8266等。即我們可以通過(guò)串口外接藍(lán)牙模塊、WiFi模塊或者是其他網(wǎng)絡(luò)模塊,就可以實(shí)現(xiàn)遠(yuǎn)程的文件傳送更新單片機(jī)程序了。

app用戶代碼區(qū)則是主要實(shí)現(xiàn)我們所需要的功能操作,除此之外app用戶代碼區(qū)還需要實(shí)時(shí)檢查代碼運(yùn)行情況,通過(guò)判斷更新程序的標(biāo)志位來(lái)判斷是否需要升級(jí)程序。若是需要升級(jí)程序則進(jìn)入bootloader區(qū)進(jìn)行代碼更新;若不需要?jiǎng)t繼續(xù)運(yùn)行功能函數(shù)代碼即可。

根據(jù)運(yùn)行流程,我們可以總結(jié)出簡(jiǎn)單幾條bootloader設(shè)計(jì)過(guò)程中需要注意的地方:

精簡(jiǎn)、程序盡可能精簡(jiǎn)。在單片機(jī)Flash有限的情況下,bootloader代碼占用Flash的空間越小,則APP程序代碼就可占用更多,實(shí)現(xiàn)更多功能函數(shù)。

標(biāo)志位不受復(fù)位的影響。

Bootloader中盡量不使用中斷。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3545

    瀏覽量

    93501
  • IAP
    IAP
    +關(guān)注

    關(guān)注

    2

    文章

    163

    瀏覽量

    24190
  • 單片機(jī)程序
    +關(guān)注

    關(guān)注

    1

    文章

    12

    瀏覽量

    9540

原文標(biāo)題:STM32代碼遠(yuǎn)程升級(jí)之IAP編程

文章出處:【微信號(hào):gh_94c30763133f,微信公眾號(hào):FPGA那點(diǎn)事兒】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32代碼遠(yuǎn)程升級(jí)之IAP編程

    有時(shí)項(xiàng)目上需要遠(yuǎn)程升級(jí)單片機(jī)程序,此時(shí)需要接觸到IAP編程。
    發(fā)表于 11-17 10:51 ?3220次閱讀

    Bootloader UART IAP流程是怎樣的

    IAP是什么?Bootloader功能主要有哪些?Bootloader UART IAP流程是怎樣的?
    發(fā)表于 12-13 06:57

    IAP編程下的單片機(jī)運(yùn)行流程是怎樣的

    IAP是什么?IAP有哪些應(yīng)用?IAP編程下的單片機(jī)運(yùn)行流程是怎樣的?
    發(fā)表于 12-14 06:52

    IAP是什么?IAP升級(jí)流程是怎樣的

    IAP是什么?IAP升級(jí)流程是怎樣的?IAP應(yīng)用編程有哪些實(shí)例???
    發(fā)表于 12-14 06:53

    IAP在應(yīng)用中編程及其應(yīng)用

    IAP——在應(yīng)用中編程。即用戶的應(yīng)用代碼可以在運(yùn)行過(guò)程中,自行對(duì)Flash 存儲(chǔ)系統(tǒng)進(jìn)行修改。IAP 程序是Thumb 代碼,位于地址0x7FFF FFF0。在ARM 系統(tǒng)中實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換的指令是“BX Ad
    發(fā)表于 07-19 15:01 ?14次下載

    ISP和IAP的區(qū)別詳解

    本內(nèi)容詳細(xì)解釋了ISP和IAP的區(qū)別,但兩者的操作方式,結(jié)果和應(yīng)用場(chǎng)合有什么區(qū)別
    發(fā)表于 02-02 15:14 ?1.4w次閱讀

    STM32的IAP技術(shù)入門提高

    言簡(jiǎn)意賅介紹STM32在線編程IAP的技術(shù)原理,配合官方源碼,能迅速入門,并深入了解。通過(guò)該文檔,自己也能修改IAP程序,實(shí)現(xiàn)各種功能。
    發(fā)表于 01-12 10:49 ?5次下載

    IAP編程模式介紹

    IAP編程模式介紹,好東西,喜歡的朋友可以下載來(lái)學(xué)習(xí)。
    發(fā)表于 01-18 17:04 ?21次下載

    SST單片機(jī)IAP編程示例(C語(yǔ)言)

    SST 單片機(jī)IAP 編程示例(C 語(yǔ)言),好東西,喜歡的朋友可以下載來(lái)學(xué)習(xí)。
    發(fā)表于 01-18 17:04 ?17次下載

    STM32在應(yīng)用編程IAP)使用USART

    當(dāng)發(fā)生重置時(shí),程序計(jì)數(shù)器被設(shè)置為執(zhí)行IAP驅(qū)動(dòng)程序。應(yīng)該是 檢查特定條件的緊湊代碼,例如鍵的組合是 按下。當(dāng)滿足此條件時(shí),IAP驅(qū)動(dòng)代碼要么執(zhí)行一個(gè)分支。 更新用戶應(yīng)用程序或直接(通常默認(rèn)情況下
    發(fā)表于 09-12 16:19 ?8次下載

    STM32 IAP 應(yīng)用編程幾個(gè)要點(diǎn)

    STM32 IAP應(yīng)用編程幾個(gè)要點(diǎn)
    的頭像 發(fā)表于 03-08 11:42 ?9514次閱讀

    MCU之IAP升級(jí)

    IAP升級(jí)簡(jiǎn)介IAP是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運(yùn)行過(guò)程中對(duì)User Flash的部分區(qū)域進(jìn)行燒寫,目的是在產(chǎn)品發(fā)布后可以方便地通過(guò)預(yù)留的通信口對(duì)產(chǎn)品中的固件程序進(jìn)
    發(fā)表于 10-25 13:06 ?18次下載
    MCU之<b class='flag-5'>IAP</b>升級(jí)

    AN0001 AT32 IAP 使用 USART

    前言對(duì)于AT32 MCU,除了出廠固化的bootloader,用戶也可以在應(yīng)用程序中編寫自己的bootloader程序,用于最終產(chǎn)品的固件更新。此功能稱為應(yīng)用程序內(nèi)編程IAP)。本應(yīng)用筆記的目的
    發(fā)表于 01-14 12:52 ?4次下載
    AN0001 AT32 <b class='flag-5'>IAP</b> 使用 USART

    Megawin 8051 MCU的IAP(應(yīng)用程序編程)示例代碼

    Megawin 8051 MCU的IAP(應(yīng)用程序編程)示例代碼分享
    發(fā)表于 07-01 10:36 ?3次下載
    Megawin 8051 MCU的<b class='flag-5'>IAP</b>(應(yīng)用程序<b class='flag-5'>編程</b>)示例代碼

    常用的幾種IAP升級(jí)技術(shù)方案是哪些

    關(guān)于 IAP 技術(shù),做過(guò) bootloader 的想必很熟悉(IAP全稱 In Application Programming,即應(yīng)用編程),和 ISP(全稱 In System
    的頭像 發(fā)表于 02-15 15:42 ?1418次閱讀
    常用的幾種<b class='flag-5'>IAP</b>升級(jí)技術(shù)方案是哪些