分享

转载 安霸A288S平台SDK编译简介

 tuchangliang 2010-09-10
  •  本站(www.)原创文章,转载请注明出处

  • 项目中使用安霸的A288S平台进行视频处理。该芯片类似TI的达芬奇平台,都是采用ARM加DSP的架构。不同之处是安霸的DSP是专用于视频编解码,用户不能对它进行通用操作。而达芬奇的DM6x系列,DSP是一个C6X的核,用户可以在上面实现自己的算法。当然达芬奇的DM3X系列与安霸平台可以说非常相似,也是专用DSP。

    在得到安霸的SDK后,可以编译出boot,kernel以及文件系统。
    该平台使用Codesourcery编译器,可以从Codesourcery网站下载:
    解压后,即可得到所需的编译工具。
    在bin目录下,即所需要的编译工具,包括gcc, ld等,当然都加了前缀。
    在arm-none-linux-gnueabi/libc下,即glibc的库及相关文件。在编译应用程序时,需要链接这些通用库。
    由于SDK将toolchain的目录设为一个固定目录。所以需要将这些目录链接到解压后的编译工具上。
    具体做法:
    ln –s 编译器目录 /usr/local/CodeSourcery/Sourcery_G++_Lite
    ln –s编译器目录 /opt/codesourcery
     
    使用buildroot编译SDK编译时所需要的外部常用工具以及库文件等。
    比如busybox工具,makedevs工具以及XMLRPC的库等。
    这里可以从buildroot.uclibc.org上,下载最新的buildroot。
    配置文件使用SDK提供的默认配置:
    将tools\ToolChain\buildroot\local\CodeSourcery目录下的CodeSourcery.config文件覆盖buildroot目录下的.config文件。
    然后make。
    编译完成后,将buildroot目录链接到/usr/local目录下:
    ln –s buildroot目录 /usr/local/buildroot
    编译buildroot容易出现问题。
    本人遇到的问题,主要如下:
    出现错误:error: C compiler cannot create executables
    主要是在编译软件包时,编译器在搜索glibc库时,错误地定位到本机的库上,导致库文件不兼容。
    解决办法:
    在package目录下的Makefile.in文件中设置TARGET_LDFLAGS变量,对glibc库进行定位。注意不能使用-L选项去设置,而要用-wl,-rpath去设置。
     
    编译器安装后,即可进行SDK的编译。
    进入SDK目录下的ambarella目录。
    首先配置环境变量:
    source ./env/CodeSourcery.env
    然后配置SDK选项,这里使用默认的一个IPCAMERA的配置:
    make ipcam_config
    然后即可进行编译;
    make
    在编译完成后,本人出现下载到目标板上,系统无法启动。后然发现buildroot生成的makedevs工具路径与SDK设置的不一致,导致文件系统中的/dev目录下没有任何文件。
    解决办法:
    将buildroot目录下的build_arm_CodeSourcery/makedevs-host文件夹内的makedevs工具拷贝到build_arm_CodeSourcery/staging_dir/bin下。
     
    以前做达芬奇的DM3X系列项目时,boot,kernel,文件系统都是分开生成,然后各自烧入flash中。安霸的将这些统一在SDK中编译后,打包生成一个bin文件。然后可以使用DirectUSB,直接下载的目标板上。这大大方便了开发人员。
    生成的bin文件在:ambarella/amboot/build/memfwprog下。
    根据自己想要升级的部分,选择对应的bin文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多