您的位置:首页 > 其它

Hi3511 VSSSDK 安装以及升级使用说明

2016-02-25 11:07 337 查看
首次安装SDK (注意红帽子和Ubuntu的脚本不一样 ,我在这个上面吃了点苦头,要看清楚,不然编译会出错,红帽子:#!/bin/sh Ubunt : #!/bin/bash)

1、Hi3511 SDK包位置

在"Hi3511 DMS V100R001C01B123/soft/Hi3511_VSSDK_V1.1.2.3"目录下,您可以看到

一个 Hi3511_VSSDK_V1.1.2.3.tgz 的文件,该文件就是SDK的Hi3511的软件开发包。

2、解压缩SDK包

在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),

使用命令:tar -zxf Hi3511_VSSDK_V1.1.2.3.tgz ,解压缩该文件,可以得到一个Hi3511_VSSDK_V1.1.2.3目录。

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

1) 进入tools/toolchains,运行chmod +x cross.install,然后运行./cross.install即可,注意,需要有sudo权限或者root权限

2)执行vim /etc/profile

添加export PATH="/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/usr/bin:$PATH"

3) 执行 source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。

4、展开SDK包的其他内容(注意!这一步不可以省略)

返回SDK目录,运行./sdk.unpack将会展开SDK包打包压缩存放的其他内容,请按照提示完成操作。这步操作可能需要几分钟。

如果您需要通过WINDOWS中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。

5、SDK目录介绍

Hi3511_VSSSDK_VX.X.X.X 目录结构如下:

|-- pub

| |-- images
# 可供FLASH烧写的映像文件,如内核、jffs2文件系统

| |-- include
# 应用程序需要的头文件

| |-- kbuild
# 内核头文件,内核模块使用该目录来进行编译

| |-- lib
# 应用程序需要的库文件

| |-- resource
# 构成rootfs的各种组件,一般不需要关心

| |-- standee
# 各模块的原始安装文件,如需要mmz.ko就可以在这里找到,同时也包含组件所需的调试信息

| `-- tarball
# SDK各模块的打包备份文件

|-- rootfs
# 根文件系统,可以直接作为NFS

|-- scripts
# 存放相关脚本的目录

|-- sdk.cleanup
# SDK清理脚本

|-- sdk.unpack
# SDK展开脚本

|-- source
# 放置所有源代码的目录

| |-- app
# 应用程序类源代码

| |-- drv
# 驱动类源代码

| |-- lib
# Lib类源代码

| `-- os
# OS相关源代码,如内核

|-- tools
# 工具类

| |-- bin
# 可执行程序,如mkfs.cramfs

| `-- toolchains
# 交叉工具链,展开SDK时已自动安装

|

`---mpp # Hi3511的媒体处理平台发布的头文件、库以及内核模块

|-- lib.rel # 音频库,MPP发布的release版本库,音频库

|-- lib.dbg # MPP发布的debug版本库,音频库

|-- lib.lessrel # MPP发布的less release版本库,音频库

|-- ko.rel # MPP发布的发布的release内核模块,包括FB,TDE

|-- ko.dbg # MPP发布的发布的debug内核模块,包括FB,TDE

|-- ko.lessrel # MPP发布的发布的less release内核模块,包括FB,TDE

|-- include # MPP发布的发布的对外头文件,包括FB,TDE

