hi-笔记

6.关于3516编译

https://blog.csdn.net/aslily1234/article/details/100040079

5.最近调通了dc输入,介绍一下digital camera接口输入的信号,参考资料在ebaina里面很多论坛。我总结一下:主要对于vi处理很多。

 

如果要配成cmos(dc,bt656,bt601,bt1120)输入时,1、看引脚复用功能,查看传感器启动脚本如:load3559av100_multicore,里面有引脚复用为cmos引脚,还需要配置videvID对应的为cmos。2、配置VI_DEV_ATTR_S,PIPE属性:

a.加载驱动:使用离线模式。

./load3559av100_multicore -i -sensor0 bt1120

 

Cmos的引脚复用配置:

vi_bt656_mode()

{//引脚复用

         himm 0x1F001084 0x000014f3

         himm 0x1F0010A4 0x000014f3

         himm 0x1F0010A0 0x000014f3

         himm 0x1F00109c 0x000014f3

         himm 0x1F001098 0x000014f3

         himm 0x1F001094 0x000014f3

         himm 0x1F001090 0x000014f3

         himm 0x1F00108c 0x000014f3

         himm 0x1F001088 0x000014f3

         #himm 0x1F0010c4 0x000014f3

         #himm 0x1F0010c0 0x000014f3

         #himm 0x1F0010bc 0x000014f3

         #himm 0x1F0010b8 0x000014f3

         #himm 0x1F0010b4 0x000014f3

         #himm 0x1F0010b0 0x000014f3

         himm 0x1F0010ac 0x000014f6

         himm 0x1F0010a8 0x000014f6

echo "============vi_bt1120_0_mux done============="

}

把vi5配置为cmos复用。

                   bt656)

                            vi_bt656_mode;

                            himm 0x12030098 0x20;       # vi port work_mode£o VI0

                            himm 0x12010104 0x00c28e00;//功能复用。配置videv5配对到cmos0,看数据手册!因此mpp里面的videv要配置为5才能用。

                            ;;

 

b.vi配置:

设备属性结构体:

VI_DEV_ATTR_S DEV_ATTR_xxx_BASE =

{

    VI_MODE_DIGITAL_CAMERA,//用原始数据输入或者BT656

    VI_WORK_MODE_1Multiplex,

    {0x00FF0000,    0x0},//配置引脚掩码0-7,我们接的就是vi0-7脚。如果接到的是8-15脚,掩码为0xff000000.

    VI_SCAN_PROGRESSIVE,//扫描模式。如果是BT656输入时,配置为隔行

    {-1, -1, -1, -1},

    VI_DATA_SEQ_YVYU,//输入格式

 

{

    /*port_vsync   port_vsync_neg     port_hsync        port_hsync_neg       如果是数字信号,配置port_vsync为VI_VSYNC_FIELD, port_vsync_neg为VI_VSYNC_NEG_HIGH*/

    VI_VSYNC_PULSE, VI_VSYNC_NEG_LOW, VI_HSYNC_VALID_SINGNAL,VI_HSYNC_NEG_HIGH,VI_VSYNC_VALID_SINGAL,VI_VSYNC_VALID_NEG_HIGH,

 

    /*hsync_hfb    hsync_act    hsync_hhb*/

    {0,            MY_GAODE_PIX_WIDTH,        0,

    /*vsync0_vhb vsync0_act vsync0_hhb*/

     0,            MY_GAODE_PIX_HIGH,        0,

    /*vsync1_vhb vsync1_act vsync1_hhb*/

     0,            0,            0}

    },

    VI_DATA_TYPE_YUV,

    HI_FALSE,

    {MY_GAODE_PIX_WIDTH , MY_GAODE_PIX_HIGH},//{3840 , 2160},

    {

        {

            {MY_GAODE_PIX_WIDTH , MY_GAODE_PIX_HIGH},//{3840 , 2160},

        },

        {

            VI_REPHASE_MODE_NONE,

            VI_REPHASE_MODE_NONE

        }

    },

    {

        WDR_MODE_NONE,

        MY_GAODE_PIX_HIGH//1080

    },

    DATA_RATE_X1

};

 

Pipe属性结构体:

VI_PIPE_ATTR_S PIPE_ATTR_xxx_RFR =

{

         //对于bt656和raw数据,需要配置为无压缩,

    VI_PIPE_BYPASS_NONE, HI_FALSE,HI_TRUE,//如果是YVU输入,跳过ISP;如果是原始RGB输入,不能跳过ISP

    MY_GAODE_PIX_WIDTH,MY_GAODE_PIX_HIGH,//3840, 2160,视频宽高配置,和输入一样

    PIXEL_FORMAT_YVU_SEMIPLANAR_422,//有YUV和RGB输入。如果是YVU输入,跳过ISP;如果是原始RGB输入,不能跳过ISP

    COMPRESS_MODE_NONE,//无压缩

    DATA_BITWIDTH_8,

    HI_FALSE,

    {

        PIXEL_FORMAT_YVU_SEMIPLANAR_420,

        DATA_BITWIDTH_8,

        VI_NR_REF_FROM_RFR,

        COMPRESS_MODE_NONE

    },

    HI_FALSE,

    { -1, -1}

};

通道属性:这是输出视频格式。

