IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 海思3516cv500开发指南 -> 正文阅读

[开发工具]海思3516cv500开发指南

1.安装sdk包:解压完运行./sdk.unpack
2.安装himix200交叉编译链:

tar -xzf arm-himix200-linux.tgz
chmod +x arm-himix200-linux.install
./arm-himix200-linux.install

运行结果

Installing HuaWei LiteOS Linux at /opt/hisi-linux/x86-arm
mkdir: created directory '/opt/hisi-linux'
mkdir: created directory '/opt/hisi-linux/x86-arm'
mkdir: created directory '/opt/hisi-linux/x86-arm/arm-himix200-linux'
Extract cross tools ...
export path /opt/hisi-linux/x86-arm/arm-himix200-linux/bin
access control disabled, clients can connect from any host

执行

export path=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin
source /etc/profile

测试:

arm-himix200-linux-gcc -v

运行结果:

Using built-in specs.
COLLECT_GCC=arm-himix200-linux-gcc
COLLECT_LTO_WRAPPER=/opt/hisi-linux/x86-arm/arm-himix200-linux/host_bin/../libexec/gcc/arm-linux-gnueabi/6.3.0/lto-wrapper
Target: arm-linux-gnueabi
Configured with: /home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/src/gcc-6.3.0/configure --host=i386-redhat-linux --build=i386-redhat-linux --target=arm-linux-gnueabi --prefix=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/install --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --disable-nls --enable-clocale=gnu --enable-extra-hisi-multilibs --with-sysroot=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/install/target --with-build-sysroot=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/install/target --with-gmp=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/obj/host-libs/usr --with-mpfr=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/obj/host-libs/usr --with-mpc=/home/sying/SDK_CPU_UNIFIED/build/script/arm-himix200-linux/arm_himix200_build_dir/obj/host-libs/usr --enable-libgomp --disable-libitm --enable-poison-system-directories --with-pkgversion='HC&C V100R002C00B027_20181107'
Thread model: posix
gcc version 6.3.0 (HC&C V100R002C00B027_20181107)

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

make all

注意:由于Makefile中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用make all编译;
但可单独编译uboot,kernel;
下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

提示arm-hisix200-linux-gcc: command not found的解决办法:

export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH
export LC_ALL=C

系统编译linux kernel时提示,“mkimage” command not found – U-Boot images will not be built的解决办法:

sudo apt-get install u-boot-tools

报错configure: error: missing one or more dependencies的解决办法:https://blog.csdn.net/cat8162/article/details/91414660

编译成功:

...
Operation success complete. 488 objects in 29 directories 2616 NAND pages
Input parameter: pagetype: 2(4K), ecctype: 4(24bits/1K)
~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv
chmod 644 /home/zhanglu/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv/pub/hi3516dv300_spi_smp_image_glibc/rootfs_hi3516dv300_4k_24bit.yaffs2
find /home/zhanglu/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv/pub/rootfs_glibc/ -name '*svn' | xargs rm -rf
pushd /home/zhanglu/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv/pub/rootfs_glibc; chmod +w usr/bin -R; chmod +w usr/sbin -R; chmod +w sbin -R; popd
~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv/pub/rootfs_glibc ~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv
~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv
pushd /home/zhanglu/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv/pub;tar czf rootfs_glibc.tgz rootfs_glibc;rm rootfs_glibc -rf;popd
~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv/pub ~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv
~/hisi/Hi3516CV500_SDK_V2.0.1.0/osdrv
---------finish osdrv work

编译后生成的两个文件:
/Hi3516CV500_SDK_V2.0.1.0/osdrv/opensource/kernel/linux-4.9.y-smp/arch/arm/boot/uImage
/Hi3516CV500_SDK_V2.0.1.0osdrv/opensource/uboot/u-boot-2016.11/u-boot-hi3516dv300.bin

(7)制作文件系统镜像:
在osdrv/pub/中有已经编译好的文件系统,因此无需再重复编译文件系统,只需要根据单板上flash的规格型号制作文件系统镜像即可。

