(1)海思Hi3531DV100开发环境搭建

海思Hi3531DV100开发环境搭建(1)

(本方案在linkpi开发板Hi3531Dv100上测试)

一 安装SDK

1、Hi3531DV100 SDK包位置
在"Hi3531DV100_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531DV100_SDK_Vx.x.x.x.tgz的文件,该文件就是Hi3531DV100的软件开发包。
拷贝到Linux下,运行命令,
sudo tar -zxvf Hi3531D_SDK_V1.0.3.0.tgz
cd Hi3531D_SDK_V1.0.3.0/
sudo ./sdk.cleanup清楚SDK
sudo ./sdk.unpack解压SDK
返回Hi3531D_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。
如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。
问题
海思SDK安装时,无法运行sdk.unpack
原因
BASH 和 DASH 的问题。
Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,
它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准。
解决
方法一
1、vim scripts/common.sh; 第一行, #!/bin/sh 为 #!/bin/bash
2、vim sdk.unpack第一行, #!/bin/sh 为 #!/bin/bash, 也可以正常解压
方法二

sudo dpkg-reconfigure dash
Using dash as the system shell will improve the system's overall performance. It does not alter the shell presented to interactive users.
Use dash as the default system shell (/bin/sh)?

选择no
备注
两种方式都可以解决问题,但是海思的SDK中很多sh文件,逐个修改很麻烦,用第二种方式修改系统,一劳永逸!
原文链接:https://blog.csdn.net/qq_29350001/article/details/52447485

SDK目录介绍:

|--Hi3531D V100R001C0xSPC0xx_SDK.rar
|	|--01.software
|		|--board
|			|--Hi3531D_SDK_Vx.x.x.x     
|				|-- sdk.cleanup                 # SDK清理脚本
|				|-- sdk.unpack                  # SDK展开脚本
|				|-- osdrv                       # 存放操作系统及相关驱动的目录
|				|   |-- opensource              # opensource源代码
|				|   |   |-- busybox             # busybox源代码
|				|   |   |-- kernel              # linux内核补丁文件
|				|   |   |-- uboot               # uboot源代码
|				|   |-- pub                     # 编译好的镜像、工具、drv驱动等
|				|   |-- tools                   # linux工具源代码
|				|   |-- readme_cn.txt           # osdrv使用说明(中文版)
|				|   |-- readme_en.txt           # osdrv使用说明(英文版)
|				|   |-- ......                  #
|				|   `-- Makefile                # osdrv Makefile
|				|-- package                     # 存放SDK各种压缩包的目录
|				|   |-- osdrv.tgz               # linux内核/uboot/rootfs/tools源码压缩包
|				|	|-- mpp.tgz                 # 媒体处理平台软件压缩包
|				|   |-- drv.tgz                 # drv压缩包
|				|   |-- osal.tgz                # osal压缩包	
|				|   |-- rootfs_*.tgz            # rootfs压缩包
|				|   |-- image *                 # 可供FLASH烧写的映像文件,如内核、根文件系统
|				|-- scripts                     # 存放shell脚本的目录
|				|-- drv                         # drv目录
|				|-- osal                        # osal目录
|				|    |-- include                # 存放操作系统适配层的头文件的目录
|				|    |-- source                 # 存放操作系统适配层的源文件的目录
|				|-- mpp                         # 存放媒体处理平台的目录
|					|-- component               # 组件源代码 
|					|-- extdrv                  # 板级外围驱动源代码
|					|-- include                 # 对外头文件
|					|-- ko                      # 内核模块
|					|-- lib                     # release版本库以及音频库
|					|-- linux.param		    # linux相关的全局编译选项 
|					|-- Makefile.param          # mpp一些全局编译选项 
|					|-- tools                   # 媒体处理相关工具
|					`-- sample                  # 样例源代码
|		
|--arm-hisiv500-linux.tgz 			# uclibc交叉编译器压缩包
|--arm-hisiv600-linux.tgz 			# glibc交叉编译器压缩包

二 在linux服务器上安装交叉编译器

