DuinOS

一、DuinOS 簡介

DuinOS 是一個 86Duino 專用的 DOS 作業系統,目的是為希望在 86Duino 上操作 DOS 的進階玩家提供一個完善且易於使用的 DOS 環境。

DuinOS 包含完整的 FreeDOS 及專用系統工具,並內建程式開發環境,可直接在其中編譯及執行 86Duino 程式。另外,針對 86Duino Zero/EduCake 無法連接 VGA 顯示卡輸出 DOS 畫面的情況,DuinOS 也提供了專用的 DOS shell 程式,讓使用者可直接透過 USB 介面操作 DOS 命令行。大部份專用工具程式皆附有原始碼,方便熟悉 DOS 的進階玩家們直接在 DuinOS 內 hack 及重編譯這些工具。

下面將解說 DuinOS 的安裝與操作。

二、安裝 DuinOS 至 SD 卡

開始安裝前請先至下載頁面下載 DuinOS 壓縮檔。在 SD 卡上安裝 DuinOS 的方式,在不同作業系統上略有出入,請根據您使用的作業系統選擇安裝教學:

如果您使用 86Duino One,在安裝 DuinOS 至 SD 卡後,把該 SD 卡插入 86Duino 的 SD 插槽,並接上 VGA 卡及 USB 鍵盤,再將 86Duino 開機即可直接操作 DOS,所下圖所示:

sd_card

無法連接 VGA 卡的 86Duino Zero 及 86Duino Educake 需藉由主機畫面重定向(Console Redirection)功能或 DuinOS 內建的 DOS shell(86UsbSh )工具程式才能看到 DOS 畫面,相關設定及操作方法請見後面第四節的說明。

三、DuinOS 內含軟體

最新的 DuinOS 內包含了下列軟體:

  • FreeDOS 1.1
  • DJGPP 2.05
  • FreeBASIC 1.03.0
  • OpenWatcom 1.9
  • FreeRTOS 8.2.2
  • Windows CE 6.0
  • 86Duino DOS SDK
  • 86Duino DOS 工具
  • Vortex86EX 週邊裝置驅動程式

下列是部份軟體的簡要介紹:

FreeDOS

FreeDOS 是一個相容於 MS-DOS 的開源作業系統,使用 GPL 授權,其大多數的行為表現都與 MS-DOS 相同;過去可以在 MS-DOS 上執行的程式或命令,也可以在 FreeDOS 上執行,所以 FreeDOS 在使用上與 MS-DOS 幾乎沒有差別。DuinOS 裡與 FreeDOS 相關的檔案都放在 \FDOS 目錄下。

DJGPP

DJGPP 是一組可以用來編譯 C/C++ 語言並產生出 32 位元保護模式程式的工具,使用 GPL 授權,其核心是移植到 DOS 的 GCC,並包含了一些常用工具,如:ld、make、gdb … 等,使用方法與在 Linux 上使用這些工具無異。DuinOS 裡與 DJGPP 相關的檔案都放在 \DJGPP 目錄下。

以下列出 DuinOS 中的 DJGPP 所包含的工具軟體及函式庫,您若有需要,可至 DJGPP 官網 下載更多工具及函式庫安裝至 DuinOS 中:

gcc 6.1.0 gpp 6.1.0 binutils 2.25.1 djdev 2.05
gdb 7.11 make 4.2.1 grep 2.22 filutil 4.1
bison 2.4.1 flex 2.5.4 filutil 4.1 sed 4.2.2
rhide 1.5 PDCurses 3.4 Allegro 4.2.2 SwsSock 1.06
FreeBASIC

FreeBASIC 是一個 BASIC 語言的開源編譯器,使用 GPL 授權,相容微軟的 QuickBASIC。DuinOS 裡與 FreeBASIC 相關的檔案都放在 \FBASIC 目錄下。

OpenWatcom

OpenWatcomWatcom C/C++ 的後期開源版本。Watcom C/C++ 是早期 DOS 上知名的 32-bit 編譯器,許多經典的 DOS 遊戲都是以此編譯器寫成。在 DuinOS 裡,OpenWatcom 主要用來編譯 FreeRTOS 的程式,與其相關的檔案都放在 \WATCOM 目錄下。

FreeRTOS

FreeRTOS 是一個輕量級的開源即時作業系統,被大量應用在許多基於微處理機的嵌入式產品裡。DuinOS 內含的 FreeRTOS 運行在 x86 真實模式下,使用上將受真實模式運行環境制約,更詳細資訊可參考 FreeRTOS 官方的 說明網頁。與 FreeRTOS 相關的檔案都放在 \FREERTOS 目錄下。

Windows CE

Windows CE 是微軟研發的即時作業系統,適合安裝在硬體規格較低的電腦系統裡做各種嵌入式應用。DuinOS 允許使用者能在 DOS 下直接啟動 Windows CE,詳細說明請參考第六節。與 Windows CE 相關的檔案都放在 \WINCE 目錄下。

網路驅動

