AI與開發

程式鬼話|韌體工程師可以怎麼問 AI

最近很多人在談 AI 寫程式, 但如果你真的在做韌體,很快會發現一件事:

AI 最好用的地方, 其實不只是幫你直接寫 code。 還有: 幫你理解系統。

下面是我自己比較常用的幾種方式。

■ 用 AI 快速理解規格書

很多 MCU 的文件都非常厚。

有時候一份 規格書就幾百、千頁。

如果直接從頭看,很容易迷路。

我通常會先問 AI:metad

例如:

MSP430FR2311支援幾組UART? 或者:

我要在MSP430FR2311上設定兩個500Hz的PWM要選哪隻腳位 AI 通常會先幫你整理一個大概的結構。

他會自己收尋,或是你可以餵他文件(但規格書通常很肥,若有簡易版的文件更好)

這時候再回去看規格書,

會快很多。

有時規格書也會寫錯,若發現AI邏輯怪怪的 還是要個地方合理懷疑一下

■ 用 AI 做跨平台理解

很多韌體工程師都會遇到一個問題:

換 MCU。

例如: STM32 → TI Microchip → NXP

很多晶片的概念其實差不多, 但名稱和設定方式都不一樣。

AI 在這裡很好用。

例如我會問:

以下是我TI MSP430FR2311的UART接收的function跟初始化 ….. …..

幫我整合到這個專案(Microchip ATtiny3217)

AI 不一定一次成功, 但可以省下很多自己慢慢轉移的時間。

通常都會有一些小地方出問題, 導致韌體編譯不過。

但基本再丟回去問AI, 都可以解完。

■ 用 AI 做跨語言理解

有時候問題不是 MCU。 而是語言。

例如: C/Python/JavaScript

同一個邏輯,不同語言寫法差很多。

AI 在這裡其實很方便。

例如我會問:

以下這段code是之前我用python寫出來的 功能是收尋藍芽裝置,並分析他的封包

….. (程式碼) …..

幫我轉成C語言 我要貼到韌體專案裡

開發藍芽的韌體,我常常會用python來開發驗證程式協助我開發跟確認藍芽封包

G蛋也會自己用AI開發Android跟IOS的應用程式來驗證韌體

G蛋也會用python寫IOT後台程式(以前寫的時候沒AI),所以我算是個語言都會碰到,現在有AI真的是方便很多

■ 用 AI 整理 Debug 思路

很多韌體問題其實不是語法錯。

而是系統行為。

例如:

● 偶爾重開機

● 某些時候延遲突然變大

● 某個事件偶爾沒被處理

這時候我有時會把狀況描述給 AI:

系統偶爾重開 可能有哪些原因? AI 通常會幫你列出幾個方向:

● interrupt 卡住 ● 記憶體問題 ● watchdog 觸發

這其實很像一個 可以隨時討論問題的工程同事。

build code fail我現在都丟給AI處理 自己都懶得去找原因

其實就像是跟同事討論除錯,只是你不用等你同事有空,AI可以一直陪你(付費版)

■ AI 是工具,不是工程判斷

AI 確實可以幫你加速很多事情:

查資料 理解平台 整理 code

但有些事情

例如: interrupt 要怎麼設計 資源要怎麼分配 系統流程怎麼安排 這些其實都是工程判斷。

AI 可以幫忙。 但可能最後真實是設計的太複雜, 韌體編譯不過。

或是生了一堆糞code, 影響資源分配, 引出其他問題。

所以判斷AI給你的, 設計方式邏輯。

我們要自己能判斷, 能不能用。

■ 延伸閱讀

如果你對這個議題有興趣,

我在 Medium 另外寫了一篇

比較偏觀點的文章:

《AI 時代,韌體工程師反而更自由了》

裡面會談到:

為什麼 AI 其實讓工程師更自由,

而不是更容易被取代。 https://vocus.cc/article/69ac5073fd89780001f14f6b

AI 可以幫你查規格、轉語言、補程式與整理除錯方向,但裝置身份、資料解析、歷史、離線補送、API 與 APP 要怎麼分工,最後仍然需要工程師自己做系統判斷。

如果你已經有程式或韌體基礎,想從單點開發升級成完整 IoT Server 能力,可以接著看這門課提供的架構、程式基底與 Labs:

《物聯網伺服器,自己來就好》


延伸閱讀

繼續讀同一個主題

這裡收錄 G蛋一路工作、學習與生活留下的整理,可以從下方前後篇繼續閱讀。

查看 方格子 原文