Hi3531 SDK 安装以及升级使用说明

第一章 Hi3531_SDK_Vx.x.x.x版本升级操作说明

   如果您是首次安装本SDK,请直接参看第2章。

   

第二章 首次安装SDK

1、Hi3531 SDK包位置

    在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx.x.x.x.tgz 的文件,

该文件就是Hi3531的软件开发包。

2、解压缩SDK包

    在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3531_SDK_Vx.x.x.x.tgz ,

解压缩该文件,可以得到一个Hi3531_SDK_Vx.x.x.x目录。

3、展开SDK包内容

    返回Hi3531_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。

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

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

    1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):

       进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

    2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):

       进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

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

5、编译osdrv

    参见osdrv目录下readme

6、SDK目录介绍

Hi3531_SDK_Vx.x.x.x 目录结构如下:   

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

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

    |-- osdrv                       # 存放操作系统及相关驱动的目录

    |   |-- busybox                 # busybox源代码

    |   |-- drv                     # drv源代码

    |   |-- kernel                  # linux内核源代码

    |   |-- pub                     # 编译好的镜像、工具、drv驱动等

    |   |-- rootfs_scripts          # rootfs源代码

    |   |-- toolchain               # 交叉编译器

    |   |-- tools                   # linux工具源代码

    |   |-- uboot                   # uboot源代码

    |   `-- Makefile                # osdrv Makefile

    |-- package                     # 存放SDK各种压缩包的目录

    |   |-- osdrv.tgz               # linux内核/uboot/rootfs/tools源码压缩包

    |   |-- mpp.tgz                 # 媒体处理平台软件压缩包

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

    |-- scripts                     # 存放shell脚本的目录

    |-- mpp                         # 存放媒体处理平台的目录

        |-- component               # 组件源代码

        |-- extdrv                  # 板级外围驱动源代码

        |-- include                 # 对外头文件

        |-- ko                      # 内核模块

        |-- lib                     # release版本库以及音频库

        |-- tools                   # 媒体处理相关工具

        `-- sample                  # 样例源代码

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

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

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

    # 更详细的操作步骤及说明,请参见01.software\board\documents目录下的《Linux开发环境用户指南》。

    # 以下操作假设您的单板上已经有u-boot,使用网口烧写uboot、kernel及rootfs到Flash中。

    # Demo单板默认为从SPI Flahs启动。

1、配置tftp服务器

    # 可以使用任意的tftp服务器,将package/image_uclibc(或image_glibc)下的相关文件拷贝到tftp服务器目录下。

   

2、参数配置

    # 单板上电后,敲任意键进入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,确保网络畅通。

3、烧写映像文件到SPI Flash

    以16M SPI Flash为例。

    1)地址空间说明

        |      1M       |      4M       |      11M      |

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

        |     boot      |     kernel    |     rootfs    |

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

    2)烧写u-boot

        sf probe 0

        mw.b 82000000 ff 100000

        tftp 0x82000000 u-boot-hi3531_930MHz.bin

        sf probe 0

        sf erase 0 100000

        sf write 82000000 0 100000 

        reset   

    3)烧写内核

        mw.b 82000000 ff 400000

        tftp 82000000 uImage

        sf probe 0

        sf erase 100000 400000

        sf write 82000000 100000 400000

    4)烧写文件系统

        mw.b 82000000 ff b00000

        tftp 0x82000000 rootfs_256k.jffs2

        sf erase 500000 b00000

        sf write 82000000 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 0x82000000 0x100000 0x400000;bootm 0x82000000'

        sa

4、烧写映像文件到NAND Flash

    以64M NAND Flash为例。

    1)地址空间说明

        |      1M       |     15M       |     32M       |         16M            |

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

        |     boot      |    kernel     |    rootfs     |        other           |

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

    2)烧写u-boot

        mw.b 82000000 ff 100000

        tftp 82000000 u-boot-hi3531_930MHz.bin

        nand erase 0 100000

        nand write 82000000 0 100000

        reset

    3)烧写内核

        mw.b 82000000 ff f00000

        tftp 82000000 uImage

        nand erase 100000 f00000

        nand write 82000000 100000 f00000

    4)烧写文件系统

        mw.b 82000000 ff 2000000

        tftp 82000000 rootfs_2k_1bit.yaffs2

        nand erase 1000000 2000000

        nand write.yaffs 82000000 1000000 9435c0    #注意:9435c0为rootfs文件实际大小(16进制)

    5)设置启动参数

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

        setenv bootcmd 'nand read 0x82000000 0x100000 0x500000;bootm 0x82000000'

        sa

