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

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

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

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

IAP編程page0返回失敗的問題總結(jié)

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

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

問題乍一看比較詭異,因?yàn)橹挥衟age0會出問題,對其他page的操作都是沒有問題的,并且擦除page/sector也沒有問題,只有編程操作會出錯(cuò)。

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

Keil編譯出來的.bin文件中,默認(rèn)并沒有自動(dòng)添加這個(gè)校驗(yàn)和,所以每當(dāng)調(diào)用IAP變成page0的時(shí)候,IAP程序內(nèi)部都會檢查這個(gè)校驗(yàn)和,一旦校驗(yàn)和錯(cuò)誤(比如全0) 就會返回失敗。

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

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

adr為編程地址,當(dāng)adr為0時(shí)既編程page0區(qū)域,紅框內(nèi)的代碼就是計(jì)算校驗(yàn)和,并且把校驗(yàn)和填到中斷向量表的第8個(gè)位置上。

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

編輯:jq

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

    關(guān)注

    8

    文章

    136

    瀏覽量

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

    關(guān)注

    2

    文章

    164

    瀏覽量

    24402
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4835

    瀏覽量

    69117
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    662

    瀏覽量

    33066
收藏 人收藏

    評論

    相關(guān)推薦

    STM32G0B1VC IAP時(shí)flash擦除函數(shù)進(jìn)不去是怎么回事?

    您好,我在使用STM32G0B1VC做IAP功能時(shí)遇到一個(gè)很奇怪的現(xiàn)象,我為Bootloader分配了0x08000000~0x0800FFFF共64KB的大小,為出廠程序分配
    發(fā)表于 11-15 08:06

    cdci6214 eepromsel和refsel都置為MID的時(shí)候能否正常工作?

    配置寫入寄存器,然后copy到eeprom page0了,第二次上電不是應(yīng)該自動(dòng)直接從eeprom page0里面讀出數(shù)據(jù),然后產(chǎn)生波形嗎? 我想知道我們這個(gè)流程是正確的嗎?
    發(fā)表于 11-11 06:39

    TLV320ADC3101可以正確設(shè)置和讀寫PAGE0頁的數(shù)據(jù),但是讀取PAGE4頁上的寄存器值都為0,為什么?

    如題,通過csl庫提供的程序,可以正確設(shè)置和讀寫PAGE0頁的數(shù)據(jù),但是讀取PAGE4頁上的寄存器值都為0,很奇怪,數(shù)據(jù)手冊好像也沒有說讀取PAGE4與讀取其他頁面上的寄存器有什么不
    發(fā)表于 10-30 08:02

    TLV320ADC3101某個(gè)通道無輸出,是什么原因?qū)е拢?/a>

    ,讀取3101內(nèi)部寄存器配置值進(jìn)行校驗(yàn),發(fā)現(xiàn)page0的只讀寄存器42會某些位被置為1 問題 1、是什么原因?qū)е律鲜鰡栴} 2、page0寄存器42什么情況下會被置為1,如果該寄存器被置為1后該如何處理。
    發(fā)表于 10-23 07:38

    進(jìn)行aic3106的配置時(shí),將0x80寫入page0/regster25,讀出來卻是0x86,為什么?

    我在進(jìn)行aic3106的配置時(shí),將0x80寫入page0/regster25,讀出來卻是0x86,該寄存器的低4位為保留值,請問是否會影響我mic輸入的聲音?
    發(fā)表于 10-15 06:49

    TLV320AIC3254使用SPI進(jìn)行設(shè)置時(shí),如何設(shè)置寄存器?

    3254寄存器有兩頁,PAGE0PAGE1,地址為0x00和0x01,問:使用SPI該如何設(shè)置寄存器?
    發(fā)表于 10-12 07:19

    TLV320AIC3104-Q1如何設(shè)置dac的低通濾波器把高頻分量去掉?

    寫入page1 de-emphasis N0、N1、D1,再寫page0 對codec進(jìn)行配置好后寫寄存器12把de-emphasis enable,但是還是無法去掉高頻分量,嘗試過先寫pag
    發(fā)表于 09-29 06:53

    ESP8266配網(wǎng)失敗如何返回消息給APP?

    連接將消息發(fā)送給APP,但是事實(shí)發(fā)現(xiàn),如果8266沒有連上AP,則根本收不到UDP廣播消息,這就是一個(gè)死循環(huán) 總結(jié)下我的問題,8266可以把配網(wǎng)失敗的原因返回給APP嗎?
    發(fā)表于 07-11 07:53

    USB讀寫時(shí),調(diào)用WriteFile或者ReadFile時(shí)總是返回失敗,為什么?

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

    做usb dfu進(jìn)行iap升級,固件下載完成后,校驗(yàn)不過,very失敗的原因?

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

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

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

    stm32g473 flash擦除失敗的原因?

    在跑ucosii的時(shí)候進(jìn)行OTA升級擦除失敗,關(guān)掉系統(tǒng)調(diào)度可以擦除成功。單獨(dú)建立一個(gè)裸機(jī)工程,跑page擦除程序,Jlink單步調(diào)試概率性出現(xiàn)擦除失敗,上電一直跑可以擦除成功。這是芯片的限制么,還是
    發(fā)表于 03-26 08:11

    STM32F0 IAP跳轉(zhuǎn)到APP后無法進(jìn)入中斷怎么解決?

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

    關(guān)于stm32F4 IAP跳轉(zhuǎn)的疑問求解

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

    GD32 MCU ISP失敗的原因

    玩過GD32的小伙伴們都知道,GD32 MCU支持ISP,即在系統(tǒng)編程,前面的常見問題也給大家講過什么是ISP,什么是IAP?那有沒有小伙伴遇到過ISP失敗的情況,失敗的原因是什么呢?
    的頭像 發(fā)表于 02-28 09:23 ?1590次閱讀
    GD32 MCU ISP<b class='flag-5'>失敗</b>的原因
    主站蜘蛛池模板: 午夜黄色小视频 | 狠狠色丁香婷婷综合久久来 | 欧美一欧美一区二三区性 | 伊在线视频 | 美女视频黄a全部 | 国产黄色在线视频 | 男人边吃奶边爱边做视频日韩 | 久久国产免费观看 | 成人免费看黄网站无遮挡 | 99久久国产免费中文无字幕 | 国产精品7m凸凹视频分类大全 | 天堂8中文在线最新版在线 天堂8资源8在线 | 1314酒色网| 女人的天堂网站 | 亚洲欧洲无码一区二区三区 | 日本色图在线 | 日韩高清在线日韩大片观看网址 | 伊人毛片 | 国产一级在线观看www色 | 欧美性猛交xxxx免费看久久 | 美欧毛片| 国模谢心2013.05.06私拍 | bt在线天堂 | 国产精品久久久久影院色老大 | 国产精品单位女同事在线 | 日欧毛片| 人人干人人玩 | 亚洲国产网 | 一本到卡二卡三卡免费高 | 成人最新午夜免费视频 | 欧美一区二区三区精品 | 亚洲精品综合网在线8050影院 | 久久黄色一级片 | 国产一级久久免费特黄 | 啪啪影城| 午夜老司机福利 | 日本不卡免费新一区二区三区 | 在线视频 亚洲 | 成人性色生活片免费看爆迷你毛片 | 久久www免费人成_看 | 久久不射影院 |