海思Hi3531DV100开发环境搭建

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

ReleaseDoc\zh\01.software\board\Hi3531DV100 SDK 安装以及升级使用说明.txt
ReleaseDoc\zh\01.software\board\Hi35xxVx00 U-boot 移植应用开发指南.pdf
ReleaseDoc\zh\01.software\board\Hi35xxVx00 Linux 开发环境用户指南.pdf
readme.cn
[海思]–Hi3516aMpp开发环境配置
海思3536:kernel编译和mpp_single编译过程报错及解决方法

安装SDK

将路径Hi3531DV100R001C01SPC040\software\board下的SDKHi3531DV100_SDK_V1.0.4.0.tgz拷贝到Linux下,运行命令,

$ tar -zxvf Hi3531DV100_SDK_V1.0.4.0.tgz
$ cd Hi3531DV100_SDK_V1.0.4.0
$ ./sdk.unpack

SDK目录结构介绍,

	|--Hi3531D V100R001C0xSPC0xx_SDK.rar
	|	|--01.software
	|		|--board
	|			|--Hi3531D_SDK_Vx.x.x.x     
	|				|-- sdk.cleanup                 # SDK清理脚本
	|				|-- sdk.unpack                  # SDK展开脚本
	|				|-- osdrv                       # 存放操作系统及相关驱动的目录
	|				|   |-- opensource              # opensource源代码
	|				|   |   |-- busybox             # busybox源代码
	|				|   |   |-- kernel              # linux内核补丁文件
	|				|   |   |-- uboot               # uboot源代码
	|				|   |-- pub                     # 编译好的镜像、工具、drv驱动等
	|				|   |-- tools                   # linux工具源代码
	|				|   |-- readme_cn.txt           # osdrv使用说明(中文版)
	|				|   |-- readme_en.txt           # osdrv使用说明(英文版)
	|				|   |-- ......                  #
	|				|   `-- Makefile                # osdrv Makefile
	|				|-- package                     # 存放SDK各种压缩包的目录
	|				|   |-- osdrv.tgz               # linux内核/uboot/rootfs/tools源码压缩包
	|				|	|-- mpp.tgz                 # 媒体处理平台软件压缩包
	|				|   |-- drv.tgz                 # drv压缩包
	|				|   |-- osal.tgz                # osal压缩包	
	|				|   |-- rootfs_*.tgz            # rootfs压缩包
	|				|   |-- image *                 # 可供FLASH烧写的映像文件,如内核、根文件系统
	|				|-- scripts                     # 存放shell脚本的目录
	|				|-- drv                         # drv目录
	|				|-- osal                        # osal目录
	|				|    |-- include                # 存放操作系统适配层的头文件的目录
	|				|    |-- source                 # 存放操作系统适配层的源文件的目录
	|				|-- mpp                         # 存放媒体处理平台的目录
	|					|-- component               # 组件源代码 
	|					|-- extdrv                  # 板级外围驱动源代码
	|					|-- include                 # 对外头文件
	|					|-- ko                      # 内核模块
	|					|-- lib                     # release版本库以及音频库
	|					|-- linux.param		    # linux相关的全局编译选项 
	|					|-- Makefile.param          # mpp一些全局编译选项 
	|					|-- tools                   # 媒体处理相关工具
	|					`-- sample                  # 样例源代码
	|		
	|--arm-hisiv500-linux.tgz 			# uclibc交叉编译器压缩包
	|--arm-hisiv600-linux.tgz 			# glibc交叉编译器压缩包

安装交叉编译工具链

工具链有两种,目前采用uclibc版本的,比较小,百度网盘下载比较快,

  • arm-hisiv500-linux.tgz对应uclibc
  • arm-hisiv600-linux.tgz对应glibc

运行命令,

$ tar -zxvf arm-hisiv500-linux.tgz
$ gedit arm-hisiv500-linux.install
TOP_DIR=/etc/hisi-linux/x86-arm -> TOP_DIR=/home/qe/program/Hisilicon/hisi-linux/x86-arm
$ ./arm-hisiv500-linux.install
sorry, you must have super privilege!
1) I have root passwd	  3) Try again		    5) Aboart
2) I have sudo privilege  4) Ignore
#? 2
[sudo] password for qe:
$ cat /etc/profile
...
# Wed Dec 25 18:02:12 PST 2019
# Hisilicon Linux, Cross-Toolchain PATH
export PATH="/home/qe/program/Hisilicon/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin:$PATH" 
# 

readme.cn,编译sdk,

make OSDRV_CROSS=arm-hisiv600-linux PCI_MODE=master FLASH_TYPE=nand all

编译u-boot

注意xx表示3531d,搞了半天,

$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- hi3531d_nand_config
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux-

首先用excel制作reg info文件,然后更新生成烧录的boot镜像u-boot.bin

$ cd Hi3531DV100_SDK_V1.0.4.0/osdrv/tools/pc/uboot_tools/
$ cp osdrv/opensource/uboot/u-boot-2010.06/u-boot.bin .
$ ./mkboot.sh reg_info_hi3531d.bin u-boot.bin 

编译env tools时注释掉,

Hi3531DV100_SDK_V1.0.4.0/osdrv/opensource/uboot/u-boot-2010.06/include/linux/types.h:154:36: error: conflicting types for ‘uintmax_t’
 typedef u_int32_t                  uintmax_t;

编译内核

$ cd Hi3531DV100_SDK_V1.0.4.0/osdrv/opensource/kernel/linux-3.18.20
$ patch -p1 < ../hi3531dv100_for_linux_v3.18.y.patch 
$ make ARCH=arm hi3531d_nand_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- -j4
$ ls -l arch/arm/boot/
total 13308
drwxrwxr-x 2 qe qe    4096 Aug  7  2015 bootp
drwxrwxr-x 2 qe qe    4096 Dec 25 22:52 compressed
drwxrwxr-x 3 qe qe   36864 Dec 25 22:56 dts
-rwxrwxr-x 1 qe qe 6715424 Dec 25 22:52 Image
-rw-rw-r-- 1 qe qe    1648 Aug  7  2015 install.sh
-rw-rw-r-- 1 qe qe    3587 Dec 25 19:15 Makefile
-rwxrwxr-x 1 qe qe 3422352 Dec 25 22:52 zImage
-rw-rw-r-- 1 qe qe 3435538 Dec 25 22:52 zImage-dtb

编译mpp

遇到一些错误,待定位

$ cd mpp/
# export LIBC?=glibc
$ cd sample/
$ make
$ cd tools/
$ make
$ cd component/hdmi/sample/
$ make
$ cd component/pci/
$ make
# WARNING: "osal_remove_proc_entry" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
# WARNING: "PCIV_FirmWareGetPreProcCfg" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
# WARNING: "hios_mcc_setopt" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
# WARNING: "osal_printk" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
...
$ cd extdrv/
$ make
$ cd osal/source/kernel/
$ make

巨魔总结

我们遇到什么困难都不要怕,微笑着面对,战胜困难的唯一方法就是面对,奥利给!,欢迎加入巨魔的QQ群852283276

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值