文章總列表

嵌入式工程師瑞士刀 (1) Hello World 程式

緣起

我們團隊使用指令搞(build script)作為單一入口,用起來很爽。我們盡可能優化速度,但還是有些無法突破的極限,這裡就假設一分鐘吧

開發行為包括{人類思考,寫軟體,編譯,執行}。假如開發一個函數,加上測試總計100輪。用指令稿開發,等待的低消是100分鐘,人可能去收信,回訊息,注意力就掉了


Hello World

怎麼讓注意力保持集中?想辦法不分心吧!

  1. 用順手編輯器寫Hello World,我用隨處可見的gvim。應該50秒寫得完
    #include <stdio.h>
    int main()
    {
        printf("Hello World\n");
        return 0;
    }

  2. 在terminal執行以下命令,編譯和執行的命令寫一起,10秒就搞定
    gcc -m32 hello.c; ./a.out

開發活動的時間分佈

  1. 搭建Hello World測試環境,一分鐘(extra)
  2. 複製貼上測試的函數,跑10次修正build error(extra)
  3. 測試各種輸入數值,跑90次,編譯和執行時間可忽略,瓶頸在人類
  4. 移植回去(extra)

步驟1可能得去Google找範例(建議背起來),步驟2碰運氣,步驟3 {人類思考,寫軟體,編譯,執行},不用等待,沒有收信或回覆訊息的誘因;步驟4理論上幾輪就搞定了

Hello World也能開發大一點的模組,反覆做實驗,最後再整合回去。因為速度飛快無比,精雕細琢程式碼也不會多麻煩。帳面上多了3個步驟(1/2/4),但是時間大幅縮短

最後一步是調整軟體架構,隨時能用gcc建構模組,未來開發從步驟3出發,用來清理建構錯誤,做實驗就是比較快!有這種環境,做重構(Code Refactor)或是測試驅動開發(Test Driven Development)才變得現實


結論

使用Hello World工具,用最少的工具即可執行,是工程師必備瑞士刀

  • Terminal
  • Editor
  • Compiler

下一篇回答:為什麼編譯指令下-m32

留言

這個網誌中的熱門文章

幼犬書桌椅選擇心得 升降桌 兒童桌椅

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

CANON G3000 廢墨瓶改裝