日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

編輯:jq

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

    關(guān)注

    8

    文章

    137

    瀏覽量

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

    關(guān)注

    2

    文章

    169

    瀏覽量

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

    關(guān)注

    30

    文章

    4977

    瀏覽量

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

    關(guān)注

    0

    文章

    696

    瀏覽量

    35296
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    調(diào)用 HostFlash_EraseByLen 或 HostFlash_Program 時,都返回失敗,為什么?

    我計劃在計算 MAC 簽名值后將 MAC 值寫入閃存。 當(dāng)我調(diào)用 HostFlash_EraseByLen 或 HostFlash_Program 時,都返回失敗,并且我還發(fā)現(xiàn) host_flash.c 中的 HostFlash_Init() 處于屏蔽狀態(tài)。
    發(fā)表于 04-28 06:08

    基于納芯微實時控制MCU NS800RT5039的IAP固件升級指南(2)

    。本篇將聚焦實操落地,以 MDK 開發(fā)環(huán)境為依托,展示如何基于 NS800RT5039, 從 0 開發(fā)一個簡單的 IAP 項目。
    的頭像 發(fā)表于 02-06 09:18 ?1w次閱讀
    基于納芯微實時控制MCU NS800RT5039的<b class='flag-5'>IAP</b>固件升級指南(2)

    在CW32F030的IAP應(yīng)用介紹

    IAP 是 In Application Programing 的首字母縮寫,在應(yīng)用編程,即在程序運行的過程中進(jìn)行編程(升級程序, 更新固件)。 IAP 是用戶自己的程序在運行過程中對
    發(fā)表于 01-22 07:20

    如何用好 C 語言函數(shù)的返回值?

    的重點,本文更關(guān)心的是,該以何值表示“成功”,何值表示“失敗”。 按照C語言語法, 0 表示假,非零(常常用 1)表示真,那是否函數(shù)也用 0 返回值表示“
    發(fā)表于 12-25 07:17

    CAN被動錯誤恢復(fù)后為什么rt_device_write還會返回異常呢?

    1、系統(tǒng)啟動,給CAN總線發(fā)送數(shù)據(jù),總線設(shè)備通訊正常 2、制造總線錯誤,當(dāng)總線設(shè)備錯誤幀達(dá)到128之后,總線進(jìn)入被動錯誤,總線數(shù)據(jù)發(fā)送失敗,rt_device_write函數(shù)返回0 3、恢復(fù)總線設(shè)備,CAN總線錯誤幀降低到
    發(fā)表于 12-22 16:29

    AS32A601型MCU芯片如何進(jìn)行IAP升級?

    一、什么是IAP? IAP(In Application Programming,在應(yīng)用編程)是一種技術(shù),旨在實現(xiàn)用戶應(yīng)用程序的動態(tài)更新,而無需使用專門的編程工具或硬件。
    的頭像 發(fā)表于 12-19 11:39 ?2207次閱讀
    AS32A601型MCU芯片如何進(jìn)行<b class='flag-5'>IAP</b>升級?

    檢查函數(shù)返回值的錯誤和異常處理方法

    檢查函數(shù)返回值:這是最常見也最基本的錯誤處理和異常處理方法,就是在調(diào)用一個函數(shù)后,檢查其返回值是否符合預(yù)期或是否表示出錯或失敗。如果出錯或失敗,則根據(jù)
    發(fā)表于 12-11 06:48

    如何在CW32F030上實現(xiàn)IAP功能實現(xiàn)遠(yuǎn)程升級?

    IAP 是 In Application Programing 的首字母縮寫,在應(yīng)用編程,即在程序運行的過程中進(jìn)行編程(升級程序,更新固件)。IAP 是用戶自己的程序在運行過程中對 F
    發(fā)表于 12-11 06:15

    ?LMK61E0M可編程振蕩器技術(shù)文檔總結(jié)

    LMK61E0 系列超低抖動 PLLatinum^TM的^可編程振蕩器使用帶有集成VCO的小數(shù)N頻率合成器來生成常用的參考時鐘。該LMK61E0M支持3.3V LVCMOS輸出。該器件具有從片內(nèi)
    的頭像 發(fā)表于 09-13 09:46 ?1438次閱讀
    ?LMK61E<b class='flag-5'>0</b>M可<b class='flag-5'>編程</b>振蕩器技術(shù)文檔<b class='flag-5'>總結(jié)</b>

    AT32 MCU如何使用IAP

    AT32 MCU使用IAP的方法涉及在微控制器上創(chuàng)建特定固件,以實現(xiàn)在應(yīng)用編程(In-Application Programming,簡稱IAP)功能,主要通過USART通信接口進(jìn)行固件更新操作
    發(fā)表于 08-08 17:13

    AT32 IAP using the USART

    對于AT32 MCU,除了出廠固化的bootloader,用戶也可以在應(yīng)用程序中編寫自己的bootloader程序,用于最終產(chǎn)品的固件更新。此功能稱為應(yīng)用程序內(nèi)編程IAP)。 本應(yīng)用筆記的目的
    發(fā)表于 07-11 10:51

    rtt only系統(tǒng)下程序運行失敗: [FATAL ERROR] Exception 13:Load Page Fault,怎么解決?

    Executable-only Pagesatp = 0x80000000000047d2Current Page Table(Physical) = 0x00000000047d2000Current ASID
    發(fā)表于 06-20 07:30

    請問CY68013上位機(jī)發(fā)送的返回值到底代表什么意思?

    ,為0時代表發(fā)送失敗,剛開始一直沒問題,F(xiàn)PGA端接收也正常,上位機(jī)返回值也是1, 最后返回值一直是0,所以我一直認(rèn)為發(fā)送
    發(fā)表于 05-22 07:16

    FX3 RAM編程因定制板而失敗怎么解決?

    USBBulkSourceSink.img 寫入 RAM 時,控制中心顯示編程失敗。 ?我已確認(rèn)該圖像在評估板上成功。 ?我已將 PMODE[2:0] 設(shè)置為 z11。 ?我確認(rèn)時鐘是26MHz。 ?確認(rèn)電源正常。 請查看以下
    發(fā)表于 05-15 08:22

    I2C EEPROM編程失敗的原因?

    我嘗試使用 Cy Control Center 實用程序?qū)⒐碳螺d到我的 EVM 中, 第一天,我嘗試了很多次,但都失敗了,比如下面的錯誤, I2C EEPROM 編程失敗。 我搜索了英飛凌社區(qū)
    發(fā)表于 05-06 07:25
    湄潭县| 图们市| 库尔勒市| 林西县| 鹤壁市| 兴化市| 宣武区| 泰宁县| 游戏| 白山市| 姚安县| 彭山县| 乌兰察布市| 冷水江市| 周宁县| 武清区| 宁国市| 涿鹿县| 剑阁县| 密云县| 沽源县| 锦州市| 林甸县| 辽阳市| 无极县| 城步| 花莲县| 静海县| 香港| 辽阳市| 二连浩特市| 梁山县| 汝南县| 唐河县| 大连市| 喜德县| 鸡东县| 翁源县| 白水县| 杭锦后旗| 西昌市|