jasongol

jasongol

0个粉丝

1

问答

0

专栏

0

资料

jasongol  发布于  2017-12-14 11:29:51
采纳率 0%
1个问答
12136

记录一次Hi3518E新添sensor的过程

 
本帖最后由 jasongol 于 2017-12-14 11:29 编辑

使用的sensor是海思列表没有支持的SC2235,主要需要了解到这个sensor的配置已经地址(需要向sensor原厂要驱动sc2235_cmos.c sc2235_sensor_ctl.c  sc2235_1080p_line.ini vpss_attr_2235.c)编译为.so .a以供测试代码调用。

首先在ko加载时就要添加自己的sensor,./load3518e -a -sensor sc2235 -osmem 32 -total 64
在load3518e 脚本中的函数insert_sns()中添加自己sensor对应的地址。
否则会报错“Invalid sensor type”



问题1:
Unknown symbol in module, or unknown parameter(rmmod 执行失败,请忽视错误,开机第一次加载ko,会先删除rmmode,为空肯定报错)
operation not permitted
load3518e执行失败,ko插入失败
第一反应肯定是linux版本不匹配,嗯,事实上并不是,很可能是OS和MMZ的地址重叠了。
需要看你DDR内存大小,海思教程中的DDR是128MB的,如果你一样,那就跟着教程走就ok
不幸的是,我们的DDR是64MB,那么你可以参照下面的修改
setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'
saveenv
上面的修改就够了,以后的都按照默认走,我也顺带贴出来
SNS_TYPE=ar0230             # sensor type

mem_total=64;               # 64M, total mem
mem_start=0x80000000;       # phy mem start

os_mem_size=32;             # 32M, os mem
mmz_start=0x82000000;       # mmz start addr
mmz_size=32M;               # 32M, mmz size

MMZ地址肯定是从82000000开始的,OS最开始是从bootm 0x82000000启动的,但是启动后会回盖到0x80000000的 ,所以不用担心0x82000000重叠,正如文档所述,正常运行后的地址分配如图:
    DDR:                                                           
   
    -----|-------|  0x80000000   # Memory managed by OS.              
    32M  | OS    |                                                
         |       |                                                
    -----|-------|  0x82000000   # Memory managed by MMZ block anonymous.         
    32 M | MMZ   |                                                
         |       |                                                
    -----|-------|  0x84000000   # Memory managed by MMZ block jpeg.                       
一切顺利的话,lsmod会有如下显示:

Module                  Size  Used by    Tainted: P  
hi_mipi                22587  0
hi3518e_adec            6546  0
hi3518e_aenc           46989  0
hi3518e_ao            105952  0
hi3518e_ai            109706  1 hi3518e_aenc
hi3518e_aio            28363  0
acodec                  8242  0
piris                   3220  0
pwm                     2471  0
sensor_i2c              1501  0
hi3518e_ive            76660  0
hi3518e_jpege          51824  0
hi3518e_h264e         172210  0
hi3518e_chnl           33659  0
hi3518e_venc          216283  2 hi3518e_jpege,hi3518e_h264e
hi3518e_rc             62388  0
hifb                   72068  0
hi3518e_vou           168985  1 hifb
hi3518e_vpss          261330  0
hi3518e_viu           246389  1 hi3518e_vpss
hi3518e_isp           105606  4 piris,sensor_i2c,hi3518e_vpss,hi3518e_viu
hi3518e_vgs           127198  0
hi3518e_region         66722  0
hi3518e_tde           121855  2 hifb,hi3518e_region
hi3518e_sys            62048  2 hi3518e_vpss,hi3518e_viu
hi3518e_base           58109 21 hi3518e_adec,hi3518e_aenc,hi3518e_ao,hi3518e_ai,hi3518e_aio,acodec,hi3518e_ive,hi3518e_jpege,hi3518e_h264e,hi3518e_chnl,hi3518e_venc,hi3518e_rc,hifb,hi3518e_vou,hi3518e_vpss,hi3518e_viu,hi3518e_isp,hi3518e_vgs,hi3518e_region,hi3518e_tde,hi3518e_sys
hi_media                5801  6 hi_mipi,acodec,pwm,hifb,hi3518e_tde,hi3518e_base
mmz                    22400  6 hi3518e_ao,hi3518e_jpege,hi3518e_h264e,hi3518e_tde,hi3518e_sys,hi3518e_base
rtl8188eu             692341  0



