打包出現(xiàn):ERROR: update_mbr failed
24993+0 records in
24993+0 records out
6398208 bytes (6.4 MB) copied, 0.0271082 s, 236 MB/s
ERROR: dl file rtos_riscv.fex size too large
ERROR: filename = rtos_riscv.fex
ERROR: dl_file_size = 1579 sector
ERROR: part_size = 1000 sector
ERROR: update mbr file fail
ERROR: update_mbr failed
這是因?yàn)?rtos_riscv.fex
太大了,分區(qū)容量設(shè)置過小。
解決方法
- 確定打包使用的分區(qū)表
運(yùn)行打包命令,找到打包使用發(fā)分區(qū)表。例如這里使用的是 sys_partition_xip.fex
- 編輯分區(qū)表
使用 cconfigs
命令進(jìn)入目錄,找到打包使用的分區(qū)表,編輯修改
- 找到上面報錯的行,修改
size
選項(xiàng),單位是扇區(qū)。對于 NOR 方案請對齊。這里我們修改到7000
- 重新打包,正常通過
修改分區(qū)表后系統(tǒng)無法啟動
有些時候,修改 sys_partition_xxx.fex
后系統(tǒng)無法啟動,例如將 config
的大小從 32
改到 64
后,系統(tǒng)無法啟動卡死。
這是由于擴(kuò)大分區(qū)后踩到內(nèi)存了,一般配置 LPSRAM 前面 2M 給 M33 核使用,M33 的代碼運(yùn)行在前面 2M 上,另外這 2M 中的前 16K 是sysconfig
配置。
可以看到 M33 系統(tǒng)的啟動地址為 0x8004000
但是 config
現(xiàn)在有 32K 載入到了 0x8000000-0x8008000
的內(nèi)存中,覆蓋了 M33
的部分內(nèi)存,這樣一般叫做 "踩內(nèi)存"。
解決方法:
- 精簡該分區(qū),刪除不需要的配置項(xiàng)
保持 config
大小為 32
,刪除不需要的配置項(xiàng)目減少 config
的大小。
- 修改 M33 核心的運(yùn)行地址,這里將 M33 核心往后移動了一部分,將啟動地址配置到
0x8008000
,同時注意修改內(nèi)存長度防止踩到 C906 核心的內(nèi)存,將0x1FC000
改為0x1F8000
。
這樣就不會踩到內(nèi)存導(dǎo)致啟動失敗。正常啟動。
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358209 -
全志
+關(guān)注
關(guān)注
24文章
268瀏覽量
53626 -
R128
+關(guān)注
關(guān)注
0文章
41瀏覽量
223
發(fā)布評論請先 登錄
相關(guān)推薦
deepin 25系統(tǒng)安裝常見問題

FD60-36S24B3R2 FD60-36S24B3R2

PFD50-36S24B3R2 PFD50-36S24B3R2

FD50-36S24B3(R)2 FD50-36S24B3(R)2

soc開發(fā)流程常見問題及解決方案
Keystone EDMA常見問題解答

KeyStone設(shè)備的PCI Express (PCle)常見問題

驅(qū)動芯片在應(yīng)用中的常見問題分析與解決

CAN總線應(yīng)用常見問題(2)

PCB設(shè)計(jì)中的常見問題有哪些?

評論