5、启动新系统

    reset # 重启进入新系统。

第四章、开发前环境准备

1、管脚复用

    与媒体业务相关的管脚复用都在mpp/ko_hi3531目录下的sh脚本中配置,如果与实际情况不符请直接修改,此脚本被load3531_asic调用,在加载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文件系统的操作命令:

    mount -t nfs -o nolock -o tcp xx.xx.xx.xx:/your-nfs-path /mnt

    # 然后就可以在/mnt目录下访问服务器上的文件,并进行开发工作。

3、开启telnet服务

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

4、运行MPP业务

    # 在单板linux系统下,进入mpp/ko_hi3531目录,加载KO

    cd mpp/ko_hi3531

    ./load3531_asic -i

   

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

    cd mpp/sample/vio

    ./sample_vio 0

   

第六章 地址空间分配与使用

1、DDR内存管理说明

    1)所有DDR内存中,一部分由操作系统管理,称为OS内存;另一部分由MMZ模块管理,供媒体业务单独使用,称为MMZ内存。

    2)OS内存起始地址为0x80000000,内存大小可通过bootargs进行配置,例如第三章中的setenv bootargs 'mem=64M ... ',表示分配给操作系统内存为64M,您可以根据实际情况进行调整。

    3)MMZ内存由MMZ内核模块管理(mpp/ko_hi35xx目录下的mmz.ko),加载mmz模块时,通过模块参数指定其起始地址及大小,例如:

    insmod mmz.ko mmz=anonymous,0,0x84000000,447M:ddr1,0,0xC0000000,511M anony=1 || report_error

    表示mmz两块区域,区域一的名称为anonymous,起始地址为0x84000000,大小为447M;区域二的名称为ddr1,起始地址为0xC0000000,大小为511M。

    您可以通过修改mpp/ko_HI35XX目录下load3531脚本中的mmz模块参数,来修改其起始地址和总大小。

    4)请注意MMZ内存地址范围不能与OS内存重叠。

2、DEMO板DDR内存管理示意

    1) 以容量为512MBytes的DDR0,为512MBytes的DDR1内存为例,以下为根据本文档和SDK默认配置得到的内存管理示意图:

   

    DDR0:                                                           DDR1:

   

    -----|-------|  0x80000000   # Memory managed by OS.            -----|-------|  0xC0000000   # Memory managed by MMZ.    


    64M  | OS    |                                                       |       |                                      


         |       |                                                       |       |                                      


    -----|-------|  0x84000000   # Memory managed by MMZ.                |       | 


    447M | MMZ   |                                                  511M | MMZ   |                                      


         |       |                                                       |       |                                      


    -----|-------|  0x9FF00000   # Not used.                        -----|-------|  0xDFF00000   # Not used.            


    1M   |       |                                                   1M  |       |                                      


         |       |                                                       |       |                                      


    -----|-------|  0xA0000000   # End of DDR.                      -----|-------|  0xE0000000   # End of DDR.          


   

    注意:

 (1)用户在配置启动参数时需要设置OS的管理内存为64M,“setenv bootargs 'mem=64M ...”。  

 (2)系统启动后,配置load3531的脚本中mmz的管理内存为447M(DDR0)和511M(DDR1),“insmod mmz.ko mmz=anonymous,0,0x84000000,447M:ddr1,0,0xC0000000,511M anony=1 || report_error”。   


   

   2) 以容量为256MBytes的DDR内存为例,可以采用如下配置来节省内存使用。

DDR0:                                                         DDR1: 

    -----|-------|  0x80000000   # Memory managed by OS.           -----|-------|  0xC0000000   # Memory managed by MMZ.


    48M  | OS    |                                                      |       |                                       


    -----|-------|  0x83000000   # Memory managed by MMZ.               |       |   


    208M | MMZ   |                                                 256M | MMZ   |                                       


         |       |                                                      |       |                                       


    -----|-------|               # End of DDR.                     -----|-------|               # End of DDR.           


   

    注意:

 (1)用户在配置启动参数时需要设置OS的管理内存为48M,“setenv bootargs 'mem=48M ...”。  

 (2)系统启动后,配置load3531的脚本中mmz的管理内存为208M(DDR0)和256M(DDR1),“insmod mmz.ko mmz=anonymous,0,0x83000000,208M:ddr1,0,0xC0000000,256M anony=1 || report_error”。

