Hi3531第一次調試 遇到的問題。

       最近在在海思平臺上把交叉編譯工具裝好,然後參考着 文檔,編譯了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)'

這樣就可以配套使用。

然後很開心解.h264的視頻出來了。



發佈了97 篇原創文章 · 獲贊 95 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章