海思3518ev300LiteOS编译调试烧录

海思3518ev300LiteOS编译调试烧录

3518ev300简介

LiteOS与linux大致相通,不过还是有很多的不同点:
就比如说Linux下面加载驱动是insmod xxx.ko,而LiteOS则是sdk_init.c 中显式调用驱动的初始化;
函数。还有就是linux一般使用dts文件可以直接配置管脚的频率,而LiteOS只能通过设备节点方式去设置;
uboot起始地址Linux0x42000000,LiteOS0x40000000;
以及一些gpio的控制方式,外设挂载方式等。
公司最近做海思3881wifi模块,使用的是3518ev300的底板调试,这里记录一下编译记录。

编译环境搭建

1.编译链安装—arm-himix100-linux.tgz
cp到Ubuntu:
tar -xvf arm-himix100-linux.tgz 解压
cd arm-himix100-linux 进入
./arm-himix100-linux.install 安装
source /etc/profile 生效交叉编译工具内部文件
2. SDK解压----Hi3518EV300_Hi3861L_SHC_V5.0.0.1.tgz
tar -xvf Hi3518EV300_Hi3861L_SHC_V5.0.0.1.tgz 解压
cd Hi3516EV200_SDK_V5.0.2.0 进入
./sdk.unpack 解包
sdk内部文件

编译

  1. 目录结构
    |-- drv # drv 目录
    | |-- extdrv # 板级外围驱动源代码
    | |-- interdrv # mipi,cipher 等驱动源代码
    |-- mpp # 存放单核媒体处理平台的目录
    | |-- component # mpp 组件
    | | |-- isp # isp 相关组件
    | |-- include # 头文件
    | |-- init # 内核模块的初始化源代码
    | |-- lib # 音视频媒体库文件
    | |-- sample # 样例源代码
    | |-- tools # 媒体处理相关工具
    | |-- cfg.mak # mpp 配置文件
    | |-- Makefile.param # mpp 全局编译选项
    | |-- Makefile. liteos.param # mpp liteos 编译选项
    |-- osal # 存放操作系统适配层的头文件和源文件的目录
    | |-- include # 存放操作系统适配层的头文件的目录
    | |-- liteos # 存放 liteos 系统适配层的源文件的目录
    |-- osdrv # 存放操作系统及相关驱动的目录
    | |-- opensource # opensource 源代码
    | | |-- uboot # uboot 源代码
    | |–platform
    | | |-- liteos # Huawei LiteOS 内核源代码
    | |-- pub # 编译好的镜像、工具、drv 驱动等
    | |-- tools # 工具源代码
    | |-- readme_cn.txt # osdrv 中文使用说明
    | |-- readme_en.txt # osdrv 英文使用说明
    | |-- … #
    | |-- Makefile # osdrv Makefile
    |-- package # 存放 SDK 各种压缩包的目录
    | |-- drv.tgz # drv 压缩包
    | |-- mpp.tgz # 媒体处理平台软件压缩包
    | |-- osal.tgz # 操作系统适配层源码压缩包
    | |-- osdrv.tgz #操作系统源码压缩包
    | |-- boot # 可供 FLASH 烧写的映像文件
    |-- scripts # 存放 shell 脚本的目录
    |-- sdk.cleanup # SDK 清理脚本
    |-- sdk.unpack # SDK 展开脚本*

  2. 整体编译
    cd Hi3516EV200_SDK_V5.0.2.0/osdrv
    修改目标芯片,这种方式可以一次编译出u-boot-hi3518ev300.bin与sample.bin。
    顶层makeile中选择主芯片

  3. Listeos编译
    单独编译liteos (以hi3516ev200为例):
    cd osdrv/platform/liteos
    tar -xf liteos.tgz
    cd liteos/
    cp tools/build/config/hi3518ev300_defconfig .config
    make menuconfig (如有需要,可根据需求进行功能配置)
    make

  4. uboot编译
    也可以单独编译
    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3518ev300_defconfig

  5. 输出
    编译之后在pub目录生成对应u-boot-hi3518ev300.bin与sample.bin。
    u-boot-hi3518ev300.bin:uboot文件
    sample.bin:LiteOS中这个文件我理解为Linux版本的kernel+rootfs

编译输出文件

  1. MPP示例编译

在编译 sample 之前请先编译 liteos 内核,MPP 业务和 Huawei LiteOS 一起生成烧到单板的 sample_xxx.bin 文件,详见 mpp/sample/liteos/app_init.c 中的代码。
cd Hi3516EV200_SDK_V5.0.2.0/mpp/sample/venc
make
sample_venc.bin:一个venc的demo工程
编译结果

烧录

  1. LIteOS下载烧录
    这里烧录上面编译好的u-boot-hi3518ev300.bin与sample.bin。
    启动参数:
    setenv bootcmd ‘sf probe 0;sf read 0x40000000 0x100000 0x900000; go 0x40000000
    setenv bootargs mem=512M console=ttyAMA0,115200 clk_ignore_unused rwroot=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(u-boot.bin),9M(kernel),6M(rootfs.jffs2)
    saveenv
    3518ev300LiteOS系统烧录启动参数保存重启,可以看到liteos成功启动。
    进入LiteOS
    2.linux系统烧录
    这里有别于之前的Linux的系统,Linux有要烧录uboot,kernel,roots三个文件
    启动参数:
    setenv bootargs ‘mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),10M(rootfs)’
    setenv bootcmd ‘sf probe 0; sf read 0x42000000 0x100000 0x400000;bootm 0x42000000’
    saveenv
    3518ev300Linux系统烧录## 最后
    每天进步一点
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读