Hi3516A/Hi3516D SDK 安装以及升级使用说明

注意:本文以Hi3516A描述为例,未有特殊说明,Hi3516D与Hi3516A一致。

第一章 Hi3516A_SDK_Vx.x.x.x版本升级操作说明
   如果您是首次安装本SDK,请直接参看第2章。
    
第二章 首次安装SDK
1、Hi3516A SDK包位置
    在"Hi3516A_V100R001***/01.software/board"目录下,您可以看到一个 Hi3516A_SDK_Vx.x.x.x.tgz 的文件,
该文件就是Hi3516A的软件开发包。

2、解压缩SDK包
    在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3516A_SDK_Vx.x.x.x.tgz ,
解压缩该文件,可以得到一个Hi3516A_SDK_Vx.x.x.x目录。

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

4、在linux服务器上安装交叉编译器
    1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):
       进入Hi3516A_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv300-linux目录,运行chmod +x cross.v300.install,然后运行./cross.install即可。
    2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):
       进入Hi3516A_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv400-linux目录,运行chmod +x cross.v400.install,然后运行./cross.install即可。
    3) 执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。

5、编译osdrv
    参见osdrv目录下readme

6、SDK目录介绍
Hi3516A_SDK_Vx.x.x.x 目录结构如下:    
    |-- sdk.cleanup                 # SDK清理脚本
    |-- sdk.unpack                  # SDK展开脚本
    |-- osdrv                       # 存放操作系统及相关驱动的目录
    |   |-- opensource              # opensource源代码
    |   |   |-- busybox             # busybox源代码
    |   |   |-- kernel              # linux内核源代码
    |   |   |-- toolchain           # 交叉编译器
    |   |   |-- uboot               # uboot源代码
    |   |-- pub                     # 编译好的镜像、工具、drv驱动等
    |   |-- tools                   # linux工具源代码
    |   |-- readme_cn.txt           # osdrv使用说明(中文版)
    |   |-- readme_en.txt           # osdrv使用说明(英文版)
    |   |-- ......                  #
    |   `-- Makefile                # osdrv Makefile
    |-- package                     # 存放SDK各种压缩包的目录
    |   |-- osdrv.tgz               # linux内核/uboot/rootfs/tools源码压缩包
    |    |-- mpp.tgz                 # 媒体处理平台软件压缩包
    |   |-- drv.tgz                 # drv压缩包
    |   |-- rootfs_*.tgz            # rootfs压缩包
    |   |-- image *                 # 可供FLASH烧写的映像文件,如内核、根文件系统
    |-- scripts                     # 存放shell脚本的目录
    |-- drv                         # drv目录
    |-- mpp                         # 存放媒体处理平台的目录
        |-- component               # 组件源代码
        |-- extdrv                  # 板级外围驱动源代码
        |-- include                 # 对外头文件
        |-- ko                      # 内核模块
        |-- lib                     # release版本库以及音频库
        |-- Makefile.param          # mpp一些全局编译选项
        |-- tools                   # 媒体处理相关工具
        `-- sample                  # 样例源代码

第三章、安装、升级Hi3516ADEMO板开发环境
    # 如果您使用的Hi3516A的DEMO板,可以按照以下步骤烧写u-boot,内核以及文件系统,以下步骤均使用网络来更新。
    # 通常,您拿到的单板中已经有u-boot,如果没有的话,就需要使用仿真器进行烧写。
    # 更详细的操作步骤及说明,请参见01.software\board\documents目录下的《Linux开发环境用户指南》。
    # 以下操作假设您的单板上已经有u-boot,使用网口烧写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地址)。
    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       |      3M       |      12M      |
        |---------------|---------------|---------------|
        |     boot      |     kernel    |     rootfs    |

以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
       2)烧写u-boot
        sf probe 0
        mw.b 82000000 ff 100000
        tftp 0x82000000 u-boot-hi3516a.bin
        sf probe 0
        sf erase 0 100000
        sf write 82000000 0 100000    
        reset    
    3)烧写内核
        mw.b 82000000 ff 300000
        tftp 82000000 uImage_hi3516a
        sf probe 0
        sf erase 100000 300000
        sf write 82000000 100000 300000
    4)烧写文件系统
        mw.b 82000000 ff C00000
        tftp 0x82000000 rootfs_hi3516a_64k.jffs2
        sf probe 0
        sf erase 400000 C00000
        sf write 82000000 400000 C00000
    5)设置启动参数
        setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)'
        setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'
        sa