SPI NOR Flash使用jffs2格式的镜像,制作jffs2镜像时,需要用到SPI NOR Flash的块大小。这些信息会在uboot启动时
会打印出来。建议使用时先直接运行mkfs.jffs2工具,根据打印信息填写相关参数。
下面以块大小为64KB为例:
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/rootfs_uclibc_64k.jffs2
或者
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc -l -e 0x10000 -o osdrv/pub/rootfs_glibc_64k.jffs2

	Nand Flash使用yaffs2格式的镜像,制作yaffs2镜像时,需要用到nand flash的pagesize和ecc。这些信息会在uboot启动时会打
印出来。建议使用时先直接运行mkyaffs2image工具,根据打印信息填写相关参数。
下面以并口NAND的2KB pagesize、4bit ecc为例:
	osdrv/pub/bin/pc/mkyaffs2image610 osdrv/pub/rootfs_uclibc osdrv/pub/rootfs_uclibc_2k_4bit.yaffs2 1 2
	或者
	osdrv/pub/bin/pc/mkyaffs2image610 osdrv/pub/rootfs_glibc osdrv/pub/rootfs_glibc_2k_4bit.yaffs2 1 2

	Nand Flash使用UBI文件系统,在osdrv/tools/pc/ubi_sh下提供mkubiimg.sh工具用于制作UBI文件系统,需要用到Nand
Flash的pagesize、blocksize和UBIFS分区的大小。
以2KB pagesize, 128KB blocksize和UBI文件系统分区大小32MB为例:

mkubiimg.sh hi3516dv300 2k 128k osdrv/pub/rootfs 32M osdrv/pub/bin/pc

osdrv/pub/rootfs是根文件系统文件夹目录
osdrv/pub/bin/pc是制作UBI文件系统镜像的工具目录
	生成的rootfs_hi3516dv300_2k_128k_32M.ubifs,就是最终用于烧写的UBI文件系统镜像。
  1. 镜像存放目录说明
    编译完的image,rootfs等存放在osdrv/pub目录下
    pub
    ├─ bin
    │ ├─ board_glibc -------------------------------------------- himix200编译出的单板用工具
    │ │ ├── ethtool
    │ │ ├── flashcp
    │ │ ├── flash_erase
    │ │ ├── flash_otp_dump
    │ │ ├── flash_otp_info
    │ │ ├── gdb-arm-himix200-linux
    │ │ ├── mtd_debug
    │ │ ├── mtdinfo
    │ │ ├── nanddump
    │ │ ├── nandtest
    │ │ ├── nandwrite
    │ │ ├── sumtool
    │ │ ├── ubiattach
    │ │ ├── ubicrc32
    │ │ ├── ubidetach
    │ │ ├── ubiformat
    │ │ ├── ubimkvol
    │ │ ├── ubinfo
    │ │ ├── ubinize
    │ │ ├── ubirename
    │ │ ├── ubirmvol
    │ │ ├── ubirsvol
    │ │ └── ubiupdatevol
    │ └─ pc
    │ ├── lzma
    │ ├── mkfs.cramfs
    │ ├── mkfs.jffs2
    │ ├── mkfs.ubifs
    │ ├── mkimage
    │ ├── mksquashfs
    │ └── ubinize
    ├─image_glibc ------------------------------------------------- himix200编译出的镜像文件
    │ ├── uImage_hi3516dv300 ----------------------------------------- kernel镜像
    │ ├── u-boot-hi3516dv300.bin ------------------------------------- u-boot镜像
    │ ├── rootfs_hi3516dv300_64k.jffs2 ------------------------------- 64K jffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_128k.jffs2 ------------------------------ 128K jffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_256k.jffs2 ------------------------------ 256K jffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_2k_4bit.yaffs2 -------------------------- yaffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_2k_24bit.yaffs2 ------------------------- yaffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_4k_4bit.yaffs2 -------------------------- yaffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_4k_24bit.yaffs2 ------------------------- yaffs2 文件系统镜像
    │ ├── rootfs_hi3516dv300_2k_128k_32M.ubifs------------------------ 2k 128k UBI 文件系统镜像
    │ └── rootfs_hi3516dv300_4k_256k_50M.ubifs------------------------ 4k 256k UBI 文件系统镜像

    ├─ rootfs.ubiimg ----------------------------------------------- UBIFS根文件系统
    ├─ rootfs_glibc.tgz ------------------------------------------- himix200编译出的rootfs文件系统

