海思Hi3519AV100 emmc flash方式 linux系统移植 hitool工具烧写

因为我这里的海思文档只有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
在这里插入图片描述
大功告成!!记录一帖~~

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值