• 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

STM32 串口BOOTLOADER的相關(guān)問(wèn)題

2024/12/12
1851
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

串口Bootloader兩個(gè)問(wèn)題:

1.APP和Bootloader中對(duì)于串口的初始化以及中斷處理函數(shù)的定義是否需要保持一致,特別是有關(guān)接收和發(fā)送的緩沖區(qū)?

2.Bootloader中定義的變量和申請(qǐng)的內(nèi)存,在Bootloader運(yùn)行結(jié)束,進(jìn)入APP程序之后是否還存在,并且依舊占據(jù)著內(nèi)存空間?

最新回答

  • 通常,我們做IAP設(shè)計(jì)時(shí)使用 兩個(gè)相對(duì) 獨(dú)立的工程,分別是BOOTLOADER和APPLICATION區(qū)。
    前者重點(diǎn)是接收固件代碼、完成Flash編程。后者通常是實(shí)際的用戶功能性應(yīng)用程序代碼。

    顯然,很多外設(shè),比方UART/TIMER/GPIO以及核外設(shè)NVIC,可能在BOOT區(qū)和APP區(qū)都會(huì)用到。

    但各用各的,配置及初始化也是根據(jù)當(dāng)前工程需要具體配置,外設(shè)配置、變量定義跟在另外一個(gè)
    運(yùn)行區(qū)沒(méi)有關(guān)聯(lián)。

    具體點(diǎn)說(shuō),即使同一個(gè)UART,BOOT區(qū)可以配置8bit 115200,APP區(qū)可以配置為7位 9600。兩個(gè)代碼區(qū)的UART收發(fā)
    緩沖定義其實(shí)也是各自定義、各不相干。

    一般來(lái)講,中斷矢量表位置也是各定義各的。即不同代碼區(qū)的中斷矢量入口地址都是相互獨(dú)立的。以UART中斷服務(wù)程序?yàn)槔?br /> 即使服務(wù)程序代碼一樣,發(fā)生中斷事件時(shí),中斷服務(wù)程序的入口是不一樣 的。其中,Cortex-M0核芯片稍微特殊點(diǎn),另當(dāng)別論。

    Bootloader中的全局變量和靜態(tài)變量在跳轉(zhuǎn)到APP后不再有效,因?yàn)锳PP會(huì)重新初始化自己的全局變量和靜態(tài)變量。反之亦然。

    不過(guò),如果說(shuō)在當(dāng)前代碼區(qū)使用了動(dòng)態(tài)內(nèi)存分配(例如malloc),跳轉(zhuǎn)到另一代碼區(qū)后,這些內(nèi)存估計(jì)仍然占據(jù)著內(nèi)存

    空間,我們可以在跳轉(zhuǎn)前先行釋放這些內(nèi)存。

  • APP和Bootloader中對(duì)于串口的初始化以及中斷處理函數(shù)的定義通常需要保持一致。

    在Bootloader運(yùn)行結(jié)束后,進(jìn)入APP程序之前,通常會(huì)進(jìn)行一次內(nèi)存的重新分配。這意味著B(niǎo)ootloader中定義的變量和申請(qǐng)的內(nèi)存在APP啟動(dòng)后通常不會(huì)繼續(xù)存在,除非APP明確地保留了這些變量或內(nèi)存區(qū)域。

相關(guān)推薦

  • 在LPC55S69上實(shí)現(xiàn)的秘鑰系統(tǒng)
    方案
    1606
    2024/07/25
  • 基于單片機(jī)proteus仿真的設(shè)計(jì)作業(yè)3個(gè)實(shí)驗(yàn)串口、并口、定時(shí)器(仿真圖、源代碼)
    方案
    1052
    2024/07/25
  • 基于單片機(jī)proteus仿真的串口和計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)(仿真圖、源代碼、講解視頻)
    方案
    1518
    2024/07/25
  • 基于單片機(jī)proteus仿真的風(fēng)光互補(bǔ)充電管理系統(tǒng)設(shè)計(jì)(AD原理圖、仿真圖、源代碼、講解視頻
    方案
    2648
    2024/07/18
  • 基于stm32單片機(jī)proteus仿真資料包匯總 24個(gè)仿真例子(仿真圖、源代碼)
    方案
    2504
    2024/07/18
  • 電子產(chǎn)業(yè)圖譜