4、烧写映像文件到NAND Flash        
   以64M NAND Flash为例。
    1)地址空间说明
        |      1M       |      3M       |     32M       |         28M            |
        |---------------|---------------|---------------|------------------------|
        |     boot      |    kernel     |    rootfs     |        other           |

以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
    2)烧写u-boot
        mw.b 82000000 ff 100000
        tftp 82000000 u-boot-hi3516a.bin
        nand erase 0 100000
        nand write 82000000 0 100000
        reset
    3)烧写内核
        mw.b 82000000 ff 300000
        tftp 82000000 uImage_hi3516a
        nand erase 100000 300000
        nand write 82000000 100000 300000
    4)烧写文件系统
        mw.b 82000000 ff 2000000
        tftp 82000000 rootfs_Hi3516a_2k_4bit.yaffs2
        nand erase 400000 2000000
        nand write.yaffs 82000000 400000  96d200    #注意:96d200为rootfs文件实际大小(16进制)
    5)设置启动参数
    setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),3M(kernel),32M(rootfs),28M(test)'
        setenv bootcmd 'nand read 0x82000000 0x100000 0x300000;bootm 0x82000000'
        sa
        
5、启动新系统
    reset    # 重启进入新系统。

第四章、开发前环境准备

1、管脚复用
    与媒体业务相关的管脚复用都在mpp/ko目录下的sh脚本中配置,如果与实际情况不符请直接修改,此脚本被load3516a调用,在加载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 -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
    # default online
    ./load3516a -a -sensor mn34220 -osmem 64
    # vi_vpss offline
    ./load3516a -a -sensor mn34220 -osmem 64 -offline

# 进入各sample目录下执行相应样例程序(sample需要先在服务器上成功编译过)
    cd mpp/sample/vio
    ./sample_vio 0 1
    
第六章 地址空间分配与使用
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模块时,通过模块参数指定其起始地址及大小,load脚本中根据osmem大小来进行计算,例如:
    ./load3516a -a -sensor mn34220 -osmem 64
    
    您也可以通过修改mpp/ko目录下load3516a脚本中的mmz模块参数,来修改其起始地址和总大小。
    4)请注意MMZ内存地址范围不能与OS内存重叠。

2、DEMO板DDR内存管理示意
    以容量为512MBytes的DDR内存为例,以下为根据本文档和SDK默认配置得到的内存管理示意图:
    
    DDR:                                                           
    
    -----|-------|  0x80000000   # Memory managed by OS.              
    64M  | OS    |                                                 
         |       |                                                 
    -----|-------|  0x84000000   # Memory managed by MMZ block anonymous.          
    448M | MMZ   |                                                 
         |       |                                                 
    -----|-------|  0xA0000000   # Memory managed by MMZ block jpeg.                       
                     
    
    注意:
    (1)用户在配置启动参数时需要设置OS的管理内存为64M,“setenv bootargs 'mem=64M ...”。      
    (2)系统启动后,配置load3516a脚本中指定总内存为512(mem_total=512),加载时指定osmem为64(-osmem 64),则MMZ管理的内存为448M。    
        (3)如果有特殊应用,可以自行修改load3516a脚本,进行mmz区域划分,如“insmod mmz.ko mmz=anonymous,0,0x84000000,442M:jpeg,0,0x9fa00000,5M anony=1”。

