資料介紹
本文雖然是針對NXP(恩智浦公司)的LPC2000系列,但使用IAP技術對內部閃存進行編程卻適用于幾乎所有的NXP ARM MCU系列,包括Cortex-M0 LPC1100以及Cortex-M3 LPC1300/1700等系列。
在大多數的LPC2000器件內部,存在著一個被稱為“主啟動加載程序(Primary Boot Loader)”的固件,它在每次上電或復位時被首先運行。本文所講的“次級啟動加載程序”實際上是一段用戶自己寫的代碼(燒寫在用戶閃存區),在執行完主啟動加載程序后被執行,提供給用戶一個選擇,是繼續執行當前的應用程序還是對當前應用程序進行更新。
在應用編程(In Application Programming, IAP)是指在用戶應用程序運行時,對內部閃存執行擦除或編程操作,它是對用戶代碼進行升級的一個關鍵技術。
LPC2000 IAP介紹
扇區(Sector)
IAP操作都是基于“扇區(Sector)”的,這就意味著即使僅僅需要更新一個字節的代碼,也要將該字節所在的整個扇區擦除。因此,用戶應該將待更新的代碼和其它代碼放在不同的扇區,以免誤擦除。
IAP的應用領域
使用IAP技術,可以對用戶代碼進行升級,也可以把內部閃存當成類似EEPROM來存儲數據。
當用戶應用程序運行時,用戶可以對程序的一部分進行更新,就像在線升級病毒庫一樣,而不必將硬件電路斷電甚至將芯片取下來放到專門的編程器上去重新燒寫代碼。
當數據存儲器使用,可以減少PCB板面積、降低成本。由于作為數據存儲的扇區會被擦除,因此不能將這些扇區和存放用戶應用程序的扇區重疊。另外,閃存的擦除和編程次數也是有一定限制的,過于頻繁的擦除或編程會影響閃存的壽命。對于LPC2000芯片來說,至少可以穩定擦寫十萬次,數據至少可以保存20年。
如何使用IAP
關于IAP的詳細說明、各種命令碼、返回碼和參數格式,可以參考LPC2000系列的用戶手冊。下面重點介紹一下如何使用IAP。
使用流程
圖1是使用IAP對閃存進行擦寫和編程的基本步驟。
![基于NXP LPC2000的次級啟動加載程序解析](/uploads/allimg/171030/2362486-1G0301114322a.png)
定義系統參數:在調用IAP命令前,有一些參數必須事先設置好,這包括系統時鐘、IAP調用的入口地址、存放輸入參數和輸出參數的變量。
選擇扇區:在對任何扇區進行擦除或編程前,必須選擇(準備)這些扇區,當然,也可以一次選擇多個扇區。
擦除扇區:在對閃存的指定扇區進行編程前,必須先擦除這些扇區。如果這些扇區已經被擦除,則不必再擦除了。可以一次對多個扇區進行擦除。
編程扇區:在這個階段,數據將被從SRAM寫入閃存中的指定地址。這里有幾個要特別注意的地方:
● 只能將位于片內SRAM內的數據寫入片內閃存;
● 位于片內閃存的寫入地址必須是256字節對齊;
● 片內SRAM必須位于局部總線(Local Bus),這就意味著有兩塊SRAM區域(供USB和以太網使用)內的數據不能被直接寫入閃存;
● 一次寫入的字節數必須是256、512、1024或者4096。
數據校驗:用戶不必自己寫程序每次對寫入的數據進行檢查,而是可以直接調用一個數據校驗的IAP命令。
IAP過程中的中斷
在擦除和編程操作過程中,片內閃存是不可訪問的,當用戶程序啟動執行時,用戶閃存區域的中斷向量有效。在調用擦除和編程的IAP命令前,用戶應當關閉中斷或者確保中斷向量表在SRAM中有效并且中斷處理函數也位于SM中。
在大多數的LPC2000器件內部,存在著一個被稱為“主啟動加載程序(Primary Boot Loader)”的固件,它在每次上電或復位時被首先運行。本文所講的“次級啟動加載程序”實際上是一段用戶自己寫的代碼(燒寫在用戶閃存區),在執行完主啟動加載程序后被執行,提供給用戶一個選擇,是繼續執行當前的應用程序還是對當前應用程序進行更新。
在應用編程(In Application Programming, IAP)是指在用戶應用程序運行時,對內部閃存執行擦除或編程操作,它是對用戶代碼進行升級的一個關鍵技術。
LPC2000 IAP介紹
扇區(Sector)
IAP操作都是基于“扇區(Sector)”的,這就意味著即使僅僅需要更新一個字節的代碼,也要將該字節所在的整個扇區擦除。因此,用戶應該將待更新的代碼和其它代碼放在不同的扇區,以免誤擦除。
IAP的應用領域
使用IAP技術,可以對用戶代碼進行升級,也可以把內部閃存當成類似EEPROM來存儲數據。
當用戶應用程序運行時,用戶可以對程序的一部分進行更新,就像在線升級病毒庫一樣,而不必將硬件電路斷電甚至將芯片取下來放到專門的編程器上去重新燒寫代碼。
當數據存儲器使用,可以減少PCB板面積、降低成本。由于作為數據存儲的扇區會被擦除,因此不能將這些扇區和存放用戶應用程序的扇區重疊。另外,閃存的擦除和編程次數也是有一定限制的,過于頻繁的擦除或編程會影響閃存的壽命。對于LPC2000芯片來說,至少可以穩定擦寫十萬次,數據至少可以保存20年。
如何使用IAP
關于IAP的詳細說明、各種命令碼、返回碼和參數格式,可以參考LPC2000系列的用戶手冊。下面重點介紹一下如何使用IAP。
使用流程
圖1是使用IAP對閃存進行擦寫和編程的基本步驟。
![基于NXP LPC2000的次級啟動加載程序解析](/uploads/allimg/171030/2362486-1G0301114322a.png)
定義系統參數:在調用IAP命令前,有一些參數必須事先設置好,這包括系統時鐘、IAP調用的入口地址、存放輸入參數和輸出參數的變量。
選擇扇區:在對任何扇區進行擦除或編程前,必須選擇(準備)這些扇區,當然,也可以一次選擇多個扇區。
擦除扇區:在對閃存的指定扇區進行編程前,必須先擦除這些扇區。如果這些扇區已經被擦除,則不必再擦除了。可以一次對多個扇區進行擦除。
編程扇區:在這個階段,數據將被從SRAM寫入閃存中的指定地址。這里有幾個要特別注意的地方:
● 只能將位于片內SRAM內的數據寫入片內閃存;
● 位于片內閃存的寫入地址必須是256字節對齊;
● 片內SRAM必須位于局部總線(Local Bus),這就意味著有兩塊SRAM區域(供USB和以太網使用)內的數據不能被直接寫入閃存;
● 一次寫入的字節數必須是256、512、1024或者4096。
數據校驗:用戶不必自己寫程序每次對寫入的數據進行檢查,而是可以直接調用一個數據校驗的IAP命令。
IAP過程中的中斷
在擦除和編程操作過程中,片內閃存是不可訪問的,當用戶程序啟動執行時,用戶閃存區域的中斷向量有效。在調用擦除和編程的IAP命令前,用戶應當關閉中斷或者確保中斷向量表在SRAM中有效并且中斷處理函數也位于SM中。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- LPC86x SPI輔助引導加載程序
- LPC2000讀寫EEPROM
- 如何使用LPC2000微控制器進行嵌入式軟件結構的設計 6次下載
- 基于NXP LPC21xx系列ARM芯片在ucos下啟動程序分解 4次下載
- LPC2000系列的ARM參考價格 8次下載
- 飛得浦LPC2000系列微處理器介紹 11次下載
- LPC2000系列ARM參考價格 18次下載
- NXP LPC21xx系列ARM芯片在ucos下啟動程序分解 75次下載
- LPC2000系列ARM參考價格 46次下載
- NXP單片機選型指南(英文版) 0次下載
- LPC2000系列單片機學習指導書(英文)
- LPC2000系列ARM硬件結構
- LPC2000系列的CAN總線驗收濾波器應用
- LPC2300/LPC2400 TCP/IP Overvie
- LPC2000 pdf datasheet
- AN-2058: ADuCM355用戶引導加載程序 1023次閱讀
- 如何使用CAN引導加載程序在MAXQ7665A中加載用戶應用代碼 822次閱讀
- 為MAXQ2000微控制器實現JTAG自舉加載程序主控 1173次閱讀
- 聊聊程序分散加載啟動的奧秘 2400次閱讀
- 一文了解window電腦控制面板的快速啟動 8.3w次閱讀
- 米爾科技NXP LPC1857 LPC1850 Cortex-M3開發板概述 4396次閱讀
- 米爾科技NXP LPC4357 LPC4350 Cortex-M4/M0開發板介紹 5819次閱讀
- 如何在樹莓派4上安裝新的引導加載程序 5865次閱讀
- 基于ARM-Linux平臺的FPGA程序加載模式淺析 1159次閱讀
- 基于STM32單片機啟動文件的作用和啟動過程解析 2.8w次閱讀
- 對lpc2000系列微控制器片內flash編程的方法 6398次閱讀
- 基于網絡加載的BootLoader的應用 1432次閱讀
- 基于以太網BOOTP協議的DSP程序加載技術 1506次閱讀
- nxp單片機匯總_lpc單片機選型 1.9w次閱讀
- 成功安裝Visual Studio2015后開啟環境 提示FIX錯誤消息“包加載失敗” 1618次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論