Hi3519v101 源码学习

可以参考:https://blog.csdn.net/wangdapao12138/article/details/82534865

进入hisi 源码osdrv/opensource/kernel/linux-3.18.y,输入make menuconfig ,可以做相应的配置修改:
在这里插入图片描述
3519 boot / kernel /rootfs升级地址空间如下:

/* layout of the FLASH. ST = start address, ND = end address. */
#define AU_FL_FIRMWARE_ST	0x0
#define AU_FL_FIRMWARE_ND	0x7FFFF
#define AU_FL_KERNEL_ST		0x100000
#define AU_FL_KERNEL_ND		0x5FFFFF
#define AU_FL_ROOTFS_ST		0x600000
#define AU_FL_ROOTFS_ND		(0x4000000-0x01)

烧录文件路径: package\image_big-little\image_glibc_big-little

烧写映像文件到SPI Flash , 以16M SPI Flash为例。
1)地址空间说明

|      1M       |      3M       |      12M      |
|---------------|---------------|---------------|
|     boot      |     kernel    |     rootfs    |
 以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。

2)烧写u-boot

    mw.b 82000000 ff 100000
    tftp 0x82000000 u-boot-hi3519.bin
    sf probe 0
    sf erase 0 100000
    sf write 82000000 0 100000    
    reset
    请注意,reset之后需要重新设置网络参数。

3)烧写内核

mw.b 82000000 ff 300000
tftp 82000000 uImage_hi3519
sf probe 0
sf erase 100000 300000
sf write 82000000 100000 300000

4)烧写文件系统

    mw.b 82000000 ff C00000
    tftp 0x82000000 rootfs_hi3519_64k.jffs2
    sf probe 0
    sf erase 400000 C00000
    sf write 82000000 400000 C00000


5)设置启动参数(注意linux-3.18.y kernel默认文件系统只读,需要在bootargs中加入rw选项,文件系统才可读写)

setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'
sa

emmc的烧录方式可以参考:

https://blog.csdn.net/zfenggo/article/details/102626141

hisi 3519 led控制:

 #define GPIO_DIR 0x1214C400  //value = 0xd0  12_4,12_6,12_7 will be output mode
#define GPIO_12_4_GREEN    0x1214C040
#define GPIO_12_7_RED      0x1214C200
#define GPIO_12_6_BLUE     0x1214C100
static int init_LED()
{
	//MUX
	writel(0x00,0x1204018c);
	writel(0x00,0x12040194);
	writel(0x00,0x12040198);
	//dir
	writel(0xd0,GPIO_DIR);
	return 0;
}
static int set_LED_off()
{
	writel(0x00,GPIO_12_6_BLUE);
	writel(0x00,GPIO_12_7_RED);
	return 0;
}
static int set_LED_MEGENTA()
{
	writel(0xFF,GPIO_12_6_BLUE);
	writel(0xFF,GPIO_12_7_RED);
	return 0;
}

海思平台处理流程框架图:
在这里插入图片描述

  1. 3519用到的交叉编译器: arm-hisiv600-linux
  2. Hi3519V101色彩空间转换总结: https://blog.csdn.net/simonforfuture/article/details/78806639
  3. Hi3519V101+ FCB-EV7520A(索尼机芯)
  4. hi3519 视频流支持的输入方式
typedef enum
{
    INPUT_MODE_MIPI         = 0x0,              /* mipi */
    INPUT_MODE_SUBLVDS      = 0x1,              /* SUB_LVDS */
    INPUT_MODE_LVDS         = 0x2,              /* LVDS */
    INPUT_MODE_HISPI        = 0x3,              /* HISPI */
    INPUT_MODE_CMOS         = 0x4,              /* CMOS */
    INPUT_MODE_BT1120       = 0x5,              /* CMOS */

    INPUT_MODE_BUTT
} input_mode_t;
  1. Hi3519V101支持的像素格式: sp422,sp420和YUV400
  2. VPSS(video process sub-system)支持对一幅输入图像进行统一预处理,如去噪、去
    隔行等,然后再对各通道分别进行缩放、锐化等处理,最后输出多种不同分辨率的图
    像。VPSS 单元支持的具体图像处理功能包括 FRC(Frame Rate Control)、Crop、NR
    (Noise Reduce)、Sharpen、LDC(Lens Distortion Correction)、Rotate、Cover/Overlay、
    Mosaic、Scale、Mirror/Flip、FishEye 等。
    在这里插入图片描述
    在这里插入图片描述
  3. VENC 模块,即视频编码模块。本模块支持多路实时编码,且每路编码独立,编码协
    议和编码 profile 可以不同。本模块支持视频编码同时,调度 Region 模块对编码图像内
    容进行叠加和遮挡
    VENC 模块的输入源包括三类:
    . 用户态读取图像文件向编码模块发送数据;
    . 视频输入(VIU)模块采集的图像经视频处理子系统(VPSS)发送到编码模块;
    . 视频输入(VIU)模块采集的图像直接发送到编码模块;
    在这里插入图片描述
发布了95 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ding283595861/article/details/103593240