3.osdrv目录结构说明:
osdrv
├─Makefile ------------------------------ osdrv目录编译脚本
├─tools --------------------------------- 存放各种工具的目录
│ ├─board ------------------------------ 各种单板上使用工具
│ │ ├─ethtools ----------------------- ethtools工具
│ │ ├─reg-tools-1.0.0 ----------------- 寄存器读写工具
│ │ ├─udev-167 ------------------------ udev工具集
│ │ ├─mtd-utils ----------------------- flash裸读写工具集
│ │ ├─gdb ----------------------------- gdb工具
│ │ └─e2fsprogs ----------------------- mkfs工具集
│ └─pc ---------------------------------- 各种pc上使用工具
│ ├─jffs2_tool----------------------- jffs2文件系统制作工具
│ ├─cramfs_tool --------------------- cramfs文件系统制作工具
│ ├─squashfs4.3 --------------------- squashfs文件系统制作工具
│ ├─nand_production ----------------- nand量产工具
│ ├─lzma_tool ----------------------- lzma压缩工具
│ ├─zlib ---------------------------- zlib工具
│ ├─mkyaffs2image – ---------------- yaffs2文件系统制作工具
│ └─uboot_tools ----------------------uboot镜像制作工具、xls文件及ddr初始化脚本、reg_info.bin制作工具
├─pub ----------------------------------- 存放各种镜像的目录
│ ├─image_glibc ------------------------ 基于himix200工具链编译,可供FLASH烧写的映像文件,包括uboot、内核、文件系统
│ ├─bin -------------------------------- 各种未放入根文件系统的工具
│ │ ├─pc ------------------------------ 在pc上执行的工具
│ │ ├─board_glibc --------------------- 基于himix200工具链编译,在单板上执行的工具
│ └─rootfs_glibc.tgz ------------------- 基于himix200工具链编译的根文件系统
├─opensource----------------------------- 存放各种开源源码目录
│ ├─busybox ---------------------------- 存放busybox源代码的目录
│ ├─uboot ------------------------------ 存放uboot及安全boot源代码的目录
│ └─kernel ----------------------------- 存放kernel源代码的目录
└─rootfs_scripts ------------------------- 存放根文件系统制作脚本的目录

4.注意事项
(1)在windows下复制源码包时,linux下的可执行文件可能变为非可执行文件,导致无法编译使用;u-boot或内核下编译后,会有很多符号链接文件,在windows下复制这些源码包, 会使源码包变的巨大,因为linux下的符号链接文件变为windows下实实在在的文件,因此源码包膨胀。因此使用时请注意不要在windows下复制源代码包。
(2)使用某一工具链编译后,如果需要更换工具链,请先将原工具链编译文件清除,然后再更换工具链编译。
(3)编译板端软件
a.此芯片具有浮点运算单元和neon。文件系统中的库是采用软浮点和neon编译而成,因此请用户注意,所有此芯片板端代码编译时需要在Makefile里面添加选项-mcpu=cortex-a7、-mfloat-abi=softfp和-mfpu=neon-vfpv4。
如:
对于A7:
CFLAGS += -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-loop-optimizations
CXXFlAGS +=-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-loop-optimizations
其中CXXFlAGS中的XX根据用户Makefile中所使用宏的具体名称来确定,e.g:CPPFLAGS。

tftp传文件到板子,烧文件系统,配置板子ip:
https://blog.csdn.net/xiewenhao12/article/details/115787042

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 11:03:42  更:2021-09-10 11:04:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/23 4:13:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计