女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

編程sector0中的page0時候總是失敗問題

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

本篇文章是《LPC技術小貼士-自動添加中斷向量校驗位》的番外篇。

最近在支持客戶的時候遇到這樣一個問題:客戶在做自己的二級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有所幫助!

責任編輯:haq

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

    關注

    5031

    文章

    13720

    瀏覽量

    472123
  • 編程
    +關注

    關注

    88

    文章

    3680

    瀏覽量

    94867

原文標題:LPC工程小貼士:IAP編程page0返回失敗的問題

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    使用THS1206時候有兩個問題求解

    各位專家,大家好,我在使用THS1206時候有兩個問題,麻煩您幫我解答一下: 1、在test mode下,我把CR0的bit8和bit9設置為0、1時,即此時THS1206的輸出應
    發表于 02-13 08:36

    tlv5616輸入數據是0時候總是有481mV的電壓,為什么?

    調試一個DA芯片tlv5616,發現輸入數據是0時候總是有481mV的電壓,有沒有那位工程師幫我解答一下
    發表于 02-06 06:04

    調試ADS1256,到了讀轉換結果的時候結果總是0,為什么?

    最近一直在調試ADS1256,目前讀寫寄存器沒有問題,但是到了讀轉換結果的時候 結果總是0,我做的是單端測量,AINp選的通道3,AINn選的是AINCOM 但總是讀不出結果來,哪
    發表于 01-09 08:12

    Master讀取tca8418時候,發送寄存器地址沒有ACK是什么原因呢?

    Master讀取tca8418時候,先是發送地址0x68,可以得到ACK,然后繼續發送寄存器地址,但是就沒有ACK? 是什么原因呢?
    發表于 12-23 06:45

    用ADS1220做了一個溫度變送器,換成熱電偶方案時候需要讀取內部溫度傳感器數值,讀取的數據總是0x0FEA35,為什么?

    我用ADS1220做了一個溫度變送器,讀取RTD數據正確,但是換成熱電偶方案時候需要讀取內部溫度傳感器數值,讀取的數據總是0x0FEA35 室溫在27度左右,怎么會讀出來這么大的數據??? 希望哪位大神可以幫忙解決一下,謝謝!
    發表于 12-16 07:37

    ADS1263獲取ID總是失敗,為什么?

    器件獲取ID總是失敗,數據手冊標明的ID是1,總是得到0, 波形圖如下,應該如何做? 為何器件的回復數據會延后 CS 以及 SCLK ? 感謝~ 圖中,
    發表于 11-21 07:09

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

    配置寫入寄存器,然后copy到eeprom page0了,第二次上電不是應該自動直接從eeprom page0里面讀出數據,然后產生波形嗎? 我想知道我們這個流程是正確的嗎?
    發表于 11-11 06:39

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

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

    使用TLV320AIC3256時候,當音樂暫停時候,耳機可以聽到“滋滋”的聲音,為什么?

    使用TLV320AIC3256時候,當音樂暫停時候,耳機可以聽到“滋滋”的聲音。
    發表于 10-24 07:15

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

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

    進行aic3106的配置時,將0x80寫入page0/regster25,讀出來卻是0x86,為什么?

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

    TLV320AIC3254使用SPI進行設置時,如何設置寄存器?

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

    請問Page 0/Register 35和36是指的什么?對應下表是DSP fs項嗎?

    請問Page 0 / Register 35和36是指的什么?對應下表是DSP fs項嗎?
    發表于 10-09 10:12

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

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

    ESP8266連接到ssl服務器,但總是失敗,為什么?

    我已連接到 ssl 服務器,但總是失敗。 IP 和端口為 111.206.227.37:2001。 I want to have SSL_connect succeed even
    發表于 07-15 07:19