[ 物联网篇 ] 12 – 联发科MTK8516 开发环境搭建

  • 2019 年 12 月 10 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/z2066411585/article/details/103440586

联发科MTK8516开发平台主要面向智能语音助手设备(Voice Assistant Devices)和智能音响的系统设备。可以看到亚马逊的Echo和阿里巴巴的天猫精灵等等,出货量还是很大的.

MT8516支持四核心64位ARM®Cortex-A35™,主频达1.3GHz。该芯片还内建WiFi 802.11 b/g/n和支持蓝牙4.0。该芯片还提供多种存储规格,包括LPDDR2、LPDDR3、DDR3、DDR3L和DDR4。

MT8516还支持多达8个TDM通道和2个PDM输入,以支持来自多个源的音频输入,适用于远场(Far-field)麦克风语音控制和智能音响设备。

主要的优势在于内部集成WiFi和BT, 降低外挂模块的成本, 更加缩小PCB的体积. 还有针对麦克风阵列的音频输入.

针对联发科开发平台,是需要缴纳入门费用的,一般很小的公司很难承担, 所以选用联发科平台开发的,相对公司/客户还有比较有实力.

MTK8516资料 注册后全部都可以下,这个网站应该是MTK官方支持的

Code Download

如果按照该教程下载的源码, 编译的时候会发现很多第三方库的链接已经失效了,需要手动去更改,发现不止一个库,可想而知,链接中SDK已经没有维护了,所以说想要开发量产的话,需要联系MTK下载最新的代码. 但是另外的文档资料还是可以参考的.

针对智能语音, 我司有MTK8516的全套的开发解决方案,如果你有客户,可以随时沟通. 另外的还有其他的智能语音平台的方案.

芯发科技-第二步-获取软件包

MTK8516 SDK采用Yocto构建,源码的目录结构:

.  ├── doc  ├── meta       // 平台项目配置文件, 里面还有细分目录  ├── prebuilt   // 开发平台预编译文件  ├── repo  └── src       // 平台源代码(包括kernel部分)    meta  ├── meta-gplv2  ├── meta-mediatek // Mediatek平台基础支撑层  ├── meta-mediatek-aud   // Mediatek平台Audio产品基础支撑层  ├── meta-mediatek-gpl  ├── meta-mediatek-mt8516 //Mediatek平台应用程序  ├── meta-mediatek-mt8516-gpl  ├── meta-openembedded   // Yocto开发环境嵌入式开发核心组件  └── poky   //Yocto开发环境编译系统    src  ├── apps  │   └── aud-base  ├── bsp  │   ├── dramk_8516  │   ├── lk  │   ├── scatter  │   └── trustzone  ├── connectivity // BT和WIFI  │   ├── bin  │   ├── bt_others  │   ├── bt_stack  │   ├── combo_tool  │   ├── wifitesttool  │   ├── wlan  │   ├── wlan_cfg  │   └── wlan_tool  ├── devtools  │   ├── datool  │   └── nfsb  ├── kernel   // 内核  │   ├── linux  │   └── modules  ├── multimedia  │   ├── audio-misc  │   └── smartaudioplayer   // MTK音频框架  └── support      ├── efuse_writer      ├── libnvram_custom      └── nvram    src/apps/aud-base/main  // 具体的应用实现  ├── acfg  ├── am  ├── appmainprog.c  ├── assistant_stub  ├── ble_mesh_app  ├── bluetooth  ├── bluetooth_gatt_test  ├── bluetooth_hfp  ├── cli  ├── CMakeLists.txt  ├── device_mngr  ├── gva_ota_inc  ├── inc  ├── led  ├── led_manager  ├── misc  ├── mw  ├── playback  ├── recovery  ├── script  ├── state_mngr  ├── state_mngr_cast  ├── timerd  ├── upg_control  ├── upg_control_cast  ├── user_interface  ├── utils  └── wifi_setting
Build

编译之前需要安装一下开发依赖包

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm g++ libstdc++6 lib32stdc++6 libpulse-dev libevent-dev ninja-build rpm2cpio cpio    $ wget -O gn http://storage.googleapis.com/chromium-gn/3fd43e5e0dcc674f0a0c004ec290d04bb2e1c60e    $ sudo mv gn /usr/bin    $ sudo chmod 777 /usr/bin/gn

Yocto 的编译方式还是常用的命令

$ export TEMPLATECONF=${PWD}/meta/base/conf/mt8516/aud8516-ztk-basic    $ source meta/poky/oe-init-build-env    $ bitbake mtk-image-aud-8516 2>&1 | tee build.log

第一次编译会花费较长的时间,过程中会去下载第三方的安装包,大概3h左右, 之后编译只需要指定好downloads目录即可.

成功编译后,生成的image保存在:build/tmp/deploy/images/aud8516-ztk-basic

编译过程中的文件系统: build/tmp/work/aud8516p1v2_consys_slc-poky-linux/mtk-image-aud-8516/1.0-r0/rootfs

开发环境搭建完成,余下的工作就是针对客户需求定制开发了.