SDK 海思Hi3516EV200R001C01SPC012 (我没有、不知道、别找我) 对应的交叉编译工具链 arm-himix100-linux (我没有、不知道、别找我) 按照其中的说明安装交叉编译工具链、解压源码等
hisi_sdk 为海思官方sdk文件
请自行拷贝以下文件
Hi3516EV200R001C01SPC012.rar -> Hi3516EV200R001C01SPC012\01.software\board\Hi3516EV200_SDK_V1.0.1.2.tgz -> Hi3516EV200_SDK_V1.0.1.2\package\mpp.tgz -> mpp
这个目录下的 include, ko, lib 三个目录
hisi_sample 为海思官方例程 请自行拷贝以下文件 Hi3516EV200R001C01SPC012.rar -> Hi3516EV200R001C01SPC012\01.software\board\Hi3516EV200_SDK_V1.0.1.2.tgz -> Hi3516EV200_SDK_V1.0.1.2\package\mpp.tgz -> mpp\sample\
安装海思交叉编译工具链并在 CMakeLists.txt 进行设置
mkdir ./build
cd ./build
cmake ../
make
img目录下为我编译好的镜像 spi_nor_flash_16mb.bin 为 16MB spi nor flash 的合并镜像,可以一次性完整烧写 u-boot-hi3516ev300.bin、kernel.bin、rootfs_uclibc_64k.jffs2 为独立镜像,须按地址独立烧写
独立镜像烧写地址
文件名 | 地址 |
---|---|
u-boot-hi3516ev300.bin | 0x00000000 |
kernel.bin | 0x00100000 |
rootfs_uclibc_64k.jffs2 | 0x00500000 |
0-0x100000用于存放uboot和uboot环境变量 kernel和rootfs的烧写地址可以在0x100000以后灵活调整,如果修改了烧写地址,uboot的bootargs记得做相应修改
烧写方法灵活多样,flash内有uboot的可以直接用uboot命令烧写,没有uboot的(如不小心全片擦除、全新flash、flash内数据损坏等)flash可以用sdk内的烧写工具或拆下flash用烧写器进行烧写。无论哪种方法请自行百度或查阅sdk内相关文档,这里不再赘述。
烧写完成后需设置uboot环境变量 输入以下命令设置环境变量,保存并重启,正常情况都会成功
setenv bootargs 'mem=64M console=ttyAMA0,115200 clk_ignore_unused rw root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(u-boot.bin),4M(kernel),8M(rootfs.jffs2)'
setenv bootcmd 'sf probe 0; sf read 40000000 100000 400000; bootm 40000000'
saveenv
reset
输入以下命令启动网卡、设置IP、网关等
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.1.2 netmask 255.255.255.0
route add default gw 192.168.1.1
安装nfs server,在开发板上挂载nfs(土豪可以用NAS之类的,普通人用linux虚拟机)
mount -t nfs -o nolock 192.168.1.3:/home/nfs /tmp/nfs
在nfs server的目录内准备上文提到的ko、lib目录,以及要运行的程序,输入以下命令加载ko
cd /tmp/nfs/ko
./load3516ev300 -i -sensor0 imx335
load3516ev300 脚本中的内存可以自行修改,但必须和bootargs的mem保持一致
输入以下命令设置环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/nfs/lib
运行你的程序
懒人做法:上述必要的操作写在启动脚本里,lib和ko放在jffs文件系统内,一劳永逸
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。