全志科技
直播中

文小二

2年用户 830经验值
擅长:嵌入式技术 处理器/DSP 控制/MCU
私信 关注
[经验]

全志V853如何实现mpp sample外编?

全志V853开发板购买链接:https://item.hqchip.com/2500385672.html

1.主题

V系列多媒体mpp sample外编方法

2.问题背景

用户希望Tina SDK 能提供编译工具链,多媒体库和头文件,使得自己编写的应用能编写Makefile 去链接多媒体库来编译生成app应用。
介于此方法,本FAQ提供一份编译系统demo样例。 里面包含说明了:

  1. Tina SDK 如何输出多媒体库;
  2. 如何编写Makefile 去链接多媒体库;
  3. 如何将Tina SDK 里面MPP的sample 放到这里进行编译;
  4. 不需要Tina SDK 如何重新打包成全志固件;
  5. 指导如何制作SPINOR 的烧录器固件;

3.解决办法

请下载附件的编译系统,并放到linux 上运行。 执行./build.sh 既可以编译。每个目录下都有个REAMD说明,请查看。

README:

本编译系统是一个演示全志V系多媒体mpp sample 脱离Tian SDK 编译的并编译后放到rootfs下重新做固件的一个demo

1. 本编译系统目录结构介绍

├── aw_pack_src #这个目录是V系列Tina SDK 编译打包后输出的目录,里面包含了库和分区文件
      ├── build.sh    #编译脚本
      ├── Makefile    #编译Makefile,可作为自己工程的参考
      ├── output      #编译后的应用和中间产物
      ├── sample      #sample 放置的目录
      ├── share_lib   #需要依赖的动态库(设备端rootfs也有)
      ├── mk_firmware #制作全志固件的脚本
      └── toolchain   #编译工具链

2. 使用方法:
①将V系列多媒体sample 拷贝到 ./sample 目前下。阅读./sample/README了解详情;
②将Tina SDK 新输出的文件夹aw_pack_src 重新替换当前的./aw_pack_src()
③执行 ./build.sh 进行编译
④编译成功后。在./out 可看到 sample 和 strip 后的sample

3. Tina SDK 如何生成新的aw_pack_src(库和头文件)来替换?

  • 选上配置
    make menuconfig --->Target Images --->[*]support pack out of tina
  • pack 打包,然后会在out/xx方案/生成一个目录:aw_pack_src,将此目录拷贝出来即可

4. 重新替换了个sample,但编译出错怎么解决?

  • cannot find -lxx 库
    因为多媒体的库会根据make meunconfig 来配置一些功能组件。如果需要增加/裁剪功能,则编译出来可能就多或少一些库了。
    如果发现报错cannot find -lxx , 可以直接尝试修改Makefile,把这个-lxxx 去掉再编译试试。
  • undefined reference xxx: 函数
    因为多媒体的库会根据make meunconfig 来配置一些功能组件。如果需要增加/裁剪,则编译出来可能就多或少一些库了。
    如果发现报错undefined reference xxx:,则可以库目录下执行grep -rn "xxx", 看能不能搜索出一些结果是关于库的,如:
grep -rn "AW_MPI_SYS_Init"
Binary file ./aw_pack_src/lib_aw/lib/eyesee-mpp/libaw_mpp.a matches

搜到AW_MPI_SYS_Init 结果在libaw_mpp.a库里面。 这时候在Makefile里面 加入-law_mpp 即可。

如果在本目录搜不到,则可以去Tina SDK目录搜索:

grep -rn "AW_MPI_SYS_Init" out/v851se-perf1/staging_dir/target/usr/lib   #注意v851se-perf1 是板子的名称。 这个目录下是SDK 编译出来的所有库 。

更多回帖

发帖
×
20
完善资料,
赚取积分