1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):
获取arm-hisiv500-linux.tgz文件,使用命令:tar -zxf arm-hisiv500-linux.tgz解压文件,进入arm-hisiv500-linux目录,
运行chmod +x arm-hisiv500-linux.install,然后运行./arm-hisiv500-linux.install即可。
2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):
获取arm-hisiv600-linux.tgz文件,使用命令:tar -zxf arm-hisiv600-linux.tgz解压文件,进入arm-hisiv600-linux目录,
运行chmod +x arm-hisiv600-linux.install,然后运行./arm-hisiv600-linux.install即可。
3) 执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。
出现错误1

doctor@ubuntu:~/workspace/Hisi/arm-hisiv500-linux$ arm-hisiv500-linux-gcc -v
arm-hisiv500-linux-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

在这里插入图片描述
在交叉编译工具链的文件夹中使用file命令,可以看出这个交叉编译工具链是32位的,我这里使用的是64位的ubuntu,所以要打32位的补丁才能正常使用。

apt-get install lib32ncurses5 
apt-get install lib32z1

出现错误2

doctor@ubuntu:~/workspace/Hisi/arm-hisiv500-linux$ arm-hisiv500-linux-gcc -v
arm-hisiv500-linux-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决办法

apt-get install lib32z1 lib32ncurses5
apt-get install lib32stdc++6

运行arm-hisiv500-linux-gcc -v
可以看到交叉编辑的版本号
gcc version 4.9.4 20150629 (prerelease) (Hisilicon_v500_20170922)
说明安装成功

三 编译U-boot

当所有以上移植步骤完成后,就可以编译 U-boot,操作如下:
步骤 1. 配置编译环境
make ARCH=arm CROSS_COMPILE=arm-hisivXXX-linux- hi35xx_config
对于Hi3531DV100
make ARCH=arm CROSS_COMPILE=arm-hisivXXX-linux- hi3531d_nand_config

如果没有配置环境变量,需要把编辑器的地址添加进去

make ARCH=arm CROSS_COMPILE=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux- hi3531d_nand_config

make ARCH=arm CROSS_COMPILE=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-
									   说明

Hi3531DV100/Hi3521DV100:其中 hi35xx_config 为支持 SPI Nor Flash 和 SPI Nand Flash 的
配置,
Hi3531DV100 还支持 Parallel NAND Flash,hi3531d_nand_config 为 Parallel NAND Flash 的配
置。

步骤 2. 编译 U-boot
make ARCH=arm CROSS_COMPILE=arm-hisivXXX-linux-
编译成功后,将在u-boot目录下生成u-boot.bin。
本文:
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux-

                                           说明:
其中 CROSS_COMPILE 表示工具链。文档中统一以 CROSS_COMPILE=arm-hisivXXX-linux-
来表示两种情况。
Hi35xx_V100R001C01SPCxxx 对应 uclibc,使用 uclibc 工具链时,CROSS_COMPILE=armhisiv500-linux-。
Hi35xx_V100R001C02SPCxxx 对应 glibc,使用 glibc 工具链时,CROSS_COMPILE=armhisiv600-linux-。

编译成功后,将在u-boot目录下生成u-boot.bin。
这一步生成的 u-boot.bin 只是一个中间件,并不是最终在单板上执行的 U-boot 镜像。

3.1 配置 DDR 存储器

在 Windows 下打开 SDK 中的“osdrv/tools/pc/uboot_tools/”目录下的配置表格。当选用
不同的 DDR SDRAM 时,需要针对不同器件的特性,对配置工作表中的标签页
【mddrc_dmc0】、【mddrc_dmc1】、【mddrc_phy0】和【mddrc_phy1】进行修改。
参考文档<Hi3531DV100 DDR3 参数配置方法.pdf>

3.2配置管脚复用

如果管脚复用有变化,还需要对配置表格中的标签页【muxctrl_reg】进行修改。

3.3生成最终使用的 U-boot 镜像

