一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(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í)候總是失?。ǚ祷?x21錯(cuò)誤碼),但是編程任何其他page的時(shí)候,都沒有問題(客戶的代碼在最后一個(gè)sector里,不編程)。

問題乍一看比較詭異,因?yàn)橹挥衟age0會(huì)出問題,對其他page的操作都是沒有問題的,并且擦除page/sector也沒有問題,只有編程操作會(huì)出錯(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)部都會(huì)檢查這個(gè)校驗(yàn)和,一旦校驗(yàn)和錯(cuò)誤(比如全0) 就會(huì)返回失敗。

解決方法也很簡單,就是在每次編程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

    文章

    137

    瀏覽量

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

    關(guān)注

    2

    文章

    164

    瀏覽量

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

    關(guān)注

    30

    文章

    4880

    瀏覽量

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

    關(guān)注

    0

    文章

    674

    瀏覽量

    33602
收藏 人收藏

    評論

    相關(guān)推薦

    使用STM32L476RCT6 HAL_FLASHEx_Erase()函數(shù),擦除失敗的原因?

    HAL_FLASHEx_Erase(),返回 0 = 擦除成功,但是擦除后返回去讀,卻發(fā)現(xiàn)并沒有真正的被擦掉,不是0xFF。 下面是我的代碼,各位大俠指點(diǎn)一下,非常感謝! voi
    發(fā)表于 03-10 06:14

    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

    PCM1863作從機(jī),采樣率需要配置的嗎?

    1.增益配置,Page0/ Register1PGA_VAL_CH1 是不是全局增益,是模擬增益 + 數(shù)字增益? 2.理論上,模擬增益 +32dB 與 數(shù)字增益 +12dB 的和有44dB,麥克風(fēng)輸入,不需要外置運(yùn)放放大了? 3.PCM1863作從機(jī),采樣率需要配置的嗎?比如96K采樣。
    發(fā)表于 11-05 06:36

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

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

    使用TLV320AIC3106進(jìn)行音頻采集時(shí)出現(xiàn)直流偏移怎么解決?

    我使用TLV320AIC3106進(jìn)行音頻采集時(shí)出現(xiàn)直流偏移現(xiàn)象,因此我打算設(shè)置高通濾波器來去掉直流偏移。 我設(shè)置了 page0/register12 為0xA0,得到一個(gè)高通濾波。但是,我發(fā)現(xiàn)這個(gè)
    發(fā)表于 10-24 07:52

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

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

    TLV320AIC3106配置執(zhí)行完之后,讀寄存器94值為0XC0,結(jié)果與理論不一致是哪里出了問題?

    。 第一個(gè)圖是配置,第二個(gè)圖是數(shù)據(jù)路徑的選擇,第三個(gè)圖是page0的94寄存器; 問題是: 當(dāng)配置執(zhí)行完之后,讀寄存器94值為0XC0,理論結(jié)果應(yīng)該是0XD8,這個(gè)結(jié)果與理論結(jié)果不一致,可能是什么原因,各位給分析分析,謝謝 方
    發(fā)表于 10-21 07:38

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

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

    請問TLV320ADC3101 MCLK時(shí)鐘精度有什么要求?

    導(dǎo)致TLV320ADC3101輸出I2S數(shù)據(jù)時(shí)產(chǎn)生噪聲?TLV320ADC3101輸入端未選通任何輸入通道(PAGE0/REG52=0xFF,PAGE0/REG55=0xFF),輸出I
    發(fā)表于 10-12 08:16

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

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

    請問Page 0/Register 35和36是指的什么?對應(yīng)下表是DSP fs項(xiàng)嗎?

    請問Page 0 / Register 35和36是指的什么?對應(yīng)下表是DSP fs項(xiàng)嗎?
    發(fā)表于 10-09 10:12

    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