精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

IAP編程page0返回失敗的問題總結

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2021-10-20 10:59 ? 次閱讀

最近在支持客戶的時候遇到這樣一個問題:客戶在做自己的二級boot loader,并且在使用LPC54608 IAP功能,編程sector0中的page0時候總是失敗(返回0x21錯誤碼),但是編程任何其他page的時候,都沒有問題(客戶的代碼在最后一個sector里,不編程)。

問題乍一看比較詭異,因為只有page0會出問題,對其他page的操作都是沒有問題的,并且擦除page/sector也沒有問題,只有編程操作會出錯。

經過了一段短暫的討論,最后把問題鎖定在了LPC中斷向量表的check sum校驗機制上:LPC(除比較新的LPC5500系列外)基本都需要在中斷向量表的第8個位置上填入前7個中斷向量的校驗和,關于校驗和的具體內容可以參考開篇提到的文章。

Keil編譯出來的.bin文件中,默認并沒有自動添加這個校驗和,所以每當調用IAP變成page0的時候,IAP程序內部都會檢查這個校驗和,一旦校驗和錯誤(比如全0) 就會返回失敗。

解決方法也很簡單,就是在每次編程page0的時候都計算下校驗和即可,這里直接給出計算校驗和的代碼:

213df384-30e7-11ec-82a8-dac502259ad0.png

adr為編程地址,當adr為0時既編程page0區域,紅框內的代碼就是計算校驗和,并且把校驗和填到中斷向量表的第8個位置上。

加上這段計算校驗和代碼后,問題迎刃而解。這個問題普遍存在于除LPC5500系列外幾乎所有老的LPC型號上,希望本文章對大家開發LPC MCU有所幫助!

編輯:jq

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

    關注

    8

    文章

    136

    瀏覽量

    77490
  • IAP
    IAP
    +關注

    關注

    2

    文章

    163

    瀏覽量

    24136
  • 代碼
    +關注

    關注

    30

    文章

    4668

    瀏覽量

    67756
  • 編譯
    +關注

    關注

    0

    文章

    646

    瀏覽量

    32664
收藏 人收藏

    評論

    相關推薦

    ESP8266配網失敗如何返回消息給APP?

    連接將消息發送給APP,但是事實發現,如果8266沒有連上AP,則根本收不到UDP廣播消息,這就是一個死循環 總結下我的問題,8266可以把配網失敗的原因返回給APP嗎?
    發表于 07-11 07:53

    USB讀寫時,調用WriteFile或者ReadFile時總是返回失敗,為什么?

    USB讀寫時,能通過CreateFile獲取句柄,調用WriteFile或者ReadFile時總是返回失敗,錯誤碼是997,下面是寫入HID的代碼 if(m_hUsb
    發表于 05-14 06:25

    做usb dfu進行iap升級,固件下載完成后,校驗不過,very失敗的原因?

    最近在做usb dfu進行iap升級,固件下載完成后,校驗不過,very失敗,有人遇到過嗎??? 比如在0x08020240位置,提示: File byte is 0x5c Re
    發表于 04-24 07:35

    IAP跳轉APP開始可以,如果從APP跳回IAP后再跳到APP失敗的原因?

    IAP 跳轉APP 開始可以,但如果從APP跳回IAP后,再跳到APP失敗。 我是按照 下面ST官方文檔來的: AN4657 Application note STM32
    發表于 04-23 07:24

    stm32g473 flash擦除失敗的原因?

    在跑ucosii的時候進行OTA升級擦除失敗,關掉系統調度可以擦除成功。單獨建立一個裸機工程,跑page擦除程序,Jlink單步調試概率性出現擦除失敗,上電一直跑可以擦除成功。這是芯片的限制么,還是
    發表于 03-26 08:11

    STM32F0 IAP跳轉到APP后無法進入中斷怎么解決?

    1、IAP跳轉到APP 后,Tim中斷初始化失敗。 2、去掉Tim中斷初始化,僅初始化I2C,也無法進入I2C中斷 void InterruptRemap(void){uint8_ti
    發表于 03-14 07:54

    關于stm32F4 IAP跳轉的疑問求解

    我在做一個IAP, 發現在跳轉的時候棧頂指針的值會隨著程序的Ram的使用量變化而變化, 多的時候0x20020000多,少的時候0x20010000多.這樣就導致完全沒法判斷了呀, 萬一程序一升級
    發表于 03-14 06:46

    GD32 MCU ISP失敗的原因

    玩過GD32的小伙伴們都知道,GD32 MCU支持ISP,即在系統編程,前面的常見問題也給大家講過什么是ISP,什么是IAP?那有沒有小伙伴遇到過ISP失敗的情況,失敗的原因是什么呢?
    的頭像 發表于 02-28 09:23 ?1189次閱讀
    GD32 MCU ISP<b class='flag-5'>失敗</b>的原因

    單片機編程實例總結

    單片機編程實例總結
    的頭像 發表于 01-16 09:17 ?835次閱讀

    如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

    如何使用AT32F407以太網通信接口實現在應用中編程(IAP)
    的頭像 發表于 11-07 17:20 ?1327次閱讀
    如何使用AT32F407以太網通信接口實現在應用中<b class='flag-5'>編程</b>(<b class='flag-5'>IAP</b>)

    C語言函數返回1和返回0究竟哪個好?

    C語言函數返回1和返回0究竟哪個好? 在C語言中,很多函數需要返回一個值來表示函數是否成功執行。而在很多情況下,通常會選擇讓函數返回1或
    的頭像 發表于 10-31 14:43 ?792次閱讀

    51單片機有哪些型號可以使用IAP編程模式?

    51單片機中的P89V51RD2可以使用IAP編程模式其它的還有那些?
    發表于 10-27 06:55

    OTP零位磁編碼零位編程案例分享

    以一個8頁的OTPSD3012為例,頁數從page0~page7,每頁32字節,其中page0是系統配置,包括工作模式,Z脈沖寬度,UVW級數等系統配置,Page1~3廠家使用不對用戶
    的頭像 發表于 10-25 15:52 ?445次閱讀
    OTP零位磁編碼零位<b class='flag-5'>編程</b>案例分享

    STM32F107通過以太網實現在應用中編程(IAP)

    電子發燒友網站提供《STM32F107通過以太網實現在應用中編程(IAP).pdf》資料免費下載
    發表于 09-21 11:52 ?4次下載
    STM32F107通過以太網實現在應用中<b class='flag-5'>編程</b>(<b class='flag-5'>IAP</b>)

    STM32F2x7通過以太網實現在應用中編程(IAP)

    電子發燒友網站提供《STM32F2x7通過以太網實現在應用中編程(IAP).pdf》資料免費下載
    發表于 09-21 11:49 ?0次下載
    STM32F2x7通過以太網實現在應用中<b class='flag-5'>編程</b>(<b class='flag-5'>IAP</b>)