先前已經大致介紹過硬體的開發過程,接下來想和大家分享軟體開發平台的選擇。其實這並不是唯一的選擇,但在當時的情境下,這是我認為最合適的做法。

SoC 的架構搭配 Armbian,就像我們常見的 Raspberry Pi 的環境,整體使用上與一般 PC 安裝 Debian 或 Ubuntu 沒有太大的差異。事實上,軟體環境與作業系統的結合,讓我們在開發時幾乎可以忽略底層硬體,因為整個軟體開發流程都能在各種平台上運行,即使 CPU 架構不同也不影響。

這次我選擇了 nodejs 作為主要開發平台。會選擇 nodejs,主要是受到 Ubiquiti 的影響,他們的設定平台網頁就是以 nodejs 開發的。長期下來,也讓我更想挑戰在 SoC 平台上打造一個產品的感覺。因此,我先以路由器為參考,定義並產生基本功能:

功能 開發平台 說明
產品的主要功能 nodejs 使用nodejs可進行快速開發並驗證,除了第一認執行時間較長
設定工具 C# 透過RS485進行溝通
FW 更新 script 主要功能接收FW檔之後交付背景執行的shell script停止功能並更新nodejs程式
LED 燈號 C 透過Socket來操控SoC之GPIO讓LED進行閃爍,並建立LED的燈號模式
恢復原廠設定 nodejs 主功能提供一命令讓存入的json檔案設定值改成預設值

流程.drawio