下个学期,我需要为摩托罗拉68K处理器编写一个基本的操作系统,作为课程实验材料的一部分。
是否有Linux仿真器来模拟该处理器的基本硬件设置?因此,我和我的合作伙伴可以更快地在我们的计算机上调试,而不是物理地重新启动主板和其他东西。
是否有可能将测试驱动开发技术应用于操作系统开发?代码将主要是汇编和C语言,试运行这些代码的主要困难是什么?有什么关于如何做的建议吗?
发布于 2009-10-12 07:06:58
你当然可以对这个项目进行测试。首先,使用简单的例程调用解耦所有对硬件的访问,例如getch()和printf,然后您可以提供简单的mock来提供测试输入和检查输出。然后,您可以在PC上使用gcc、msdev或xcode编写超过90%的项目。一旦您对解耦例程有了一些信心,您将只需要很少的访问硬件,然后才会偶尔检查您的mock是否如您所期望的那样运行。
一直使用C,直到找到一个特定的瓶颈,然后才求助于汇编程序。
发布于 2009-10-26 21:04:58
我建议为经典的Amiga计算机开发一个操作系统,这些计算机具有不同版本的68000处理器。由于Amiga计算机是一台完整的计算机,并且有非常好的文档记录,我认为这将是一次很好的练习。
有一个称为UAE (和Win-UAE)的模拟器,它非常精确,可以配置不同类型的处理器(68000 - 68060)和其他功能。通常情况下,您还需要为其获取ROM,但由于您自己正在开发操作系统,因此没有必要这样做。
您需要的工具是Cygwin (用于在Windows下开发)或Linux计算机。然后,您将需要交叉编译器。这包括C编译器和汇编器。Here is a template用于创建一个简单的只读存储器,改变屏幕颜色和闪烁电源发光二极管。它将创建一个'kick.rom‘文件,然后阿联酋将在当前目录中搜索该文件。
有关68000指令集的参考可以在下面的链接中找到。请注意,不同的汇编程序使用的语法和指令集可能略有不同。
如果你需要在真实的硬件上演示操作系统,在Ebay和其他地方有现代的Amiga克隆出售。搜索"Minimig“。
更新:现在AROS也可以在阿联酋和物理朋友上运行。
参考文献:
[UAE]
[WinUAE]
[Cygwin]
[Cross Compilers]
[68000 reference]
发布于 2009-10-12 00:31:08
我建议将QEMU用于m68k仿真。
(您希望在QEMU中使用的系统仿真器是"Coldfire“--飞思卡尔称之为m68k架构的后继者)。
https://stackoverflow.com/questions/1552200
复制相似问题