步骤 1. 完成配置表格的修改后,保存表格。
步骤 2. 单击表格第一个标签页上的按钮【Generate reg bin file】或者使用 hiregbin 工具(详细
使用方法请参考 osdrv/ tools/pc/uboot_tools/ hiregbin-v5.0.0.tgz 压缩包里的 readme 文
件),生成临时文件 reg_info.bin。
步骤 3. 将临时文件 reg_info.bin 和编译 u-boot 得到的 u-boot.bin 都拷贝到 SDK 中的
“osdrv/tools/pc/uboot_tools/”目录下,执行命令:
./mkboot.sh reg_info.bin u-boot-hi35xx.bin
其中 u-boot-hi35xx.bin 就是能够在单板上运行的 U-boot 镜像。
如果出现错误:
sudo: ./mkboot.sh:找不到命令
解决办法:
右击mkboot.sh文件,打开属性———>权限——>勾选允许作为程序执行文件
退出即可
重新运行./mkboot.sh reg_info.bin u-boot-hi35xx.bin,问题已解决

四 编译osdrv

4.1.osdrv 顶层 Makefile 使用说明

本目录下的编译脚本支持选用下文提到的两种工具链中的任何一种进行编译,因此编译时需要带上一个编译参数以指定对应的工具链 – arm-hisiv500-linux 和 arm-hisiv600-linux。其中,arm-hisiv500-linux工具链对应uclibc库,arm-hisiv600-linux工具链对应glibc库。具体命令如下

(1)加载内核源码:
注意:默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。
从linux开源社区下载v3.18.20版本的内核:
1)进入网站:www.kernel.org
2)选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面
3)选择linux/菜单项,进入子页面
4)选择kernel/菜单项,进入子页面
5)选择v3.x/菜单项,进入子页面
6)下载linux-3.18.20.tar.gz (或者linux-3.18.20.tar.xz)到osdrv/opensource/kernel目录下:
解压到该文件夹
sudo tar -zxvf linux-3.18.20.tar.xz

(2)打补丁
步骤 1. 将下载的 linux-3.18.20.tar.gz 存放到 hi35xx SDK 发布包的 osdrv/opensource/kernel 目录

步骤 2. 在 linux 服务器中进入 hi35xx SDK 发布包 osdrv 的根目录,执行如下命令:

cd opensource/kernel
tar -zxf linux-3.18.20.tar.gz
mv linux-3.18.20 linux-3.18.y
cd linux-3.18.y
patch -p1 < ../hi3xx_for_linux_v3.18.y.patch
cd ../

(3)编译整个osdrv目录:
make OSDRV_CROSS=arm-hisiv500-linux all
或者
make OSDRV_CROSS=arm-hisiv600-linux all
本文使用
make OSDRV_CROSS=arm-hisiv500-linux all

如果整个编译会出现错误:
compr_zlib.c:39:18: fatal error: zlib.h: 没有那个文件或目录
导致编译中断,原因是没有安装zlib包,安装:
sudo apt-get install zlib1g-dev

(4)配置内核
配置内核的操作步骤如下:

步骤 1. 手动拷贝.config 文件:

$cd kernel/linux-3.18.y
$cp arch/arm/configs/hi35xx_full_defconfig .config

本文使用

$cd kernel/linux-3.18.y
$cp arch/arm/configs/hi3531dv100_full_defconfig .config

对于Hi3531DV100
$cp arch/arm/configs/hi3531d_nand_defconfig .config
Hi3531DV100/Hi3521DV100:其中 hi35xx_full_defconfig 为支持 SPI Nor Flash 和 SPI Nand
Flash 的配置。
Hi3531DV100 还支持 Parallel Nand Flash,hi3531d_nand_defconfig 为支持 Parallel Nand Flash
的配置。

说明:

(2)清除整个osdrv目录的编译文件:
	make OSDRV_CROSS=arm-hisiv500-linux clean
	或者
	make OSDRV_CROSS=arm-hisiv600-linux clean
(3)彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:
	make OSDRV_CROSS=arm-hisiv500-linux distclean
	或者
	make OSDRV_CROSS=arm-hisiv600-linux distclean)

步骤 2. 用户通过“make menuconfig”进行内核配置:
$make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- menuconfig
本文使用
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig
步骤 3. 选择需要的模块。
步骤 4. 选择完毕后,保存并退出。

