打包出現(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
這是因為 rtos_riscv.fex 太大了,分區(qū)容量設(shè)置過小。
解決方法
- 確定打包使用的分區(qū)表
運行打包命令,找到打包使用發(fā)分區(qū)表。例如這里使用的是 sys_partition_xip.fex

- 編輯分區(qū)表
使用 cconfigs 命令進入目錄,找到打包使用的分區(qū)表,編輯修改

- 找到上面報錯的行,修改
size選項,單位是扇區(qū)。對于 NOR 方案請對齊。這里我們修改到7000

- 重新打包,正常通過

修改分區(qū)表后系統(tǒng)無法啟動
有些時候,修改 sys_partition_xxx.fex 后系統(tǒng)無法啟動,例如將 config 的大小從 32 改到 64 后,系統(tǒng)無法啟動卡死。


這是由于擴大分區(qū)后踩到內(nèi)存了,一般配置 LPSRAM 前面 2M 給 M33 核使用,M33 的代碼運行在前面 2M 上,另外這 2M 中的前 16K 是sysconfig 配置。
可以看到 M33 系統(tǒng)的啟動地址為 0x8004000 但是 config 現(xiàn)在有 32K 載入到了 0x8000000-0x8008000 的內(nèi)存中,覆蓋了 M33 的部分內(nèi)存,這樣一般叫做 "踩內(nèi)存"。

解決方法:
- 精簡該分區(qū),刪除不需要的配置項
保持 config 大小為 32,刪除不需要的配置項目減少 config 的大小。

- 修改 M33 核心的運行地址,這里將 M33 核心往后移動了一部分,將啟動地址配置到
0x8008000,同時注意修改內(nèi)存長度防止踩到 C906 核心的內(nèi)存,將0x1FC000改為0x1F8000。

這樣就不會踩到內(nèi)存導致啟動失敗。正常啟動。
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
147文章
18609瀏覽量
387082 -
全志
+關(guān)注
關(guān)注
25文章
302瀏覽量
54470 -
R128
+關(guān)注
關(guān)注
0文章
41瀏覽量
392
發(fā)布評論請先 登錄
ZYNQ UltraScalePlus RFSOC QSPI Flash固化常見問題說明
PCBA代工避坑指南:常見問題+解決方案全解析
deepin 25系統(tǒng)安裝常見問題
STM32定時器基本原理及常見問題之培訓資料
DeepSeek在昇騰上的模型部署的常見問題及解決方案
FD60-36S24B3R2 FD60-36S24B3R2
PFD50-36S24B3R2 PFD50-36S24B3R2
FD50-36S24B3(R)2 FD50-36S24B3(R)2
機房空調(diào)—機房送風與回風設(shè)計常見問題和解決方法
EE-102:模式D和ADSP-218x引腳兼容性-常見問題
防水試驗機常見問題解答與故障排除方法

DshanMCU-R128s2常見問題
評論