hi3518e SDK - mpp2/ko/load3518e出错

1 执行   mpp2/ko/load3518e 出错

海思sdk:mpp2/ko/load3518e

出错信息(翻译出错信息很有用):

Hisilicon Media Memory Zone Manager
ERROR: Conflict MMZ:
PHYS(0x82000000, 0x83FFFFFF), GFP=0, nBYTES=32768KB,    NAME="anonymous"
MMZ conflict to kernel memory (0x80000000, 0x825FFFFF)
Add MMZ failed: PHYS(0x82000000, 0x83FFFFFF), GFP=0, nBYTES=32768KB,    NAME="anonymous"
Hisilicon UMAP device driver interface: v3.00
load sys.ko ...OK!
出差原因:内存分配冲突:

分析

翻译输出信息可知:内存地址分配冲突;

bootargs :mem=38M 指给内核分配38M内存空间,及给OS(operating system)留了38M, 就是kernel memory (0x80000000, 0x825FFFFF=0x80000000+(0x2600000-1));

从Add MMZ failed: PHYS(0x82000000, 0x83FFFFFF), GFP=0, nBYTES=32768KB,    NAME="anonymous"
可以看出楼主把MMZ设为 从0x82000000开始到0x83ffffff共32M
查看mpp2/ko/load3518e 发现108行有mmz.ko的初始化信息:

  insmod mmz.ko mmz=anonymous,0,0x82000000,32M anony=1 || report_error  

可见海思默认的mmz内存地址为:0x82000000 之后的32M内存,但是显然已经和系统内存冲突;

解决方法:

1.直接修改bootarg中的mem 使它减小为32M(0x82000000-0x80000000),及设置(mem=32M)

2,修改mpp2/ko/load3518e 的mmz空间设置:

将108行:

insmod mmz.ko mmz=anonymous,0,0x82000000,32M anony=1 || report_error 

改为:

 insmod mmz.ko mmz=anonymous,0,0x82600000,26M anony=1 || report_error

2 执行 sample程序无效果

原因:摄像头频率不对;
问题出现在mpp2/ko/load3518e文件:
第71行:
himm 0x20030030 0x1;              #Sensor clock 24 MHz
改为:
himm 0x20030030 0x0;              #Sensor clock 12 MHz

要注意摄像头的一些配置信息;

















你可能感兴趣的:(hi3518e,开发记录)