(4)编译内核并生成内核镜像 uImage
注意:单独编译内核之前请先阅读osdrv/opensource/kernel下的readme_cn.txt说明。
配置保存后,可直接输入“make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linuxuImage 命令编译内核生成镜像,此时需要等待几分钟。

		如果编译过程中出现错误,按顺序执行以下命令:
		make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- clean
		make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- menuconfig
		make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- uImage
		
		hi3531d_xxx_defconfig参数设置说明:
		为hi3531d_full_defconfig时,使用SPI Nor Flash或SPI Nand Flash,PCIE选择主片模式;
		为hi3531d_full_slave_defconfig时,使用SPI Nor Flash或SPI Nand
		Flash,PCIE选择从片模式;
		为hi3531d_nand_defconfig时,使用Nand Flash,PCIE选择主片模式;
		为hi3531d_nand_slave_defconfig时,使用Nand Flash,PCIE选择从片模式;

4.2整个osdrv目录结果分析

进入osdrv,第一次make distclean之后,终端执行命令tree osdrv/

osdrv/
├── Makefile --------------------------------- osdrv目录编译脚本
├── opensource ------------------------------- 存放各种开源源码目录
│ ├── busybox ------------------------------ 存放busybox源代码的目录
│ │ └── busybox-1.20.2.tgz
│ ├── kernel ------------------------------- 存放kernel源代码的目录
│ │ └── linux-3.4.y.tgz
│ ├── toolchain ---------------------------------- 存放工具链的目录
│ │ ├── arm-hisiv300-linux --------------------- 交叉编译工具链
│ │ │ ├── arm-hisiv300-linux.tar.bz2
│ │ │ ├── cross.install.v300
│ │ │ └── runtime_lib 【有很多以a开头的文件夹,里面全是lib.tgz文件】
│ │ │ ├── a7_hard_neon-vfpv4
│ │ │ │ └── lib.tgz
│ │ │ ├── a7_soft
│ │ │ │ └── lib.tgz
│ │ └── arm-hisiv400-linux --------------------- 交叉编译工具链
│ │ ├── arm-hisiv400-linux.tar.bz2
│ │ ├── cross.v400.install
│ │ └── runtime_lib
│ │ ├── a7_hard_neon-vfpv4
│ │ │ └── lib.tgz
│ │ ├── a7_soft
│ │ │ └── lib.tgz
│ └── uboot -------------------------------------- 存放uboot源代码的目录
│ └── u-boot-2010.06.tgz
├── pub ------------------------------------------- 存放各种镜像的目录【从这里可以看出,原本pub是空的,直到make all编译完成后里面才有东西】
├── readme_cn.txt
├── readme_en.txt
├── rootfs_scripts-------------------------------- 存放根文件系统制作脚本
│ └── rootfs.tgz
└── tools --------------------------------------------- 存放各种工具的目录
├── board ----------------------------------------- 各种单板上使用工具
│ ├── e2fsprogs ---------------------------------
│ │ ├── e2fsprogs-1.41.11.tar.gz
│ │ └── Makefile
│ ├── ethtools
│ │ ├── ethtool_6.orig.tar.gz
│ │ └── Makefile
│ ├── gdb
│ │ ├── gdb-7.6.tar.bz2
│ │ ├── Makefile
│ │ └── ncurses-5.9.tar.gz
│ ├── hifat -------------------------------------FAT文件系统制作工具
│ │ ├── glibc
│ │ │ ├── himount_api.h
│ │ │ ├── how_to_use_[chs].txt
│ │ │ ├── how_to_use_[en].txt
│ │ │ ├── shared
│ │ │ │ ├── himount
│ │ │ │ ├── libfs_lib.so
│ │ │ │ ├── libfuse.so
│ │ │ │ ├── libfuse.so.2
│ │ │ │ ├── libfuse.so.2.8.3
│ │ │ │ ├── libhimount_api.so
│ │ │ │ ├── libsdparm.so
│ │ │ │ ├── libulockmgr.so
│ │ │ │ ├── libulockmgr.so.1
│ │ │ │ └── libulockmgr.so.1.0.1
│ │ │ ├── src
│ │ │ │ └── hifat-1.0-glibc.tgz
│ │ │ └── static
│ │ │ ├── himount
│ │ │ └── libhimount_api.a
│ │ └── uclibc
│ │ ├── himount_api.h
│ │ ├── how_to_use_[chs].txt
│ │ ├── how_to_use_[en].txt
│ │ ├── shared
│ │ │ ├── himount
│ │ │ ├── libfs_lib.so
│ │ │ ├── libfuse.so
│ │ │ ├── libfuse.so.2
│ │ │ ├── libfuse.so.2.8.3
│ │ │ ├── libhimount_api.so
│ │ │ ├── libsdparm.so
│ │ │ ├── libulockmgr.so
│ │ │ ├── libulockmgr.so.1
│ │ │ └── libulockmgr.so.1.0.1
│ │ ├── src
│ │ │ └── hifat-1.0-uclibc.tgz
│ │ └── static
│ │ ├── himount
│ │ └── libhimount_api.a
│ ├── mkdosfs ----------------------------------- mkdosfs工具
│ │ ├── dosfstools-3.0.26.tar.gz
│ │ └── Makefile
│ ├── mtd-utils --------------------------------- flash裸读写工具集
│ │ ├── Makefile
│ │ └── mtd-utils-1.5.0.tar.bz2
│ ├── reg-tools-1.0.0 --------------------------- 寄存器读写工具
│ │ ├── include
│ │ │ ├── common ---------------------------- 里面是公共头文件
│ │ │ └── utils ----------------------------- 里面是utils的头文件
│ │ ├── Makefile ------------------------------ tools的makefile
│ │ └── source
│ │ ├── common ---------------------------- 里面是公共c源码
│ │ ├── tools ----------------------------- 里面是tools的c源码
│ │ └── utils ----------------------------- 里面是utils的c源码
│ └── udev-164 --------------------------- udev工具集
│ ├── Makefile
│ ├── rootfs
│ │ ├── bin
│ │ └── etc
│ │ └── udev
│ ├── rootfs.tar.bz2
│ └── udev-164.tar.bz2
├── Makefile
└── pc ------------------------------------------ 各种pc上使用工具
├── cramfs_tool ----------------------------- cramf文件系统制作工具
│ ├── Makefile
│ └── util-linux-2.22-rc2.tar.bz2
├── ext4_utils
│ ├── ext4_utils.tar.bz2
│ └── Makefile
├── jffs2_tool ----------------------------- jffs2文件系统制作工具
│ ├── lzo-2.09.tar.gz
│ ├── Makefile
│ └── mtd-utils-1.5.0.tar.bz2
├── lzma_tool ------------------------------ lzma压缩工具
│ ├── lzma-4.32.7.tar.gz
│ └── Makefile
├── mkimage_tool --------------------------- uImage制作工具
│ ├── fastboot.tar.bz2
│ └── Makefile
├── mkyaffs2image ------------------------- yaffs2文件系统制作工具
│ ├── Makefile
│ └── mkyaffs2image.tar.bz2
├── nand_production ------------------------ nand量产工具
│ ├── nand_production_hitool
│ │ └── readme
│ └── nand_production_linux
│ ├── spinand_product
│ └── spinand_readme.txt
├── squashfs4.2 ------------------------- squashfs文件系统制作工具
│ ├── Makefile
│ ├── squashfs4.2.tar.bz2
│ ├── xz-5.0.4.tar.bz2
│ └── zlib-1.2.7.tar.bz2
├── ubifs_config ---------------------------ulifs文件系统配置工具
│ ├── ubi_hi3516cv200.cfg
│ ├── ubi_hi3518ev200.cfg
│ └── ubi_hi3518ev201.cfg
├── uboot_tools---------------------------- uboot镜像制作工具、xls文件及ddr初始化脚本、Fastboot工具
│ ├── Hi3516CV200-DEMO-uboot-DDR3-DDRC200MHz-256MB-16bit-CPU600MHz-AXI200MHz.log
│ ├── Hi3516CV200-DMEB-uboot-DDR3-DDRC200MHz-256MB-16bit-CPU600MHz-AXI200MHz.xls
│ ├── Hi3518EV200-DMEB-uboot-DDR2-DDRC180MHz-64MB-16bit-CPU540MHz-AXI200MHz.log
│ ├── Hi3518EV200-DMEB-uboot-DDR2-DDRC180MHz-64MB-16bit-CPU540MHz-AXI200MHz.xls
│ ├── Hi3518EV201-DMEB-uboot-DDR2-DDRC180MHz-32MB-16bit-CPU540MHz-AXI200MHz.log
│ ├── Hi3518EV201-DMEB-uboot-DDR2-DDRC180MHz-32MB-16bit-CPU540MHz-AXI200MHz.xls
│ ├── mkboot.sh
│ ├── readme
│ ├── reg_info_hi3516cv200.bin
│ ├── reg_info_hi3518ev200.bin
│ └── reg_info_hi3518ev201.bin
└── zlib
├── Makefile
└── zlib-1.2.7.tar.bz2

