首页 » 智能 » 海思3531D情形搭建_文件体系_镜像

海思3531D情形搭建_文件体系_镜像

落叶飘零 2024-12-17 19:10:04 0

扫一扫用手机浏览

文章目录 [+]

1.内核编译

内核源代码中除了系统运行所必须的核心代码之外,还包含了各种各样的外部设备驱动、文件系统,以及一些跟某种特性干系的代码。
而这些代码,在我们的业务环境中,并不都是必须的。
我们将这些不必要的内容,通过配置选项进行筛选。
进入内核源代码目录,运行如下命令,打开内核配置菜单,并对菜单上的选项进行配置:

海思3531D情形搭建_文件体系_镜像 智能

cp arch/arm/configs/hi35xx_xxx_defconfig .config

make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- menuconfig

编译内核时须要在 make 后添加两个参数:ARCH=arm CROSS_COMPILE=arm-hisiXXXlinux-,个中 CROSS_COMPILE 表示工具链。
文档中统一以 CROSS_COMPILE=arm-hisiXXXlinux-来表示两种情形。

Hi35xx_V100R001C01SPCxxx 对应 uclibc,利用 uclibc 工具链时,CROSS_COMPILE= armhisiv5x0-linux-。

Hi35xx_V100R001C02SPCxxx 对应 glibc,利用 glibc 工具链时,CROSS_COMPILE=armhisiv6x0-linux-。

2.首次安装Hi3531D的SDK

在"Hi3531DV100_V100R001/01.software/board"目录下,找到一个Hi3531DV100_SDK_Vx.x.x.x.tgz 的文件,该文件便是Hi3531DV100的软件开拓包。
利用命令:tar -zxf Hi3531D_SDK_Vx.x.x.x.tgz ,解压缩该文件,可以得到一个Hi3531D_SDK_Vx.x.x.x目录。

3.展开SDK包内容

返回Hi3531D_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限实行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。
如果您须要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。

4.在linux做事器上安装交叉编译器

安装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即可。
实行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新上岸。

4.编译全体osdrv目录

下载linux-3.18.20.tar.gz (或者linux-3.18.20.tar.xz)到osdrv/opensource/kernel目录下

make OSDRV_CROSS=arm-hisiv500-linux PCI_MODE=XXX FLASH_TYPE=XXX all

打消全体osdrv目录的编译文件:make OSDRV_CROSS=arm-hisiv500-linux clean

彻底打消全体osdrv目录的编译文件,除打消编译文件外,还删除已编译好的镜像:make OSDRV_CROSS=arm-hisiv500-linux distclean

单独编译kernel:

把稳:单独编译内核之前请先阅读osdrv/opensource/kernel下的readme_cn.txt解释。
也可以参考步骤1

待进入内核源代码目录后,实行以下操作

cp arch/arm/configs/hi3531d_xxx_defconfig .config

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage

如果编译过程中涌现缺点,按顺序实行以下命令:

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- clean

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage

6.编译uboot

待进入boot源代码目录后,实行以下操作

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- hi3531d_xxx_config

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux-

将天生的 u-boot.bin 复制到 osdrv/tools/pc/uboot_tools/ 目录./mkboot.sh reg_info_hi3531d.bin u-boot_hi3531d.bin。
将天生可用的 u-boot_hi3531d.bin 镜像文件。

7.制作文件系统镜像

在osdrv/pub/中有已经编译好的文件系统,因此无需再重复编译文件系统,只须要根据单板上flash的规格型号制作文件系统镜像即可。
SPI Nor Flash利用jffs2格式的镜像,制作jffs2镜像时,须要用到SPI NorFlash的块大小。
这些信息会在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

Nand Flash和SPI Nand Flash利用yaffs2格式的镜像,制作yaffs2镜像时,须要用到Nand Flash的pagesize和ecc。
这些信息会在uboot启动时会打印出来。
建议利用时先直接运行mkyaffs2image工具,根据打印信息填写干系参数。
示例:

2KB pagesize、4bit ecc命令格式为:如果制作Nand的镜像,则利用mkyaffs2image610工具:

osdrv/pub/bin/pc/mkyaffs2image610 osdrv/pub/rootfs_uclibc osdrv/pub/rootfs_uclibc_2k_4bit.yaffs2 1 2

如果制作SPI Nand的镜像,则利用mkyaffs2image100工具:

osdrv/pub/bin/pc/mkyaffs2image100 osdrv/pub/rootfs_uclibc osdrv/pub/rootfs_uclibc_2k_4bit.yaffs2 1 2

或者

osdrv/pub/bin/pc/mkyaffs2image100 osdrv/pub/rootfs_gclibc osdrv/pub/rootfs_uclibc_2k_4bit.yaffs2 1 2

解释:

当FLASH_TYPE=spi时,天生的mkyaffs2image工具是mkyaffs2image100;

当FLASH_TYPE=nand时,天生的mkyaffs2image工具是mkyaffs2image610;

Nand Flash利用UBI文件系统,在osdrv/tools/pc/ubi_sh下供应mkubiimg.sh工具用于制作UBI文件系统,须要用到Nand

Flash的pagesize、blocksize和UBIFS分区的大小。

以2KB pagesize, 128KB blocksize和UBI文件系统分区大小32MB为例:

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

osdrv/pub/rootfs是根文件系统文件夹目录

osdrv/pub/bin/pc是制作UBI文件系统镜像的工具目录

天生的rootfs_hi3531d_2k_128k_32M.ubifs,便是终极用于烧写的UBI文件系统镜像。

5.安装、升级DEMO板开拓环境