问题1:
由于是新sensor,跑海思自带的测试代码肯定会提示“This sensor type is not surpport!”
解决方案:
添加新sensor的枚举类型 到typedef enum sample_vi_mode_e {}SAMPLE_VI_MODE_E;
并根据自己sensor的参数正确命名。

问题2:
最棘手的问题,get venc stream time out, exit thread
既然是新添加sensor,那么能出现这个超时问题一定就是视频摄入有问题了,最主要的结构在sample_common_vi.c 的combo_dev_attr_t结构体。
你要对照sensor厂商给的ini配置,参照其他厂商的形式为你的sensor写一个此结构体的初始化代码。当然我们的是CMOS3V3的,直接使用如下初始化结构:
combo_dev_attr_t MIPI_CMOS3V3_ATTR =
{
    /* input mode */
    .input_mode = INPUT_MODE_CMOS_33V,
    {
        
    }
};

执行sample_venc之后,选择一个选项,h264的流就出现在执行目录下了,直接用vlc打开。
如果想要转为网络的rtsp流,那需要改sample代码将这些流重新打包,并使用rtsp流发布出来。


最后贴一张成像图,但是泛紫,现在正准备在ISP调试下,帖子继续更新。

我来回答
回答30个
时间排序
认可量排序

dsw2012218

0个粉丝

8

问答

0

专栏

0

资料

dsw2012218 2017-12-14 12:47:18
认可0
不错,兄台很有分享精神。

moving

0个粉丝

1

问答

0

专栏

0

资料

moving 2017-12-14 14:51:27
认可0
应该是mask地址设错了

jasongol

0个粉丝

1

问答

0

专栏

0

资料

jasongol 2017-12-14 15:05:07
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82139&ptid=38455]moving 发表于 2017-12-14 14:51[/url]
应该是mask地址设错了[/quote]

mask地址吗?地址是写在ini的,sample没有导入ini,把ini转化为结构体combo_dev_attr_t的初始化了。还是不清楚问题咋改

daifei

0个粉丝

3

问答

0

专栏

0

资料

daifei 2017-12-15 12:19:36
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82142&ptid=38455]jasongol 发表于 2017-12-14 15:05[/url]
mask地址吗?地址是写在ini的,sample没有导入ini,把ini转化为结构体combo_dev_attr_t的初始化了。还是 ...[/quote]

掩码查一下,原理都一样的。

jasongol

0个粉丝

1

问答

0

专栏

0

资料

jasongol 2017-12-15 17:21:13
认可0
谢谢楼上两位,结贴了,掩码在sample_comm_vi.c中你添加的sensor的VI_DEV_ATTR_S 结构体中,我的结构体是:
VI_DEV_ATTR_S DEV_ATTR_SC2235_DC_720P_BASE =
{
    /* interface mode */
    VI_MODE_DIGITAL_CAMERA,
    /* multiplex mode */
    VI_WORK_MODE_1Multiplex,
    /* r_mask    g_mask    b_mask*/
    //{0xFFF0000,    0x0},
    //{0xFF00000,    0x0},
    {0x3FF0000,    0x0},
    /* progessive or interleaving */
    VI_SCAN_PROGRESSIVE,
    /*AdChnId*/
    {-1, -1, -1, -1},
    /*enDataSeq, only support yuv*/
    VI_INPUT_DATA_YUYV,

     /* synchronization information */
    {
    /*port_vsync   port_vsync_neg     port_hsync        port_hsync_neg        */
    VI_VSYNC_PULSE, VI_VSYNC_NEG_HIGH, VI_HSYNC_PULSE,VI_HSYNC_NEG_HIGH,VI_VSYNC_NORM_PULSE,VI_VSYNC_VALID_NEG_HIGH,   
   
    /*hsync_hfb    hsync_act    hsync_hhb*/
    {0,            1280,        0,
    /*vsync0_vhb vsync0_act vsync0_hhb*/
     0,            720,        0,
    /*vsync1_vhb vsync1_act vsync1_hhb*/
     0,            0,            0}
    },
    /* use interior ISP */
    VI_PATH_ISP,
    /* input data type */
    VI_DATA_TYPE_RGB,
    /* bRevert */
    HI_FALSE,
    /* stDevRect */
    {200, 20, 1280, 720}
};

jasongol

0个粉丝

1

问答

0

专栏

0

资料

jasongol 2017-12-15 17:22:24
认可0
掩码低十位 0x 3ff 0000

ayue9_-9nb

0个粉丝

3

问答

0

专栏

0

资料

ayue9_-9nb 2017-12-18 11:47:33
认可0
楼主辛苦了,持续关注

ayue9_-9nb

0个粉丝

3

问答

0

专栏

0

资料

ayue9_-9nb 2017-12-18 11:50:37
认可0
我是在litos上使用海思3518e的,现在想搭建isp调试环境,板端需要config.ini和sensor的配置文件,sensor的配置文件是从原厂拿吗? config.ini我在海思的SDK中没有找到,这个是什么文件呢,谢谢楼主

jasongol

0个粉丝

1

问答

0

专栏

0

资料

jasongol 2017-12-18 18:02:22
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82284&ptid=38455]ayue9_-9nb 发表于 2017-12-18 11:50[/url]
我是在litos上使用海思3518e的,现在想搭建isp调试环境,板端需要config.ini和sensor的配置文件,sensor的 ...[/quote]

对,向sensor原厂要这些.ini和驱动,海思SDK是不会提供的。

ayue9_-9nb

0个粉丝

3

问答

0

专栏

0

资料

ayue9_-9nb 2017-12-20 11:42:35
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=82307&ptid=38455]jasongol 发表于 2017-12-18 18:02[/url]
对,向sensor原厂要这些.ini和驱动,海思SDK是不会提供的。[/quote]

明白了,谢谢楼主,你现在使用ISP调试了吗,我这边使用ISP,程序启动后,加载config.ini失败,这个config.ini文件我已经放入文件系统了,好迷惑,楼主遇到过这个问题吗?

qyzwangbin

0个粉丝

5

问答

0

专栏

1

资料

qyzwangbin 2017-12-29 17:00:26
认可0
你好,原厂驱动能给一下吗?或者代理的联系方式给一下,也行

faye.z

0个粉丝

0

问答

0

专栏

0

资料

faye.z 2018-01-18 16:55:37
认可0
很好的经验贴,多谢分享

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2018-01-25 10:20:32
认可0
好的经验贴,多谢分享

dsw2012218

0个粉丝

8

问答

0

专栏

0

资料

dsw2012218 2018-01-25 10:29:27
认可0
好的经验贴,多谢分享

风继续吹

0个粉丝

0

问答

0

专栏

0

资料

风继续吹 2018-01-26 16:40:51
认可0
好贴,mark一下:D

zhongzhongzhong

0个粉丝

6

问答

0

专栏

0

资料

zhongzhongzhong 2018-03-01 10:15:22
认可0
大兄弟,isp调试的怎么样了,我也调到isp了

wu0

0个粉丝

7

问答

0

专栏

1

资料

wu0 2018-03-01 10:59:42
认可0
mark一下,值得学习。。。

qn1514206200

0个粉丝

1

问答

0

专栏

0

资料

qn1514206200 2018-03-04 12:00:34
认可0
thanks for your sharing

gcp

0个粉丝

0

问答

12

专栏

0

资料

gcp 2018-04-10 13:59:43
认可0
大神急求sc2235驱动,麻烦发到邮箱[email]821586284@qq.com[/email] ,感谢

kent_ly

0个粉丝

8

问答

0

专栏

0

资料

kent_ly 2018-06-03 23:30:01
认可0
mark一下,学习。
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区