原文链接:https://blog.csdn.net/wytzsjzly/article/details/82951747

分析pub的目录结构

编译完成osdrv之后,进入osdrv目录:执行命令tree pub 【编译完后的镜像放在/osdrv/pub目录下】

pub
├── bin
│   ├── board_uclibc -------------------- hisiv300编译出的单板工具
│   │   ├── ethtool
│   │   ├── flashcp
│   │   ├── flash_erase
│   │   ├── flash_otp_dump
│   │   ├── flash_otp_info
│   │   ├── gdb-arm-hisiv300-linux
│   │   ├── hifat -------------------------- hifat工具
│   │   │   ├── himount_api.h
│   │   │   ├── how_to_use_[chs].txt
│   │   │   ├── how_to_use_[en].txt
│   │   │   ├── shared
│   │   │   │   ├── himount
│   │   │   │   ├── libfs_lib.so
│   │   │   │   ├── libfuse.so
│   │   │   │   ├── libfuse.so.2
│   │   │   │   ├── libfuse.so.2.8.3
│   │   │   │   ├── libhimount_api.so
│   │   │   │   ├── libsdparm.so
│   │   │   │   ├── libulockmgr.so
│   │   │   │   ├── libulockmgr.so.1
│   │   │   │   └── libulockmgr.so.1.0.1
│   │   │   ├── src
│   │   │   │   └── hifat-1.0-uclibc.tgz
│   │   │   └── static
│   │   │   ├── himount
│   │   │   └── libhimount_api.a
│   │   ├── mtd_debug
│   │   ├── nanddump
│   │   ├── nandtest
│   │   ├── nandwrite
│   │   └── sumtool
│   └── pc 【各种pc工具 】
│   ├── lzma --------------------------------------- lzma压缩工具
│   ├── make_ext4fs -------------------------------- ext4文件系统制作工具
│   ├── mkfs.cramfs -------------------------------- cramf文件系统制作工具
│   ├── mkfs.jffs2 ------------------------------------ jffs2文件系统制作工具
│   ├── mkimage ------------------------------------ uImage制作工具
│   ├── mksquashfs --------------------------------- squashfs文件系统制作工具
│   └── mkyaffs2image100 ------------------------ yaffs2文件系统制作工具
├── image_uclibc --------------------------------------- hisiv300编译出的镜像文件
│   ├── rootfs_hi3518ev200_128k.jffs2 ------------128K jffs2文件系统镜像
│   ├── rootfs_hi3518ev200_256k.jffs2 ----------- 256K jffs2文件系统镜像
│   ├── rootfs_hi3518ev200_2k_4bit.yaffs2 ------ yaffs 文件系统镜像
│   ├── rootfs_hi3518ev200_32M.ext4 ------------ ext4 文件系统镜像
│   ├── rootfs_hi3518ev200_64k.jffs2 ------------- 64K jffs文件系统镜像
│   ├── u-boot-hi3518ev200.bin -------------------- uboot镜像
│   └── uImage_hi3518ev200 ----------------------- kernel镜像
└── rootfs_uclibc.tgz ------------------------ hisiv300编译出的rootfs文件系统

原文链接:https://blog.csdn.net/wytzsjzly/article/details/82951747

总结:编译整个osdrv的目的是为了生成相应的uboot,kernel,yaffs以下载到开发板上

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值