因为我这里的海思文档只有SPI NOR Flash方式的详细烧写步骤,没有emmc方式的,本文提供一个自己成功的案例仅供参考和记录
1. 准备SDK、安装交叉编译工具、编译osdrv
1.1 解压SDK包
将Hi3519AV100_SDK_Vx.x.x.x.tgz文件放入ubuntu系统下(window下解压会产生符号链接文件,导致文件夹体积过大)
tar -zxf Hi3519AV100_SDK_Vx.x.x.x.tgz
1.2 展开包内容
cd Hi3519AV100_SDK_Vx.x.x.x
./sdk.unpack(请用 root 或 sudo 权限执行)
1.3 安装arm交叉编译器编译osdrv
tar –xzf arm-himix200-linux.tgz
cd arm-himix200-linux
chmod +x arm-himix200-linux.install
./arm-himix200-linux.install
1.4 编译osdrv
先替换emmc的u-boot配置:
/osdrv/opensource/uboot/u-boot-2016.11/configs/hi3519av100_mmc_defconfig 替换上一级 .config文件后重新编译uboot
root@Ascend:~/hisi/Hi3519AV100_SDK_V2.0.1.0/osdrv/opensource/uboot/u-boot-2016.11# cp configs/hi3519av100_mmc_defconfig .config
cd ~/hisi/Hi3519AV100_SDK_V2.0.1.0/osdrv/
make OSDRV_CROSS=arm-himix200-linux CHIP=hi3519av100 BOOT_MEDIA=emmc all
参数含义:
- OSDRV_CROSS:默认使用arm-himix200-linux编译器
- CHIP:芯片类型默认为hi3519av100
- BOOT_MEDIA默认为spi
设置为nand时,使用Nand Flash;
设为spi时,使用SPI Nor Flash或SPI Nand Flash;
设置为emmc时使用EMMC
1.5 生成的文件目录:/root/hisi/Hi3519AV100_SDK_V2.0.1.0/osdrv/pub/smp_image_glibc/
我自己编译ok的文件及hitool配置:gitee链接
2.使用HiTool工具烧写
将ubuntu生成的osdrv文件目录拷到windows下(1.5步骤中的文件夹),注意用到的rootfs为ext4结尾的文件,长度要超过文件本身大小
配置如下
<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info ProgrammerFile="">
<Part Sel="1" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="1M" SelectFile="D:\Linux\share\board\hi3519av100\emmc\u-boot-hi3519av100.bin"/>
<Part Sel="1" PartitionName="kernel" FlashType="emmc" FileSystem="none" Start="1M" Length="5M" SelectFile="D:\Linux\share\board\hi3519av100\emmc\uImage_hi3519av100_smp"/>
<Part Sel="1" PartitionName="rootfs" FlashType="emmc" FileSystem="ext3/4" Start="6M" Length="32M" SelectFile="D:\Linux\share\board\hi3519av100\emmc\rootfs_hi3519av100_32M.ext4"/>
</Partition_Info>
点击烧写,板子重新上电
耐心等了30分钟才烧好,中间出现了好几次错误,要耐心根据错误提示去找之前操作是否有问题
3.启动命令
3.1 使用串口工具连接重新上电,启动后迅速进入boot模式
3.2 设置启动命令
注意这里的boot kernel rootfs要根据烧写时设置的长度按照实际设置
setenv bootargs 'mem=1024M console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootfstype=ext4 blkdevparts=mmcblk0:1M(boot),5M(kernel),7200M(rootfs),-(user)'
setenv bootcmd 'mmc read 0 0x22000000 800 2000; bootm 0x22000000'
saveenv
检查是否生效
没问题之后重启:reset
大功告成!!记录一帖~~