Hi3531第一次除錯 遇到的問題。

2021-07-06 01:29:34 字數 1600 閱讀 2901

最近在在海思平台上把交叉編譯工具裝好,然後參考著 文件,編譯了u-boot, kernel,檔案系統。然後繼續執行sample的時候,出現下面這個問題:

./sample_vdec 0

[sample_comm_sys_calcpicvbblksize]-215: w:384, u32alignwidth:64

[sample_comm_sys_calcpicvbblksize]-215: w:384, u32alignwidth:64

system get kernel config failed!

get kernel config failed!

[sample_comm_sys_init]-385: hi_mpi_sys_init failed!with ffffffff

[sample_vio_8_d1cif]-1475: system init failed with -1!

program exit abnormally!

在《hisi3531 sdk 安裝以及公升級使用說明》

1、ddr記憶體管理說明

1)所有ddr記憶體中,一部分由作業系統管理,稱為os記憶體;另一部分由mmz模組管理,供**業務單獨使用,稱為mmz記憶體。

2)os記憶體起始位址為0x80000000,記憶體大小可通過bootargs進行配置,例如第三章中的setenv bootargs 'mem=64m ... ',表示分配給作業系統記憶體為64m,您可以根據實際情況進行調整。

3)mmz記憶體由mmz核心模組管理(mpp/ko_hi35xx目錄下的mmz.ko),載入mmz模組時,通過模組引數指定其起始位址及大小,例如:

insmod mmz.ko mmz=anonymous,0,0x84000000,447m:ddr1,0,0xc0000000,511m anony=1 || report_error

表示mmz兩塊區域,區域一的名稱為anonymous,起始位址為0x84000000,大小為447m;區域二的名稱為ddr1,起始位址為0xc0000000,大小為511m。

您可以通過修改mpp/ko_hi35xx目錄下load3531指令碼中的mmz模組引數,來修改其起始位址和總大小。

4)請注意mmz記憶體位址範圍不能與os記憶體重疊。

後來在網上看了一些帖子,才發現自己在載入.ko驅動的時候出現了問題。mmz驅動執行不了。在檔案load3531的指令碼裡面有這麼句**:

insmod mmz.ko mmz=anonymous,0,0x84000000,447m:ddr1,0,0xc0000000,511m anony=1 || report_error

所以我們就知道,mmz在ddr的位址空間是從 首位址偏移 64mbyte開始的。

所以我們給 作業系統的大小必須小於 64mbyte。

所以我們設定:

setenv bootargs 'mem=64m console=ttyama0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1m(boot),4m(kernel),11m(rootfs)'

這樣就可以配套使用。

visual studio第一次除錯遇到的問題

win32project3.exe win32 已載入 d software vs2013 vs2013 文件 win32project3 debug win32project3.exe 已載入符號。win32project3.exe win32 已載入 c windows syswow64 ntd...

第一次遇到

明天還沒有到來 你永遠不能給它定論 生活是生活嗎?靈魂已經停滯。失去了目標,大概就是乙個擁有生物特性的行屍走肉。一天,兩天,也許是三天!日期已經不重要啦。白天,也可能是黑夜,已經不知道啦。我是什麼時候進食呢,總之,我這副軀殼依舊有很強烈的生命特徵。我在無聊,我在放空,也許是在等在死亡。噓!朋友們!不...

openmv第一次除錯

2018 09 19 20 14 51 import sensor,image,time import carimport json import time from pyb import uart from pid import pidsensor.reset initialize the cam...