免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4901 | 回复: 0
打印 上一主题 下一主题

海思Hi 3512 基本开发汇总 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
Andrew Huang <bluedrum@163.com> 转载请注明作者及网址

 手头有一个海思3512开发板,我用来评估是否来进行开发项目。因此来对此进行深入分析。

 一.基本情况
   海思的 Hi3512 的CPU内核是ARM9 (ARM926EJ-S),主频最高达到264MHz,它的卖点是支持H.264/mjpeg 硬件解码的低成本低功耗ARM CPU。它主要目标市场是IPCAM,DVR和视频服务器市场,因此与一般通用的嵌入式CPU有不少区别:
我们以市场上常见的s3c6410对比一下。
  视频接口:
      Hi带有较多视频的接口,输入接口有:2路BT.656/601,1路 720p的数字输入接口,摄像头也带了ccd和cmos接口。 对一般CPU常见的LCD接口反而不带。
   Hi3512自带一个PCI接口,方便多CPU级联或接硬盘,s3c6410没有带这个接口.
   因为它常工作于恶劣的工作环境,因此存储器使用以Nor Flash为主,而且没有带大容量Nand Flash接口.
   

   其基本特性可以参见《Hi3512 H.264编解码处理器简介.pdf》

    对于基本寄存器的操作和使用手册,即CPU的datasheet,是《Hi3511/Hi3512 H.264编解码处理器用户指南.pdf》

   
   
 二。开发板分析
    完整开发一个视频应用,可能需要开发板/摄像头/电视监视器

    开发板接口:
      串口配置:波特率 115200: 8-N-1
      电源:使用12v 电源.
       
   
    开发板的软件结构:  
       其运行环境以Linux 为主。目前内核使用的版本是 2.6.14.(这个是比较老的版本)
       bootloader 使用 u-boot 1.1.4.
       根文件系统支持 jffs2,cramfs .
       gcc 使用 3.4.3 ,在SDK使用的名字比较长,是 arm-hismall-linux-gcc 

       Hi3512与Hi3511共用开发环境,使用官方发布的 Hi3511 VSSDK_V1.1.2.3

 三.基本开发环境。
     
     官方发布的开发环境,是把所有软件打包.Hi3511_VSSDK_V1.1.2.3.tgz,解压后运行一个脚本.
    tar xvf Hi3511_VSSDK_V1.1.2.3.tgz
    tools/toolchains/cross.install #安装编译器
    ./sdk.unpack                   #解压其它部分.

    这种发布形式没有象其它Linux的开发环境,按gcc ,内核,u-boot,根文件系统分开打包.而且一锅烩,我理解是想做成傻瓜式安装,方便对Linux不熟的开发者使用。
   
   但是很不幸,这样的本意几乎无法实现,首先Linux发布版本根多,试图用一个脚本搞掂所有发布版就不现实,比如我在Ubuntu 10就安装出错了,要修改脚本,即便脚本能运行,看一下官方补充的补充的安装手册,步骤相当多。
 为什么不按大家约定的安装形式来安装了?因此你毕竟给熟练的嵌入式Linux开发人员来使用的东西,如果他到现在还是对LINUX还是傻瓜级别,还是别混这一行了。
   一锅烩反而让熟练的开发者感到迷惑。比如我的根文件系统,内核安装失败,于是我想手工安装,发现这个目录繁多的东西让我很难处理。哪一个原始版本,哪一个是海思官方修改过的东西。在经过分析后,我按一般嵌入式Linux 的开发环境发布形式,重新将整个SDK分布打包成如下几个压缩包。并且在每一个包进行小的修正方便开发。

    arm-hismall-linux-gcc-3.4.3.tar.gz     #gcc编译器
    arm-linux-2.6.14-hi3512.tar.gz         #海思的3512内核.
    rootfs-hi3512.tar.gz                   #根文件系统
    u-boot-1.1.4-hi3512.tar.gz             #u-boot 源码
    mkimage-hismall.tar.gz                 #根文件系统制作工具,为了方便,这一些程序也加入到arm-linux-gcc 的目录当中。因此这个只是备份
    hi3512-image.tar.gz                    #各种发布文件的image文件
    busybox-1.1.2-hi3512.tar.gz            #busybox 的源码.

  后面均按上述tarball来进行安装使用。
  
  3.1 编译器安装
     a).解压 
        tar xvf arm-hisi-linux-gcc_3.4.3.tar.gz -C /
    解压后将一般编译器的习惯,安装在目录 /usr/local/arm/3.4.3-hismall 之下
    
     b)   将编译器加入系统路径
        如果用户目录下存在 ~/.bash_profile,则编辑,否则如果存在 ~/.bashrc 也可以编辑。  
        在脚本中最后面增加如下语句 
          export PATH="/usr/local/arm/3.4.3-hismall/usr/bin:$PATH"
      一般来,RHEL需要编辑 ~/.bash_profile,而ubuntu需要编辑 ~/.bashrc

     c)让路径生效
        source ~/.bash_profile source ~/.bashrc
       用which命令测试是否能找到arm-hisimall-linux-gcc
           root@Andrew-server:~# which arm-hismall-linux-gcc
           /usr/local/arm/3.4.3-hismall/usr/bin/arm-hismall-linux-gcc

  3.2 项目结构
     项目可以入在任何目录,比如我放在/home/hxy之下。项目目录名称为hi3512,以下我按我经验划分更为简明,有用的结构。
      
     hi3512  
       |
       +-- rootfs       #根文件系统展开目录
       |
       +-- linux-2.6.14 #内核目录
       |
       +-- u-boot-1.1.4 # bootloader目录
       |
       +-- libs         #应用库源码目录
       |
       +-- app          #应用程序源码目录
       |
       +-- output       #输出目录
             |
             +--arm-linux #应用库,程序输出目录
             |
             +- images    #内核,bootloader,根文件系统image等目录
     
  3.3 制作根文件系统
       a)解压,在hi3512 目录下运行 
             tar xvf rootfs-hi3512.tar.gz 
       b) 制作image:
         在hi3512/rootfs 下执行 ./mkimg.rootfs 
         它将在在 hi3512/output/images 自动生成三种类型的根文件系统,(jffs2,cramfs,cramfs-initrd) 
      一般是烧录 rootfs-hi3512.jffs2.img 这个文件

  3.4 编译内核
      a)在项目目录解压  tar xvf arm-linux-2.6.14-hi3512.tar.gz
         注意已经在官方原有基本上修正过.

    
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP