文章

顯示從 2月, 2022 起發佈的文章

在聯發科 Filogic 130A 系統中,SDK 如何擴增更多模組和項目呢?

圖片
        有關 MediaTek 的 Filogic 130/130A 物聯網開發板的操作,在前一篇文章  "MediaTek Filogic 開發板的初次體驗"  已經學習如何搭建一個編譯系統 、 編譯 SDK 、 燒錄 firmware 、測試板子的指令,接下來如何新增一段自己的函數到 SDK 項目裡,就像在學習第一個程式 hello world 一樣。撰寫自己的程式碼,然後編譯 、 燒錄 、 再驗證,這樣才能逐漸豐富這塊開發板的內容,實現自己想要的功能。YouTube 教學影片的連結如下: https://youtu.be/1ZxxTD8Qxg4         第一步,我們先了解SDK文件夾的結構圖,下圖一所示,SDK 原始程式碼主要放在 kernel 和 middleware 目錄底下,另外放在 bga_sdk_demo 目錄下,包含主程式 main.c 以及開機初始化程式 startup_mt7933.s 。而編譯 SDK 時的配置文件 Makefile 放在  bga_sdk_demo\GCC 目錄底下,之後我們需要添加自己的函數檔案到這個 Makefile 內容裡。 圖一:SDK 文件夾的架構圖         接下來第二步,我們在 middleware 底下創建一個函數的目錄,名稱自行命名。根據 " Build Environment " 技術文件的描述,該目錄下要準備 Makefile 和 module.mk 檔案用於編譯配置,有關 Makefile 內容的設定需參考文件裡的範例,這裡就不多說明。同樣地,module.mk 也是參考文件裡的範例後創建即可,這個檔案的內容用來說明編譯時載入哪幾個我們寫的程式碼檔案,如 .c 和 .h 檔案。 圖二:新增自己設計的函數         第三步,要將前述的編譯配置加入到 SDK 項目裡,如此一來,當系統編譯時,便會把我們的函數檔案一起編譯了。打開 在  bga_sdk_demo\GCC 目錄底下的 Makefile,新增一段配置,如下圖所示。到目前為止,我們只是先把函數的編譯環境創建出來,還沒動手寫自己的函數檔案呢! 圖三:在 Makefile 裡,新增自己函數的編譯配置         第四步,我們寫一個簡單的函數,測試將文字輸出到 COM p

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 所設定的路徑不正確,建議最好設定絕對路徑以免出錯。  底下的影片是紀錄整個編譯與燒錄的過程。 影片連結處:https://youtu.be/3JwzQ6Yp

開源 RT Thread Studio,用於晶片的韌體開發

圖片
簡介         早期在開發韌體時,電腦環境需要自己架設 cross-compile 環境,並將編譯器的 tool chain 工具設定好路徑才能使用,參考前文  漫談 ARM cross compiler 環境 。不過,現在的開發環境人性化多了,市面上有 KEIL 、IAR...等 IDE 商業工具,我們編譯 ARM 核心晶片變得很便利。前陣子發現一套開源的 IDE 工具,稱為 RT-Thread Studio ,它支援 ARM 和 RISC-V 晶片的韌體編譯,號稱是開發物聯網的 IDE。下載並安裝 RT-Thread Studio 之後,這套工具外觀看起來就是一套類似 eclipse 的工具,對軟體開發者不會陌生。最後說一點,RT Thread Studio 吸引到我的原因,除了開源之外,主要還是使用 KEIL 和 IAR 這些 IDE 工具的開發成本越來越高,不得不找尋新的工具。 套件說明         圖一是創建一個新的項目,我們選用 STM32F103 的晶片來試試看。首先,在創建項目時,可以選定這是 RT-Thread 項目 、 BSP 項目或者無 RT-Thread 架構的項目。甚麼是 RT-Thread 架構?簡單說,把它想像成是作業系統 (OS) 的架構,底層各類 ARM 或 RISC-V 晶片的 BSP (Board Support Package) 當作驅動程式。此外,這架構還有一個 nano 版本,屬於相對精簡的版本,適合開發資源有限且運算量低的晶片。 圖一:創建一個新項目         下圖二是下載資源的視窗,也像 eclipse IDE 一樣,我們可以下載開發時所需要的資源,圖中顯示目前支援的交叉編譯工具有哪些,支援的除錯器又有哪些。一般來說 ARM 的編譯工具市面上已經很常見,不過近期 RISC-V 晶片開始火熱起來 (Intel 加入該領域),因此這套 IDE 非常適合拿來玩一玩 RISC-V 板子。 圖二:編譯的 tool chain 和除錯器         下圖三是目前 RT-Thread 架構支援的 BSP (Board Support Package),可視為每塊開發板子的驅動程式一樣,各家晶片原廠通常會推出晶片開發板或評估板,同時提供板子的驅動。從列表來看,支援的板子非常多,而我比較常使用的是 STM