DuinOS 的網路驅動採用 NDIS 協定,與網路驅動相關的檔案都放在 \NET 資料夾下;在該資料夾下的 PROTMAN.DOS、PROTMAN.EXE、NETBIND.COM 是 NDIS 相關驅動程式,而 NET\R6040 資料夾下的 RDCPCI.DOS 是 Vortex86EX 內建網卡的驅動程式,PROTOCOL.INI 是網路相關的設定檔(設定內容可參閱 FreeDOS 的說明文件)。

注意:DuinOS 啟動時會建立一個代號為 Z 的 RAM disk,這個 Z 槽是用來讓一些網路相關工具、函式庫及部份 86Duino DOS 工具程式放置暫存資料,如果使用者移除了 Z 槽,將使網路與部份 86Duino DOS 工具程式無法使用。

四、86Duino DOS 工具程式

DuinOS 內建幾個 86Duino 專用工具程式,放在 TOOLS 目錄下,以下個別介紹其用法。

86UsbSh

86UsbSh 是一支為 86Duino 開發的 USB DOS shell 程式,可讓使用者直接透過 USB 介面操作 DOS 命令行。86UsbSh 通常是透過 AUTOEXEC.BAT 在開機時啟動,如此免除額外使用 VGA 卡與鍵盤,詳細使用方法請參閱下列連結:

注意:您無法使用 86UsbSh 看到會進入繪圖模式(或直接存取顯示卡記憶體)的 DOS 程式之輸出;您也無法透過 86UsbSh 操作需要利用鍵盤輸入進行互動的 DOS 程式。此外,由於 DuinOS 內定在開機時啟動 86UsbSh,如果您使用 86Duino One 並想透過 VGA 卡及鍵盤直接操作 DOS,您將需要修改 AUTOEXEC.BAT,步驟如下列連結所說明:

86ComSh

86ComSh 可用來開啟 FreeDOS 的主機畫面重定向(Console Redirection)功能,支援從 86Duino 的任一個串列埠輸出 DOS 操作畫面。以 86ComSh 操作 DOS 的限制比 86UsbSh 少,也一樣通常透過 AUTOEXEC.BAT 在開機時啟動,以免除額外使用 VGA 卡與鍵盤,缺點是需要使用 USB-to-UART 轉接線材。下列連結以 Serial1 重定向為例說明 86ComSh 的使用:

注意:您無法透過 Console Redirection 看到會進入繪圖模式(或直接存取顯示卡記憶體)的 DOS 程式之輸出。

86Duino I/O Toolkit

DuinOS 從 1.1 版開始包含了幾個可在 DOS 下存取 86Duino I/O 介面、改變系統設定、及顯示系統資訊的小程式,列表如下:

  • 86ADC:讀取並顯示 86Duino A/D 接腳上偵測到的數值。
  • 86IO:存取 86Duino 板上 GPIO 接腳。
  • 86CRSBAR:透過設定 Vortex86EX SoC 的 I/O Crossbar,切換 86Duino 部份 I/O 接腳的功能。
  • 86CLOCK:設定 86Duino 的 CPU 工作時脈。
  • 86INFO:顯示 86Duino 的系統資訊。
  • 86PWM:產生 86Duino 板上的 PWM。

五、86Duino DOS SDK

DuinOS 內建 86Duino DOS SDK,其包含完整 86Duino 程式編譯環境,可讓使用者在自行撰寫的 C++ 程式中呼叫 86Duino 的 API 及內建函式庫來存取 86Duino 提供的各種 I/O 功能,如 digitalRead()digitalWrite()analogRead() 等函數。詳細說明請參閱下列文章:

六、Windows CE Demo Image

DuinOS 由 1.1 版開始整合進 Windows CE 6.0 的 demo image,並允許在 DOS 下啟動 Windows CE 作業系統。DuinOS 內含的 Windows CE 支援 Vortex86EX SoC 大部份硬體週邊,如網路、HD Audio、串列埠等,並且在沒有顯示卡的場合,允許透過 telnet 連線遠端操作 Windows CE。

在 DOS 命令列下啟動 Windows CE 的方式相當簡單,使用者只要根據 86Duino 型號執行對應的批次檔即可:

CE_ZERO.BAT 在 86Duino Zero 上啟動 Windows CE
CE_ONE.BAT 使用 86Duino One 且沒有連接 Vortex86VGA 顯卡時,啟動 Windows CE
CE_ONE_V.BAT 使用 86Duino One 且連接 Vortex86VGA 顯卡時,啟動 Windows CE
CE_ECAKE.BAT 在 86Duino EduCake 上啟動 Windows CE

此外,使用者亦可設定在 DuinOS 開機時自動啟動 Windows CE,見下文教學:

注意:DuinOS 內含的 Windows CE demo image 只是用於 Vortex86EX SoC 的展示用途,其本身並不提供 Windows CE 商業授權,若您需在公開商品內使用 Windows CE,應自行向微軟取得合法授權


DEMO VIDEO


黑客天地主頁面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.