這塊板子上有個高手(Michael Pratt)正在認真地開發上面的作業系統,專案名為F4OS,源碼開放在GitHub。歷經三個多月,目前成品可直接在USART1跑一個只有一個uname 指令的shell。
在嵌入式無螢幕的裝置上,開發OS,最難的地方便是在沒有任何輸出之前的階段,把Terminal Console弄出來。
首先,Michael 開發是最先利用板子上的LED的明暗速度來進行偵錯。
筆者大約在6月份時,第一次用F4OS便是將LED 的明暗做調整,
接著用ARM的GDB來觀察暫存器值的變化,這真是黑暗前期。
筆者大約在6月份時,第一次用F4OS便是將LED 的明暗做調整,
接著用ARM的GDB來觀察暫存器值的變化,這真是黑暗前期。
直到最近,當看到Terminal輸出的畫面的一刻,真是令人十分感動。
USB2TTL
筆者使用的是 FT232 USB-Serial 的裝置
使用lsb 命令結果
~$ lsusb
Bus 002 Device 022: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 021: ID 0483:3748 SGS Thomson Microelectronics
Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
STM32F407 + F4OS輸出畫面
執行uname -a 的輸出結果:
$ uname -a
F40S rev 143 Wed Jul 25 22:36:20 CST 2012
F40S rev 143 Wed Jul 25 22:36:20 CST 2012
使用杜邦端子線來連接USB2TTL及STM32,之前一直卡在這裡;故特別對接法做個記錄。
STM32 Pin ---- USB2TTL
PB6 (TX) <------------> RX
PB7 (RX) <------------> TX
GND <-----------------> GND
(註:GND 線不接也可正常運作)PB6 (TX) <------------> RX
PB7 (RX) <------------> TX
GND <-----------------> GND
小結
有了Terminal 輸出的功能之後,開始進行其他實驗就十分的方便。
以上記錄目前的學習進度。