MediaTek Filogic 開發板的初次體驗,一個具有WiFi 6和藍芽 5.2功能的模組

        最近拿到聯發科 Filogic 130A 開發板,其核心晶片主要集成了無線通訊 Wi-Fi 6 和藍芽 5.2,光看這兩點就知道這晶片很新穎,原本設計就是以 ARM 架構的晶片(Cortex-M33等級以上),還整合了 DSP 核心,負責處理語音相關的運算,在應用上就多了無線通訊加語音的功能。 有關開發板的介紹與詳細資料,請連結到大大通網站 https://www.wpgdadatong.com/。接下來,我要從該網站下載 SDK 版本來試試看板子的操作。


搭建環境

        SDK裏面包含了多達五十幾份的技術文件,一開始要怎麼進行呢?一般使用者若沒有原廠支持,確實有點麻煩。底下我整理了入手的步驟,第一步先搭建一個編譯 SDK 的環境,根據 "Build Environment" 文件,編譯必須在 Linux 系統或者 MSYS2 (可在Windows系統編譯),本人自己嘗試用 MSYS2 環境編譯,其實還要修改 SDK 的編譯檔案後才能成功編譯,過程對初學者恐怕不容易立刻入手。還是回到 Linux 系統上,Linux 要安裝好 Make、Curl、python...等軟體,而根據"Build Environment Virtual_Env" 文件提到,除了基本軟體外,必須安裝 venv virtualenv 軟體後,這樣才算完整的編譯環境。


Compile SDK

        第二步就是編譯 SDK 程式,先要了解 Filogic 130/130A 是兩種封裝的晶片,在編譯時我們輸入的命令不同,一個是 QFN,一個是 BGA。我在虛擬機的 Ubuntu 上編譯,輸入命令 ./build.sh mt7933_hdk bga_sdk_demo -o=IMGTOOL_ENV=~/venv/imgtool/bin/activate 後,便開始進行編譯,有可能會遇到出錯,這時查看 build.log 可以找出錯誤的原因。記得我第一次編譯發生的錯誤是 venv/imgtool 找不到,原來是編譯命令的 IMGTOOL_ENV 所設定的路徑不正確,建議最好設定絕對路徑以免出錯。  底下的影片是紀錄整個編譯與燒錄的過程。



        再來,我們深入了解一下編譯的配置檔案。編譯這個項目需要先有四個重要檔案:Makefilefeature.mkchip.mkboard.mk,其中 feature.mk 裡面定義韌體各項功能的啟用/關閉,比如 BTaudioLwIP…等許多與驅動相關的功能。這個 feature.mk 在編譯時會連動到 chip.mk 裡面的定義,在 chip.mk 檔案有描述各個功能的說明,值得開發者一看。

        如何創建一個自己的module?首先準備四個檔案*.c*.hmodule.mkMakefile,然後依照文件的步驟建立 make 的內容。最後一步把這個 module.mk 加到根目錄系統的 Makefile 裡面,再執行上述的編譯指令。編譯後產生好多個韌體檔案,我們不知道會先執行哪一個?不過板子通電後,可以確定的一點是一定會執行到主程式的韌體,先執行 startup_mt7933.s (組合語言),再跳到 system_mt7933.c (系統初始化),才跳到 main.c (執行主程式)。接下來,需要把系統的日誌打通,這樣才能知道韌體運行到哪些位置。

        此外,根據 "Open Source Software" 技術文件,可以自己增添第三方開源的程式碼。SDK 程式碼的架構主要放在 middleware 底下,一個是 MTK 目錄,另一個是 third_party 目錄,如下圖一所示。我在 chip.mk 裡面發現定義了不少第三方的源碼路徑,但是不在 SDK 裡面,如下圖二,大概缺少的部分要靠自己去添增吧!

圖一:支援第三方開源軟體


圖二:chip配置裡面所列的第三方軟體


Download FW

       第三步就是燒錄韌體,將 SDK 編譯後的碼下載到板子上。依據 "Flash Burning Tool" 技術文件,開發板上有一個 FDTI debug 小板,它的功能是 USB 轉成 UART,不過接上電腦後,會出現四個 COM port,其中燒錄過程會用到最後一個 port。重要的步驟,燒錄前,先要將板子上的 DIP-6 切到 ON 進入燒錄下載模式,這動作應該是讓 bootload 程式判斷燒錄或跳到正常開機程序。燒錄的過程,請參考上面的影片說明。


Test commands

       第四步從 COM port 測試板子的指令:前一步驟燒錄完成後,記得要將剛剛的 DIP-6 切回原本的模式 OFF。電腦上打開 putty 或終端機,將通訊速度設為 921600 bps 8-N-1,輸入問號就能查看指令,如下圖所示,可以開始玩一玩了!



        大致上,整理了技術文件閱讀的順序 Build Environment -> Build Environment Virtual_Env -> Open Source Software -> Flash Burning Tool

留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] Android APP 藍芽範例說明 -- BluetoothChat

[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸

[應用] 藍芽 BLE client/server 架構:BLE remote controller