全志V系列芯片如何实现mpp sample外编?

2024-02-02 17:14:53 浏览数 (2)

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. 本编译系统目录结构介绍

代码语言:javascript复制
├── 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", 看能不能搜索出一些结果是关于库的,如:
代码语言:javascript复制
grep -rn "AW_MPI_SYS_Init"
代码语言:javascript复制
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目录搜索:

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

附件:sample_ex_compile.tar.gz

0 人点赞