[ 物聯網篇 ] 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

開發環境搭建完成,餘下的工作就是針對客戶需求訂製開發了.