通電啟動時,ROM首先檢測CMPA中關(guān)于重定位鏡像文件的位置和大小,然后檢測兩個鏡像的版本號,所以在使用雙鏡像機制時,主要對鏡像文件重定位和版本號進(jìn)行配置。
ROM從內(nèi)部Flash啟動雙鏡像文件流程圖如下:

2.1 鏡像文件重定位
LPC5536內(nèi)部Flash支持重映射,當(dāng)設(shè)置重映射偏移量后,F(xiàn)lash AHB 總線將訪問偏移后的地址。例如,當(dāng)偏移量設(shè)置為128K(0x20000),對0x0的訪問將被重新映射到地址0x20000。通過這個特性,ROM可以實現(xiàn)雙鏡像引導(dǎo)。下面是一個關(guān)于內(nèi)部Flash存放兩個鏡像文件的簡圖。


2.2 配置鏡像的版本
在頭文件偏移量為0x24處設(shè)置鏡像版本號,如下表格所示,第16位-31位設(shè)置鏡像文件版本號,第10位表示鏡像文件是否存在版本號,使用雙鏡像機制時,此位設(shè)置為1.

- 配置CMPA中數(shù)據(jù)值
修改cmpa.bin文件,通過blhost把修改后的bin文件寫入CMPA,以配置image1偏移量和重映射大小,流程如下:
a. 打開一個全0的cmpa.bin,修改0x3E23C處數(shù)據(jù)為0x20000,高位在右低位在左,如下:

b. 修改重映射大小。地址0x3E238處修改為0x1d800,如下:

借助blhsot 工具燒寫,blhost 2.6.7是一個命令行調(diào)試工具,界面如下:

首先,從設(shè)備管理器查看開發(fā)板與電腦連接端口號

然后,按下復(fù)位鍵,輸入連接測試命令blhost -pcom12 -- get-property 1
判斷是否正常通信,如連接成功會提示信息:

通過使用blhost -pcom12 -- write-memory 0x3e200 cmpa_new.bin命令,寫入CMPA:

為確保正確寫入,查看設(shè)置之后CMPA數(shù)據(jù)
通過命令blhost -pcom12 -- read-memory 0x3e200 512查看設(shè)置后的CMPA數(shù)據(jù):

根據(jù)實驗效果,Image0的功能是LPC5536-evk開發(fā)板上紅燈閃爍,Image1功能是綠燈閃爍。
Image0 設(shè)置版本號為1,Image1 設(shè)置版本號為2:
打開紅燈閃爍的工程,修改頭文件偏移量0x24處為0x10400

打開綠燈閃爍的工程,修改頭文件偏移量0x24處為0x20400

LPC5536JBD100用戶可用的內(nèi)部Flash共246K,所以Image0 分配到0x0-0x1FFFF地址范圍內(nèi),Image1分配到0x20000-0x3D7FF地址范圍內(nèi)。如果使用MCUXpresso ID,設(shè)置如下:
工程->右鍵屬性->MCU settings,設(shè)置起始地址和大小,完成后點擊應(yīng)用按鈕。
紅燈閃爍工程:


重現(xiàn)編譯工程。
3.4 功能測試
測試程序為兩個點燈程序,分別為紅燈閃爍和綠燈閃爍程序,紅燈閃爍為image0,版本號1,綠燈閃爍為image0,版本號2,所以測試結(jié)果如果綠燈閃爍,則成功。
-
下載程序
使用IDE中GUI Flash Tool,分別下載兩個鏡像文件到開發(fā)板中:

下載完成后,點擊確定:

同樣的方式下載另外一個程序,注意在燒寫第二個程序時,不能勾選“masserase”,如果使用其它工具燒寫,也應(yīng)關(guān)閉和”masserase”相同功能的選項,避免擦除第一個鏡像文件。
- 測試結(jié)果
下載程序后,復(fù)位,綠燈閃爍。
升級測試:將紅燈閃爍工程版本號修改為3,即修改0x10400為0x30400,重新燒寫鏡像文件,應(yīng)該會看到紅燈閃爍。
四. 總結(jié)
雙鏡像機制為嵌入式設(shè)備的升級和啟動增加保險,應(yīng)用過程中需要注意在CMPA區(qū)域設(shè)置鏡像偏移量、重映射大小和配置鏡像版本的方式,同時也需要注意兩個工程中Flash配置。
END
更多恩智浦AI-IoT市場和產(chǎn)品信息,邀您同時關(guān)注“NXP客?!蔽⑿殴娞?/span>
?
?
?NXP客棧
恩智浦致力于打造安全的連接和基礎(chǔ)設(shè)施解決方案,為智慧生活保駕護(hù)航。
長按二維碼,關(guān)注我們
恩智浦MCU加油站
這是由恩智浦官方運營的公眾號,著重為您推薦恩智浦MCU的產(chǎn)品信息、開發(fā)技巧、教程文檔、培訓(xùn)課程等內(nèi)容。
?長按二維碼,關(guān)注我們
原文標(biāo)題:LPC5536: 雙鏡像機制使用指南
文章出處:【微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
mcu
+關(guān)注
關(guān)注
147文章
19126瀏覽量
403755 -
恩智浦
+關(guān)注
關(guān)注
14文章
6122瀏覽量
154005
原文標(biāo)題:LPC5536: 雙鏡像機制使用指南
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
LPC5536: 雙鏡像機制使用指南
評論