ulv*_*ver 10 c tdd operating-system 68000 motorola
下一学期,我需要为Motorola 68K处理器编写基本操作系统,作为课程实验材料的一部分.
是否有使用该处理器的基本硬件设置的Linux仿真器?所以我的合作伙伴和我可以在我们的计算机上更快地调试,而不是在物理上重新启动电路板和东西.
是否有可能将测试驱动的开发技术应用于OS开发?代码主要是汇编和C.尝试试驾这个主要困难是什么?关于如何做的任何建议?
Pro*_*ica 10
我建议为经典的Amiga计算机开发一个操作系统,它有68000处理器的不同版本.由于Amiga计算机是一台完整的计算机并且记录非常好,我认为这是一个很好的练习.
它有一个名为UAE(和Win-UAE)的仿真器,非常精确,可以配置不同类型的处理器(68000 - 68060)和其他功能.通常,您还需要获取ROM,但由于您自己开发操作系统,因此没有必要.
您需要的工具是Cygwin(用于在Windows下开发)或Linux计算机.那么你将需要交叉编译器.这包括C编译器和汇编器.这是一个用于创建简单ROM 的模板,该ROM可以更改屏幕颜色并轻弹电源LED.它将创建一个文件'kick.rom',然后UAE在当前目录中搜索.
可以在以下链接中找到68000指令集的参考.请注意,不同的汇编程序可能会使用略有不同的语法和指令集.
如果您需要在真实硬件上演示操作系统,可以在Ebay和其他地方销售现代Amiga克隆.搜索"Minimig".
更新:如今AROS还在阿联酋和物理Amigas上运行.
参考文献:
[阿联酋]
[WinUAE]
[Cygwin]
[交叉编译器]
[68000参考]
你当然可以编写这个项目.首先,通过简单的例程调用(例如getch()和printf)将所有对硬件的访问解耦,然后您可以提供提供测试输入和检查输出的简单模拟.然后,您可以使用gcc,msdev或xcode在PC上编写超过90%的项目.一旦你对解耦例程有了一些信心,你将需要很少的硬件访问权限,然后偶尔检查你的模拟是否按预期运行.
保持在C,直到找到一个特定的瓶颈,然后才使用汇编器.