前言:
关于海思HI3516EV200的SDK,官方有2个版本,一个是linux,一个是liteos,这里根据之前群友提供的sdk整理总结下,以防大家下载到错误的版本
linux sdk 版本为 Hi3516EV200R001C01SPC010:
链接: https://pan.baidu.com/s/1bJRVcm9DLD4RIL4zCzWMXA
提取码:702k
liteos sdk 版本为Hi3516EV200R002C05SPC010:
链接: https://pan.baidu.com/s/1LnN-E6ekdS1iryi3x89hNw
提取码:prkb
环境
- ubuntu 18.04.
- 海思官方Linux SDK
参考文件
1.Hi3516EV200_SDK_V1.0.1.0\package\osdrv\readme.cn
2. 提前搭建好交叉编译环境:arm-himix100-linux-gcc
1.osdrv 顶层 Makefile 使用说明
本目录下的编译脚本支持 arm-himix100-linux工具链对应uclibc库。具体命令如下(以hi3516ev200举例)
注意:
由于开源工具整改,部分开源工具不再提供源码包,客户编译OSDRV时需要自行下载:
a:linux-4.9.37.tar.gz (https://www.kernel.org/pub/)
将下载的 linux-4.9.37.tar.gz 存放到 osdrv的opensource/kernel目录中
b:yaffs2utils-0.2.9.tar.gz (https://github.com/dorigom/yaffs2utils/releases)
将下载的 yaffs2utils-0.2.9.tar.gz 存放到osdrv的tools/pc/mkyaffs2image/目录中
c:gdb-7.9.1.tar.gz (http://ftp.gnu.org/gnu/gdb/)
将下载的 gdb-7.9.1.tar.gz 存放到 osdrv的tools/board/gdb/目录中
d:ncurses-6.0.tar.gz ( http://ftp.gnu.org/gnu/ncurses/)
将下载的 ncurses-6.0.tar.gz 存放到 osdrv的tools/board/gdb/目录中
e:util-linux-2.31.tar.gz (https://www.kernel.org/pub/linux/utils/util-linux/v2.31)
将下载的 util-linux-2.31.tar.gz 存放到 osdrv的tools/pc/cramfs_tool/目录中
(1)编译整个osdrv目录:
注意:默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。
从linux开源社区下载v4.9.37版本的内核:
1)进入网站:www.kernel.org
2)选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面
3)选择linux/菜单项,进入子页面
4)选择kernel/菜单项,进入子页面
5)选择v4.x/菜单项,进入子页面
6)下载linux-4.9.37.tar.gz (或者linux-4.9.37.tar.xz)到osdrv/opensource/kernel目录下
make all
注意:由于Makefile中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用make all编译;
但可单独编译uboot,kernel;
可以传如下参数:
a, BOOT_MEDIA:spi(default) or emmc
b, CHIP:hi3516ev200(default) or hi3516ev300 or hi3518ev300 or hi3516dv200
c, 如果客户想要更换可以使用TARGET_XLSM=*.xlsm来指定所需要的u-boot表格文件
(2)清除整个osdrv目录的编译文件:
make OSDRV_CROSS=arm-himix100-linux clean
(3)彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:
make OSDRV_CROSS=arm-himix100-linux distclean
(4)单独编译kernel:
注意:单独编译内核之前请先阅读osdrv/opensource/kernel下的readme_cn.txt说明。
待进入内核源代码目录后,执行以下操作
cp arch/arm/configs/hi3516ev200_full_defconfig .config
(emmc启动时执行如下操作:cp arch/arm/configs/hi3516ev200_emmc_defconfig .config)
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage
(5)单独编译模块:
待进入内核源代码目录后,执行以下操作
cp arch/arm/configs/hi3516ev200_full_defconfig .config
(emmc启动时执行如下操作:cp arch/arm/configs/hi3516ev200_emmc_defconfig .config)
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- modules
(6)单独编译uboot:
注意:发布包默认按照DMEB板的配置发布,如果客户单板和DEMB板不一致,需要根据客户自己的单板环境修改uboot表格才能使用,否则可能导致uboot无法启动或者其他问题。
待进入boot源代码目录后,执行以下操作
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3516ev200_defconfig
(emmc启动时执行如下操作:make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3516ev200_emmc_defconfig)
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- -j 20