Hi3531 SDK 安装以及升级使用说明的更多相关文章

  1. Hi3536DV100 SDK 安装以及升级使用说明

    第一章 Hi3536DV100_SDK_Vx.x.x.x版本升级操作说明 如果您是首次安装本SDK,请直接参看第2章. 第二章 首次安装SDK1.Hi3536DV100 SDK包位置 在"H ...

  2. Hi3519v101 SDK安装及升级

    安装SDK 1.解压tgz压缩包 将 Hi3519V101_SDK_Vx.x.x.x.tgz 压缩包放入共享文件夹中,并解压到Linux内部如 /sdk 目录下,因为在共享目录中编译容易出现各种错误. ...

  3. Hi3531 SDK v2.0.8.0 安装

    1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx.x.x.x.tgz ...

  4. 解决MyEclipse中安装或升级ADT之后SDK Target无法显示的问题

        故障现象,在MyEclipse里面安装完最新的android sdk和ADT之后,无法新建项目,Build Target为空,显示一直在loading.即如下面图里面显示的,Target Na ...

  5. hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决问题 .

    一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx. ...

  6. hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决这个问题 .

    一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"文件夹下,您能够看到一个 Hi3531_SDK_Vx ...

  7. hive的安装和升级

    目录 [toc] 安装 升级 安装 nohup hive –service hiveserver & 启动: sudo nohup ./hive --service metastore &am ...

  8. hi3531 SDK 编译 kernel, 修改 参数

    开发环境用户指南上这么写的 3.1 内核源代码 成功安装Hi3531 SDK后,内核源代码已存放于SDK目录下的osdrv/目录中,用户可 直接进入目录进行相关操作. 3.2 配置内核 如果对内核和H ...

  9. uiautomator 安装和升级

    1.打开uiautomator sdk安装路径 < tools < uiautomatorviewer.bat # 双击点开 2.升级uiautomator包 1.uiautomatorv ...

随机推荐

  1. [PHP] Phalcon操作示范

    这篇内容将对下列操作进行示范: Insert.Select.Update.Calculation.Transaction.models advanced.dev-tools.cookies [ Ins ...

  2. squid安装及运行指南

    squid安装及运行指南 0. What is squid Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和HTTP协议.和一般的代理缓存软件不同,Squid用 ...

  3. ABP官方文档翻译 9.2 Entity Framework Core

    Entity Framework Core 介绍 DbContext 配置 在Startup类中 在模块PreInitialize方法中 仓储 默认仓储 自定义仓储 应用程序特定基础仓储类 自定义仓储 ...

  4. web.xml 文件中一般包括 servlet, spring, filter, listenr的配置的加载顺序

    首先可以肯定 加载顺序与他们在web.xml 文件中的先后顺序无关. web.xml 中 listener 和 serverlet 的加载顺序为 先 listener 后serverlet最终得出结果 ...

  5. SEO页面优化以及如何对单页面应用进行SEO优化

    一.简介 1.何为SEO? SEO(search engine optimization),翻译为搜索引擎优化,是利用搜索引擎的搜索规则来提高在相关搜索引擎的排名以及访问量的方式. 2.目的 为了获取 ...

  6. ASP.NET MVC 5 ABP DataTables (一)

    1)ABP DataTables 应用(一) 2)  ABP DataTables 应用(二) JS DataTables 这个组件绑定数据必须要有自己的返回数据格式.但是ABP返回的格式直接绑定是错 ...

  7. LANMP系列教程之Apache编译安装CentOS7环境

      1.准备好源码包并配置好yum源,需要的源码包包括:httpd-2.4.18.apr-1.5.2.tar.gz.apr-util-1.5.4.tar.gz 2.准备用户 groupadd -r a ...

  8. BZOJ 3550: [ONTAK2010]Vacation [单纯形法]

    有3N个数,你需要选出一些数,首先保证任意长度为N的区间中选出的数的个数<=K个,其次要保证选出的数的个数最大. 好像都是费用流... 单纯性裸题呀... 注意每个数最多选1次 #include ...

  9. ArcGIS API for JavaScript开发环境搭建与发布以及基本功能实现

    1.背景介绍 ArcGIS API for JavaScript 咱这就不介绍了,具体可看ESRI中国的介绍:http://support.esrichina.com.cn/2011/0223/960 ...

  10. Ling && Lambda

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...