Hi3531D SDK安装及升级步骤分享

Hi3531D  SDK安装及升级步骤分享 blakmi 2023-07-17 15:30:39 1446

本文主要介绍了 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,确保网络畅通。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
<

3.烧写映像文件到 SPI Nor Flash

以 32M SPI Nor Flash 为例。
1)地址空间说明

| 1M | 9M | 22M |
|---------------|---------------|---------------|
| boot | kernel | rootfs |
  • 1
  • 2
  • 3

以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3)烧写内核

mw.b 42000000 ff 900000
tftp 42000000 uImage_hi3531dv200
sf probe 0
sf erase 100000 900000
sf write 42000000 100000 900000
  • 1
  • 2
  • 3
  • 4
  • 5

4)烧写文件系统

mw.b 42000000 ff b00000
tftp 42000000 rootfs_hi3531dv200_64k.jffs2
sf probe 0
sf erase a00000 b00000
sf write 42000000 a00000 b00000
  • 1
  • 2
  • 3
  • 4
  • 5

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
  • 1
  • 2
  • 3
  • 4

4.烧写映像文件到 NAND Flash

以 64M NAND Flash 为例。
1)地址空间说明

| 1M | 10M | 32M | 21M |
|------------------------|-------------------------|------------------------|-------------------------------------|
| boot | kernel | rootfs | other |
  • 1
  • 2
  • 3

以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写 u-boot

mw.b 42000000 ff 100000
tftp 42000000 u-boot-hi3531dv200.bin
nand erase 0 100000
nand write 42000000 0 100000
reset
  • 1
  • 2
  • 3
  • 4
  • 5

3)烧写内核

mw.b 42000000 ff A00000
tftp 42000000 uImage_hi3531dv200
nand erase 100000 A00000
nand write 42000000 100000 A00000
  • 1
  • 2
  • 3
  • 4

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 进制)
  • 1
  • 2
  • 3
  • 4

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
  • 1
  • 2
  • 3
  • 4
  • 5

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
    • 1
    • 2
    • 3
  • 步骤二
    然后 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
    • 1
    • 2

    进入各 sample 目录下执行相应样例程序(sample 需要先在服务器上成功编译过)

    cd mpp/sample/vio
    ./sample_vio 0 1
    • 1
    • 2

    五、地址空间分配与使用

    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
    • 2
    • 3
    • 4
    • 5

    注意:
    (1)用户在配置启动参数时需要设置 OS 的管理内存为 512M,“setenv bootargs 'mem=512M ...”。
    (2)如果有特殊应用,可以自行修改 load3531dv200 脚本,进行 mmz 区域划分,如“insmod hi_osal.kommz=anonymous,0,0x60000000,1530M:jpeg,0,0xBFA00000,6M anony=1”。

    声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
    blakmi
    红包 点赞 收藏 评论 打赏
    评论
    0个
    内容存在敏感词
    手气红包
      易百纳技术社区暂无数据
    相关专栏
    置顶时间设置
    结束时间
    删除原因
    • 广告/SPAM
    • 恶意灌水
    • 违规内容
    • 文不对题
    • 重复发帖
    打赏作者
    易百纳技术社区
    blakmi
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1易百纳技术社区
    ¥5易百纳技术社区
    ¥10易百纳技术社区
    ¥50易百纳技术社区
    ¥100易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    拼手气红包 红包规则
    祝福语
    恭喜发财,大吉大利!
    红包金额
    红包最小金额不能低于5元
    红包数量
    红包数量范围10~50个
    余额支付
    当前余额:
    可前往问答、专栏板块获取收益 去获取
    取 消 确 定

    小包子的红包

    恭喜发财,大吉大利

    已领取20/40,共1.6元 红包规则

      易百纳技术社区