Hi3531DV100的DEMO板,可以按照以下操作烧写uboot、内核以及文件系统,以下操作均利用网络来更新:

1、如果您拿到的单板没有uboot的话,就须要利用01.software/pc/HiTool进行烧写。
更详细的烧写操作步骤及解释,请拜会01.software\pc\HiTool目录下的《HiBurn 工具利用指南》。

2、如果您拿到的单板中已经有uboot,可以按照以下步骤利用网口烧写uboot、kernel及rootfs到Flash中。
DEMO板默认为从SPI Flash启动。

6.配置tftp做事器

可以利用任意的tftp做事器,将package/image_glibc下的干系文件拷贝到tftp做事器目录下。

7.参数配置

# 单板上电后,敲任意键进入u-boot。
设置serverip(即tftp做事器的ip)、ipaddr(单板ip)和ethaddr(单板的MAC地址)。

setenv serverip xx.xx.xx.xx

setenv ipaddr xx.xx.xx.xx

setenv ethaddr xx:xx:xx:xx:xx:xx

setenv netmask xx.xx.xx.xx

setenv gatewayip xx.xx.xx.xx

ping serverip,确保网络畅通。

8.烧写镜像文件到SPI Nor Flash

以16M SPI Nor Flash为例。

1)地址空间解释

| 1M | 4M | 11M |

|---------------|---------------|---------------|

| boot | kernel | rootfs |

2)烧写u-boot

sf probe 0

mw.b 42000000 ff 100000

tftp 42000000 u-boot-hi3531d.bin

sf probe 0

sf erase 0 100000

sf write 42000000 0 100000

reset

3)烧写内核

mw.b 42000000 ff 400000

tftp 42000000 uImage_hi3531d

sf probe 0

sf erase 100000 400000

sf write 42000000 100000 400000

4)烧写文件系统

mw.b 42000000 ff b00000

tftp 42000000 rootfs_hi3531d_64k.jffs2

sf probe 0

sf erase 500000 b00000

sf write 42000000 500000 b00000

5)设置启动参数

setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'

setenv bootcmd 'sf probe 0;sf read 0x42000000 0x100000 0x400000;bootm 0x42000000'

sa

9.如果是NAND Flash则利用如下方法

以64M NAND Flash为例。

1)地址空间解释

| 1M | 4M | 32M | 27M |

|---------------|---------------|---------------|------------------------|

| boot | kernel | rootfs | other |

以下的操作均基于图示的地址空间分配,您也可以根据实际情形进行调度。

2)烧写u-boot

mw.b 42000000 ff 100000

tftp 42000000 u-boot-hi3531d.bin

nand erase 0 100000

nand write 42000000 0 100000

reset

3)烧写内核

mw.b 42000000 ff 400000

tftp 42000000 uImage_hi3531d

nand erase 100000 400000

nand write 42000000 100000 400000

4)烧写文件系统

mw.b 42000000 ff 2000000

tftp 42000000 rootfs_hi3531d_2k_4bit.yaffs2

nand erase 500000 2000000

nand write.yaffs 42000000 500000 96d200 #把稳:96d200为rootfs文件实际大小(16进制)

5)设置启动参数

setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),32M(rootfs),27M(test)'

setenv bootcmd 'nand read 0x42000000 0x100000 0x400000;bootm 0x42000000'

sa

10.启动新系统

reset

11.开启Linux下的网络

# 设置网络

ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx;

ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx;

route add default gw xx.xx.xx.xx

# 然后ping一下其他机器,如无意外,网络将能正常事情。

12.利用NFS文件系统进行开拓

# 在开拓阶段,推举利用NFS作为开拓环境,可以省去重新制作和烧写根文件系统的事情。
挂载NFS文件系统的操作命令:

mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 192.168.129.70:/home/qin/nfs /mnt

备注:

关于nfs配置参考博客https://blog.csdn.net/s030702614/article/details/4662718

13.进入解码目录测试

sample_vdec测试

支持H264、H265、VDH MP4、JPEG PIP

具有停息、播放、单帧播放、”a”表示增加码率、d表示”减小”码率;“q”表示具有查询功能、查询解码的帧数等;

H264和H265,MP4表示都是支持1920X1080。
JPEG deconding表示有3通道,解码三路图片,参数如下:

显示视频也须要有3路输入,3通道,3路输出。
解码也支持PIP,表示画中画,hisi供应的是一共三个图层,一张大图,一张缩放图,缩放图里再叠加一张小图。
编码通道须要开启输入才能去编码;否则会有如下的打印信息;

Region可以支持如下的这些功能:

支持画线和图形叠加;

标签:

相关文章

UV技术在C语言编程中的应用与优势

随着信息技术的飞速发展,编程语言已经成为现代信息技术的重要工具。C语言作为一种经典的编程语言,广泛应用于操作系统、嵌入式系统、网络...

智能 2025-01-04 阅读0 评论0

V4双栈协议,互联网通信的基石与未来展望

互联网的飞速发展,使得网络通信技术日新月异。在众多通信协议中,V4双栈协议因其独特的优势,成为了互联网通信的基石。本文将从V4双栈...

智能 2025-01-04 阅读0 评论0

miniLED背光技能全解析_芯片_间距

发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在p型半导体和n型半导体之间有一个过渡层,称为PN结。在某些半导体材料的...

智能 2025-01-04 阅读0 评论0

X5开发语言,引领未来编程潮流的创新之作

随着科技的飞速发展,编程语言作为信息技术的基础,其重要性不言而喻。近年来,X5开发语言凭借其独特的优势,逐渐成为编程界的佼佼者。本...

智能 2025-01-04 阅读0 评论0