Hi3516A/Hi3516D SDK 安装以及升级使用说明相关推荐

  1. Hi3519V101/Hi3516AV200 (之)SDK 安装以及升级使用说明

    Hi3519V101/Hi3516AV200 (之)SDK 安装以及升级使用说明 说明:本文以Hi3519V101描述为例,如未有特殊说明,Hi3516AV200与Hi3519V101完全一致. 第一 ...

  2. HiMobileCam SDK安装使用说明(Hi3559V200)(海思)

    版权所有 © 上海海思技术有限公司 前 言..........................................i 目 录................................ ...

  3. hive的安装和升级

    目录 目录 安装 升级 检查环境 参考 目录 安装 升级 安装 nohup hive –service hiveserver & 启动: sudo nohup ./hive --service ...

  4. 迅搜 php,安装、升级 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎

    安装 Xunsearch PHP-SDK 是与 xunsearch 后端服务协同工作的,所以后先必须先在您的服务器 上安装服务端,服务器操作系统要求必须是 Linux.BSD 或其它类 UNIX 系统 ...

  5. 最详细的Cydia使用教程------完全版。新补充Cydia1.1.1离线安装(升级)方法。

    最详细的Cydia使用教程------完全版.新补充Cydia1.1.1离线安装(升级)方法. 写在前面 越狱后看到最多的问题是越狱后出问题,当然,最多的还是关于cydia的. 看到这里关于Cydia ...

  6. Maemo 5 SDK 安装使用

    系统: ubuntu 9.10(可以链接互联网) 安装方法: 1. 下载安装程序 $ wget http://repository.maemo.org/stable/5.0/maemo-sdk-ins ...

  7. OMAP5 uEVM SDK安装介绍

    OMAP5 uEvM SDK安装介绍               2014/3/3 OMAP5 uEVM是美国Svtronics公司生产的,用于评估OMAP5芯片的性能,它的图片如下: TI针对OMA ...

  8. LOL Assistant英雄联盟挂机升级使用说明

    LOL Assistant英雄联盟挂机升级使用说明 (转载请保留,欢迎光临我的CSDN BLOG:http://blog.csdn.net/coldwind811201) 目前版本:0209 下载链接 ...

  9. linux升级apache版本,Apache2.4版本的安装或升级常见错误

    在安装或者升级成Apache2.4版本时可能会一些错误,我们在实际生产环境中Apache是需要定制编译参数的,以实现生产环境的服务定制,但是用旧的编译参数时一般会报这样的错误,如下: -略- chec ...

最新文章

  1. 可视化的Redis数据库管理工具redis-desktop-manager的初步使用(图文详解)
  2. 基础-计算机及操作系统和应用程序的概念
  3. 老李分享:Mac快捷键
  4. Angular 一个简单的指令实现 阻止事件扩散
  5. isInfoEnabled究竟多有用?
  6. linux 阶段作业领导者,Linux入职基础-5.22_命令ps显示进程状态(应用实战6)
  7. 绘画 某种字体 以某种折行规则 最后画出的text有多大
  8. Flash中的SLC/MLC/MLC--基础
  9. 网络推广恶意点击js_做好网络推广,是做好网络营销的必要条件
  10. 这个是帮朋友发的,。。。我也觉得挺无聊的。
  11. python3安装cx oracle,[求助]python3安装cx_Oracle 报错
  12. 陈玉林是哪里人_玉林仿古砖公司在哪里
  13. PostgreSQL中的执行计划
  14. 程序员的传奇“破圈”之路
  15. 马库斯再谈AlphaGo Zero不是从零开始,AGI可能需要这十大先天机制
  16. Bailian2994 拼装模型【哈夫曼树】
  17. 1090 危险品装箱 (25 分)—PAT (Basic Level) Practice (中文)
  18. android (三)、Activity工作原理
  19. java quartz配置
  20. 80后,规划好你的职业道路!

热门文章

  1. Unity摄像机跟随转动分析
  2. jetson nano opencv 打开 CSI摄像头_OpenCV基础操作-读取、几何变换、阈值
  3. 与爱同行,育润走进贫困家庭,助推公益事业
  4. 使用百度云GPU主机做深度学习
  5. CTFshow刷题日记-WEB-JAVA(web279-300)Struts2全漏洞复现,Java漏洞复现
  6. springboot+thymeleaf+shiro标签
  7. 一个int类型到底占多少个字节?
  8. 【MySQL作业】分组查询 group by 子句——美和易思分组查询应用习题
  9. Qt Q_UNUSED使用
  10. [ 工具 ] ___ VT : VMware Tools