2009-10-12 36 views
10

下一個學期,我將需要爲Motorola 68K處理器編寫一個基本操作系統,作爲課程實驗材料的一部分。爲Motorola 68K處理器編寫操作系統。我可以效仿它嗎?我可以測試驅動器的操作系統嗎?

是否有一個與該處理器的基本硬件設置的Linux模擬器?所以我和我的合作伙伴可以在我們的計算機上更快地進行調試,而不是在物理上重啓電路板和內容

是否可以將測試驅動的開發技術應用於操作系統開發?代碼大部分是程序集和C.試圖對此進行測試的主要困難是什麼?有關如何做的建議?

回答

5

你當然可以tdd這個項目。首先通過簡單的例行呼叫將所有對硬件的訪問解耦,例如, getch()和printf,那麼你可以提供簡單的模擬,提供測試輸入和檢查輸出。然後,您可以使用gcc,msdev或xcode在PC上編寫90%以上的項目。一旦你對解耦程序有了一定的信心,你將需要很少的硬件訪問權限,然後偶爾檢查你的模擬是否按照你的預期行事。

保持C直到你找到一個特定的瓶頸,然後再訴諸彙編程序。

+1

我不同意最後一句話。如果你正在編寫一個操作系統,那麼在C中你不能做很多必要的事情。把asm降到最低是很好的做法,從C代碼中直接彙編所需的大部分asm是很好的。但是你仍然可能需要一些文件,只是程序集。看一看linux上的entry.S--一個例子 - 這種東西與內聯彙編沒有任何意義,它必須獨立運行。 – asveikau

+2

作爲O/S級函數調用,'getch'和'printf'也沒有任何意義。除非您正在重寫MS-DOS ... – Alnitak

6

我建議QEMU爲m68k仿真。 (您在QEMU中需要的系統仿真器是「Coldfire」 - 這就是飛思卡爾稱之爲m68k架構的後繼者)。

+0

看着QMEU網站,我沒有看到M68K的支持;對於PowerPC(M68K的後代)來說,它建議PearPC,似乎並不活躍(最新更新似乎是2005年9月)。 –

+0

話雖如此,我發現一個關於M68K測試的外部網站提到了QEMU:http://gwenole.beauchesne.info/en/blog/2007/07/08/m68k_emulator_testsuite –

+0

Jonathan:它叫做「Coldfire」,它是m68k的繼承人,請看這裏:http://www.qemu.org/qemu-doc.html#SEC66 – caf

9

我會推薦開發經典的Amiga電腦的操作系統,它有不同版本的68000處理器。由於Amiga計算機是一臺完整的計算機,並且記錄完備,我認爲這將是一個很好的練習。

有一個稱爲UAE(和Win-UAE)的模擬器,它非常精確,可以配置不同種類的處理器(68000 - 68060)和其他功能。通常情況下,您還需要爲其獲取ROM,但由於您自己正在開發操作系統,因此這不是必需的。

您將需要的工具是Cygwin(用於在Windows下開發)或Linux計算機。那麼你將需要交叉編譯器。這包括一個C編譯器和一個彙編器。 Here is a template用於創建一個簡單的ROM,它可以改變屏幕顏色並輕拂電源LED。它將創建一個文件'kick.rom',然後阿聯酋在當前目錄中搜索。

有關68000指令集的參考資料,請參見下面的鏈接。請注意,不同的彙編程序可能會使用稍微不同的語法和指令集。

如果您需要在真實的硬件上演示操作系統,那麼現在在Ebay和其他地方銷售Amiga克隆。搜索「Minimig」。

更新: 時下AROS也運行在阿聯酋以及物理Amigas。

參考文獻:

[UAE]
[WinUAE]
[Cygwin]
[Cross Compilers]
[68000 reference]

+0

哪個超鏈接包含用於更改閃爍電源LED的屏幕顏色的ROM模板? – mwcz

+1

給http://vmlinux.org/jakov/jumpstart/ @mwcz添加鏈接「Here is a template」 –

相關問題