Hi3531D SDK安装及升级步骤分享
本文主要介绍了 Hi3531DV200 SDK 的安装及升级使用说明,方便大家能快速在对应芯片的DEMB 板上搭建好 SDK 运行环境。如果已经安装过了SDK,可以跳过安装步骤,直接从第二步安装、升级 Hi3531DV200 DEMO 板开发环境开始查看。
一、安装SDK
1.在 linux 服务器上(或者一台装有 linux 的 PC 上,主流的 linux 发行版本均可以),使用命令:```ctar -zxf Hi3531DV200_SDK_Vx.x.x.x.tgz
2.返回 Hi3531DV200_SDK_Vx.x.x.x 目录,运行```c./sdk.unpack```(请用 root 或 sudo 权限执行)将会展开 SDK 包打包压缩存放的内容,请按照提示完成操作。如果需要通过WINDOWS 操作系统中转拷贝 SDK 包,请先运行```c./sdk.cleanup```,收起SDK 包的内容,拷贝到新的目录后再展开。
3.在 linux 服务器上安装交叉编译器
- 步骤一
安装 uclibc 交叉编译器(注意,需要有 sudo 权限或者 root 权限):获取 aarch64-himix200-linux.tgz 文件,使用命令:```ctar -zxf aarch64-himix200-linux.tgz``` 解压文件,进入aarch64-himix200-linux 目录,运行```c
chmod +x aarch64-himix200-linux.install```,然后运行./aarch64-himix200-linux.install 即可。
- 步骤二
安装 glibc 交叉编译器(注意,需要有 sudo 权限或者 root 权限):获取 aarch64-himix200-linux.tgz 文件,使用命令:```c
tar -zxf aarch64-himix200-linux.tgz
``` 解压文件,进入aarch64-himix200-linux 目录,运行 ```c
chmod +x aarch64-himix200-linux.install
```,然后运行```c
./aarch64-himix200-linux.install
``` 即可。
- 步骤三
执行```c
source /etc/profile
```,安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。
4.编译osdrv(参见 osdrv 目录下 readme)
## 二、安装、升级 Hi3531DV200 DEMO 板开发环境
如果使用的 Hi3531DV200 的 DEMO 板,可以按照以下操作烧写 uboot、内核以及文件系统,以下操作均使用网络来更新:
- 如果您拿到的单板没有 uboot 的话,就需要使用 01.software/pc/HiTool 进行烧写。更详细的烧写操作步骤及说明,请参见 01.software\pc\HiTool 目录下的《HiBurn 工具使用指南》。
- 如果您拿到的单板中已经有 uboot,可以按照以下步骤使用网口烧写 uboot、kernel及 rootfs 到 Flash 中。DEMO 板默认为从 SPI Flash 启动。
**1.配置 tftp 服务器**
可以使用任意的 tftp 服务器,将 package/image_uclibc(或 image_glibc)下的相关文件拷贝到 tftp 服务器目录下。
**2.参数配置**
单板上电后,敲任意键进入 u-boot。设置 serverip(即 tftp 服务器的 ip)、ipaddr(单板
ip)和 ethaddr(单板的 MAC 地址)。
```csharp
setenv serverip xx.xx.xx.xx
setenv ipaddr xx.xx.xx.xx
setenv ethaddr xx:xx:xx:xx:xx
setenv netmask xx.xx.xx.xx
setenv gatewayip xx.xx.xx.xx
ping serverip,确保网络畅通。
3.烧写映像文件到 SPI Nor Flash
以 32M SPI Nor Flash 为例。
1)地址空间说明
| 1M | 9M | 22M |
|---------------|---------------|---------------|
| boot | kernel | rootfs |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写 u-boot
sf probe 0
mw.b 42000000 ff 100000
tftp 42000000 u-boot-hi3531dv200.bin
sf probe 0
sf erase 0 100000
sf write 42000000 0 100000
reset
3)烧写内核
mw.b 42000000 ff 900000
tftp 42000000 uImage_hi3531dv200
sf probe 0
sf erase 100000 900000
sf write 42000000 100000 900000
4)烧写文件系统
mw.b 42000000 ff b00000
tftp 42000000 rootfs_hi3531dv200_64k.jffs2
sf probe 0
sf erase a00000 b00000
sf write 42000000 a00000 b00000
5)设置启动参数
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rw
rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),9M(kernel),22M(rootfs)'
setenv bootcmd 'sf probe 0;sf read 0x42000000 0x100000 0x900000;bootm 0x42000000'
sa
4.烧写映像文件到 NAND Flash
以 64M NAND Flash 为例。
1)地址空间说明
| 1M | 10M | 32M | 21M |
|------------------------|-------------------------|------------------------|-------------------------------------|
| boot | kernel | rootfs | other |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写 u-boot
mw.b 42000000 ff 100000
tftp 42000000 u-boot-hi3531dv200.bin
nand erase 0 100000
nand write 42000000 0 100000
reset
3)烧写内核
mw.b 42000000 ff A00000
tftp 42000000 uImage_hi3531dv200
nand erase 100000 A00000
nand write 42000000 100000 A00000
4) 烧写文件系统
mw.b 42000000 ff 2000000
tftp 42000000 rootfs_hi3531dv200_2k_128k_32M.ubifs
nand erase B00000 2000000
nand write 42000000 B00000 820000 #注意:820000 为 rootfs 文件实际大小(16 进制)
5)设置启动参数
setenv bootargs 'mem=512M console=ttyAMA0,115200 clk_ignore_unused ubi.mtd=2
root=ubi0:ubifs rootfstype=ubifs rw
mtdparts=hinand:1M(boot),10M(kernel),32M(rootfs.ubifs)'
setenv bootcmd 'nand read 0x42000000 0x100000 0xA00000;bootm 0x42000000'
sa
5.启动新系统
reset# 重启进入新系统。
三、开发前环境准备
与媒体业务相关的管脚复用、DDR 优先级配置等在 drv/sys_config 开源驱动中配置(使用 linux DTS 进行管理),如果与实际情况不符可直接修改,sys_config.ko 驱动被load3531dv200 调用,在加载 mpp 内核模块之前被执行;mpp 之外的其他管脚复用统一在 uboot 中配置,详细说明请参见《U-boot 移植应用开发指南》。
四、使用 SDK 和 DEMO 板进行开发
1.开启 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 一下其他机器,如无意外,网络将能正常工作。
---结束
2.使用 NFS 文件系统进行开发
- 步骤一
在开发阶段,推荐使用 NFS 作为开发环境,可以省去重新制作和烧写根文件系统的工作。 - 步骤二
挂载 NFS 文件系统的操作命令:```cpp
mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 xx.xx.xx.xx:/your-nfs-path /mnt - 步骤三
然后就可以在/mnt 目录下访问服务器上的文件,并进行开发工作。
----结束
3.开启 telnet 服务
网络正常后,运行命令 telnetd& 就可以启动单板 telnet 服务,然后才能使用 telnet登录到单板。
4.运行 MPP 业务
在单板 linux 系统下,进入 mpp/ko 目录,加载 ko
cd mpp/ko
./load3531dv200 -a
进入各 sample 目录下执行相应样例程序(sample 需要先在服务器上成功编译过)
cd mpp/sample/vio
./sample_vio 0 1
五、地址空间分配与使用
1.DDR 内存管理说明
- 所有 DDR 内存中,一部分由操作系统管理,称为 OS 内存;另一部分由 MMZ 模块管理,供媒体业务单独使用,称为 MMZ 内存。
- OS 内存起始地址为 0x40000000,内存大小可通过 bootargs 进行配置,例如第三章中的 setenv bootargs 'mem=512M ... ',表示分配给操作系统内存为 512M,可以根据实际情况进行调
- MMZ 内存由 osal 内核模块管理(mpp/ko_hi35xx 目录下的 hi_osal.ko),加载 osal模块时,通过模块参数指定其起始地址及大小,load 脚本中根据 MMZ 的起始地址 mmz_start 及大小 mmz_size。
- 请注意 MMZ 内存地址范围不能与 OS 内存重叠。
2.DEMO 板 DDR 内存管理示意
以容量为 512MBytes 的 DDR 内存为例,以下为根据本文档和 SDK 默认配置得到的内存管理示意图:
DDR:
-----|------| 0x40000000 # Memory managed by OS.
512M | OS |
-----|------| 0x60000000 # Memory managed by MMZ block anonymous.
1536M | MMZ |
-----|------| 0xC0000000 # End of memory managed by MMZ.
注意:
(1)用户在配置启动参数时需要设置 OS 的管理内存为 512M,“setenv bootargs 'mem=512M ...”。
(2)如果有特殊应用,可以自行修改 load3531dv200 脚本,进行 mmz 区域划分,如“insmod hi_osal.kommz=anonymous,0,0x60000000,1530M:jpeg,0,0xBFA00000,6M anony=1”。
- 分享
- 举报

-
浏览量:3142次2023-07-12 17:02:05
-
浏览量:3121次2023-07-13 15:07:51
-
浏览量:4362次2018-12-25 20:34:34
-
浏览量:3539次2024-03-17 11:48:56
-
浏览量:3758次2017-11-16 11:30:55
-
浏览量:3382次2018-04-12 11:32:51
-
浏览量:1669次2023-03-28 18:29:52
-
浏览量:1963次2023-03-28 17:42:10
-
浏览量:6625次2020-08-24 21:24:41
-
浏览量:3819次2020-08-24 21:28:44
-
浏览量:2403次2020-07-10 16:39:36
-
2023-06-26 19:48:37
-
浏览量:2468次2022-01-10 09:00:16
-
浏览量:3785次2022-01-04 09:00:18
-
浏览量:3858次2021-12-10 16:59:31
-
浏览量:6011次2022-10-24 15:47:55
-
浏览量:3638次2024-04-30 22:13:25
-
浏览量:3072次2020-07-27 15:26:51
-
浏览量:3251次2023-04-03 15:10:25
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖

blakmi






举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明