VI_CHN_ATTR_S CHN_ATTR_xxx_LINEAR =

{

    {MY_GAODE_PIX_WIDTH, MY_GAODE_PIX_HIGH},//{3840, 2160},

    PIXEL_FORMAT_YVU_SEMIPLANAR_420,

    DYNAMIC_RANGE_SDR8,

    VIDEO_FORMAT_LINEAR,

    COMPRESS_MODE_SEG,

    0,      0,

    0,

    { -1, -1}

};

总结一下:海思mpp的SDK没有源码,多参考手册“HiMPP V4.0 媒体处理软件开发参考”;看/proc/umap/vi等信息,在mpp手册里面有proc调试信息说明;有问题的时候看:cat /dev/logmpp,通过字面意思看问题,配置失败,环节出错,都会有不同的信息,可能在你山穷水尽疑无路的时候,又有柳暗花明又一村的感觉。

 

4.我们用hi3519v101做了自己的板子,然后由于ddr接线和demo不一样,不能用hitool烧写程序,但是单块ddr接线一样,然后需要做配置用单片启动:

    配置ddr为16bit,但是还是启动不起来。

DDRC_CFG_DDRMODE0x80500xC10216

    还需要修改:之前是0xf80000.在手册上面找不到这两个寄存器。。。。。。

DXCTRL(BYTE2)0xc3080xf80001
DXCTRL(BYTE3)0xc3880xf80001

1.hi3519v101用emmc-8g启动,并且boot,kernel,rootfs,保存视频目录fs。

烧写boot,kernel,rootfs参考3559的emmc烧写

启动参数改一下:setenv bootargs 'mem=512M console=ttyAMA0,115200 rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(fastboot),9M(kernel),96M(rootfs),7G(data)  ip=192.168.1.2:192.168.1.251:192.168.1.254:255.255.255.0'

起来之后可以看到:

/mnt # ls /dev/mmcblk0p*
/dev/mmcblk0p1  /dev/mmcblk0p2  /dev/mmcblk0p3  /dev/mmcblk0p4

第4个块就是7g数据块,看看他情况:

/mnt # fdisk -l /dev/mmcblk0p4
Disk /dev/mmcblk0p4: 40 GB, 42949672960 bytes, 83886080 sectors
1310720 cylinders, 4 heads, 16 sectors/track
Units: cylinders of 64 * 512 = 32768 bytes

Disk /dev/mmcblk0p4 doesn't contain a valid partition table

现在mount他会失败,我们可以用直接使用内部命令mkfs.ext4来制作文件系统

~ # mkfs.ext4 /dev/mmcblk0p4 
mke2fs 1.42.13 (17-May-2015)
Discarding device blocks: random: crng init done
done                            
Creating filesystem with 10485760 4k blocks and 2621440 inodes
Filesystem UUID: d0ba2520-ea92-4e00-8c98-c74ba3e2f752
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

然后mount他:

~ # mount /dev/mmcblk0p4 /mnt/surmnt/
EXT4-fs (mmcblk0p4): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: (null)

看一下内容:

~ # ls /mnt/surmnt/
lost+found

文件系统已经有了

/mnt # df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                92656     16656     74036  18% /
tmpfs                   248028         4    248024   0% /dev
/dev/mmcblk0p4        41153856     49032  38991288   0% /mnt/surmnt

 

2.gadget可以实现usb访问设备,如U盘,usb转串口,网口等

可以参考文档:外围设备驱动操作指南

但是window并不支持ext4格式的文件系统,如果用windows识别gadget的U盘功能的话,需要把文件系统改为fat32。

mkfs.vfat /dev/mmcblk0p1

3.

得到a倍数且<=x的最小值.

#define CEILING_2_POWER(x,a)     ( ((x) + ((a) - 1) ) & ( ~((a) - 1) ) )

得到a倍数且>x的最大值.
#define FLOOR_2_POWER(x,a)       (  (x) & (~((a) - 1) ) )

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hi-convertor是一款非常实用的工具,它可以将不同格式的文件快速、方便地进行转换。不管你想将文档、图像、音频或者视频文件转换为其他格式,hi-convertor都能胜任。 首先,它具备广泛的文件格式兼容性。你可以将各种常见的文档格式,如Word、PDF和Excel,转换为其他互相兼容的格式。对于图片,hi-convertor支持常见的格式,如JPEG、PNG和GIF,而且可以在转换过程中进行大小和质量的调整。音频和视频也不例外,你可以将它们转换为各种流行的格式,如MP3、MP4和AVI。 其次,hi-convertor具备高效的转换速度。它可以在短时间内完成大文件的转换,节省了用户的时间和精力。这对于需要处理大量文件的人来说非常有用,尤其是在快速转换和转发文件时。 此外,hi-convertor具备简单易用的界面。它的操作非常直观,用户只需按照指导完成几个简单步骤即可完成转换。即使是对于初学者,也能够快速上手并进行文件转换。同时,hi-convertor还提供了一些额外的功能,如文件合并和拆分,让用户能够更好地对文件进行管理和处理。 总而言之,hi-convertor是一款功能强大、操作简单、转换速度快的文件转换工具。它为用户提供了方便快捷的文件转换服务,可以满足用户的各种转换需求。无论是个人用户还是企业用户,hi-convertor都是一个不可或缺的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值