`-- sample # MPP的sample代码,进入各个子目录,可以直接编译运行。

第三章、安装、升级Hi3511DEMO板开发开发环境

如果您使用的Hi3511的DEMO板,可以按照一下步骤安装u-boot,内核以及文件系统,以下步骤均使用网络来更新。

通常,您拿到的单板中已经有u-boot,如果没有的话,就需要使用仿真器进行烧写。

具体操作步骤,请参见 DMS\software\Doc下的《Hi3511 Linux 开发环境用户指南》和 DMS\application notes\下的《Hi3511 U-boot移植应用 Application Notes》。

以下操作假设您的单板已经有了u-boot。

1、配置tftp服务器

可以使用任意的tftp服务器,将 pub/images下的文件拷贝到tftp服务器的目录下。

2、更新u-boot的环境变量

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

具体的使用方法请参见《Hi3511 Linux 开发环境用户指南》。

3、更新单板u-boot,

如果不需要更新u-boot,请直接到下节。

protect off 0x34000000 +0x20000

erase 0x34000000 +0x20000

tftp 0x34000000 u-boot-hi3511v100Dmeb_144MHZ.bin

注意:

新的boot波特率默认为115200,因此重启单板之前请设置串口波特率为115200。

新的boot在启动时对所有内存进行了清零操作,这在开发过程中有助于发现某些BUG,但导致单板复位后需要过几秒钟才出现打印信息,请稍微给点耐心等待一下。

6、更新内核

如果不需要更新内核,请直接到下节。

erase 0x34100000 +0x100000

tftp 0x34100000 kernel-hi3511v100dmeb_full_release.img

7、更新文件系统

erase 0x34100000 +0x100000

erase 0x34200000 +0x1000000

tftp 0x34100000 kernel-hi3511v100dmeb_full_debug.img

tftp 0x34200000 rootfs-FULL_DBG-Flash.jffs2

8、启动新系统

在u-boot下设置启动参数:(为操作系统分配32MB的内存,并使用jffs2的文件系统,文件系统的大小为14MB)

setenv bootcmd 'bootm 0x34100000'

setenv bootargs 'mem=32M console=ttyAMA0,115200 root=1f01 rootfstype=jffs2 mtdparts=phys_mapped_flash:2M(boot),14M(rootfs)'

saveenv

然后重启单板即可,第一次进入系统时,挂载文件系统的速度可能比较慢,请耐心等待。

9、使用新系统

切记,不可随意在Linux下复位单板或断电,因为这样可能会损坏文件系统,导致文件丢失、损坏以致系统无法启动!

每次重启单板请使用reboot;同理,单板断电时请先运行halt,待到挂死后再断电,这样可以有效地保护FLASH文件系统,也可以避免不必要的麻烦。

第四章、使用SDK和DEMO板进行开发

1、分配和使用保留内存

DEMO板上的内存大小为256MB,对应物理地址从0xE0000000 到 0xEFFFFFFF。 通常,需要为操作系统留32MB的空间,例如在第三章第8步中配置。

SDK中提供了一个专门管理保留操作系统以外内存的内核模块mmz,可以指定该模块管理的内存地址空间。例如

modprobe mmz mmz=ddr,0,0xE2000000,64M

mmz管理的内存起始地址为 0xE2000000,大小为64MB。从0xE0000000到0xE2000000的32MB空间是留给操作系统的。

2、开启Linux下的网络

执行命令加载网络驱动:

modprobe libphy;

modprobe hiether rv_strat=2 rv_qcnt=512 hwq_recv=32 hwq_xmit=32 flimit=256;

# 设置网关

ifconfig eth0 hw ether 00:10:85:xx:xx:xx;ifconfig eth0 192.168.0.15 netmask 255.255.254.0;route add default gw 192.168.0.1

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

可以将以上命令写到脚本里面,每次启动时运行一下即可。

如果收包性能不足,目前确认通过增加协议栈缓存即可,可以按如下操作来调整收包缓存默认值和最大值

echo "512000" > /proc/sys/net/core/rmem_default //500KB默认缓存

echo "1024000" > /proc/sys/net/core/rmem_max //1000KB最大缓存

在内存紧张的情况下,如果再进行繁重的网络访问,有可能会报出缺页异常。此时通过限制系统将内存用于文件系统cache的数值,

可以提高网络突发情况下的处理能力。可以使用下面的命令将min_free_kbytes设置为2MB可用提高网络突发情况下的可用内存数量

echo 2000 > /proc/sys/vm/min_free_kbytes

3、使用NFS

在开发阶段,推荐使用NFS作为开发环境。您开发的代码都可以放在NFS服务器上,通过NFS可以直接在DEMO板上访问到NFS服务器。

执行命令加载NFS驱动:

modprobe nfs

然后挂载NFS文件系统:

mount -t nfs -o nolock 10.85.xxx.xxx:/your-nfs-path /mnt

然后就可以在/mnt目录下看到你服务器上的文件了,当然,如果你挂载的NFS目录就是SDK下面的rootfs,那么你可以:

chroot /mnt

然后就可以在新的根目录下工作了。

4、开启telnet服务

网络正常后,运行命令 telnetd& 就可以启动单板telnet服务,然后才能telnet到单板。

5、使用硬盘FAT32

执行命令加载FAT驱动:

modprobe fat

modprobe vfat

modprobe nls_iso8859-1

modprobe nls_cp437

modprobe nls_utf8

modprobe as-iosched
//增加IO调度算法,还有loop、cfq_iosched、deadline-iosched选择

echo "anticipatory" > /sys/block/<devicename>/queue/scheduler
//使能as-iosched算法,<devicename>是在/dev/<devicename>,如hda

然后挂载FAT32文件系统:

mount -t vfat /dev/xx/../xx/hdaX /mnt

然后就可以在/mnt目录下看到文件了

当然,你也可以把以上操作都放到脚本里面,并让它在linux启动的时候自动执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: