摩托罗拉 68000 在 Linux 中的编程环境
Posted
技术标签:
【中文标题】摩托罗拉 68000 在 Linux 中的编程环境【英文标题】:Programming Environment for a Motorola 68000 in Linux 【发布时间】:2009-09-12 01:39:54 【问题描述】:大家好,
本学期我将参加微型计算机的结构和应用课程,我们正在使用摩托罗拉 68000 系列 CPU/板进行编程。课程大纲建议在家里运行 Easy68K 或 Teesside Motorola 68000 Assembler/Emulator 之类的东西来测试我们的程序。
我告诉我的教授我运行 x64 Linux,并询问我需要什么样的环境来完成我的课程。他说最容易使用的环境是安装了两个建议的应用程序之一的 Windows XP 32 位 VM,但他并不关心我使用什么,只要我可以在家测试我写的东西。
所以我想问是否存在某种适用于 Linux 的模拟器或环境,以便我可以测试我的代码,以及在 Linux 中编写和测试我的代码会遇到哪些警告。 另外,我打算在 Vim 中进行编辑,这可能不是问题,但如果您有任何关于 68000 程序集的编辑器的信息,我想了解一下。
谢谢!
编辑: 澄清一下——我根本不想在板上安装 Linux——我想在我的家用机器上编程,在本地测试代码,然后将它带到用于评分/运行的板。
【问题讨论】:
鉴于基于 XP(即将推出 Win7?)上网本的低成本,如果您能节省 250 美元左右,这可能是阻力最小的途径。否则,我怀疑 Wine 可能运行良好,足以在您的 linux 机器上运行模拟器。 我实际上有一台已经运行 WinXP 的笔记本电脑,它运行良好,但我更愿意在同一个环境中完成我的所有编码。我在这里连接了我最喜欢的键盘和鼠标。 :-D 【参考方案1】:好消息是,通过将 Windows GUI 替换为 wxWidgets,让 Easy68K 更具便携性似乎确实有一些兴趣。坏消息是,对于最初编写 Easy68K 的教授来说,这是学生的期末项目。有关故事,请参阅 this forum post。
您可以尝试构建他当前的源工具包。现在它可能已经足够好了。
只要 GCC 存在,GCC 就已经为 68K 系列提供目标支持,IIRC。当然,Gnu 汇编器语法与摩托罗拉的完全不同。
编辑:关于编辑器,任何对程序员友好的人都可以。毕竟,代码着色对于汇编语言并不是那么有用。 Vim 应该没问题...我以前用 vi 写了很多程序集。
【讨论】:
【参考方案2】:我为 Easy68k 编写了端口。我一直忙于上学,没有太多时间去做这件事。另外,我不确定对 68k 汇编有多少兴趣。如果表现出足够的兴趣,我可能会把它拿回来。
【讨论】:
为它添加一个 Amiga 目标,你会看到各种各样的疯狂感兴趣的人从木制品中爬出来。 :-) 最核心的人也在做新的硬件。谷歌 natami【参考方案3】:这里有一个适用于多个 CPU 的 Linux 汇编器:http://xi6.com/projects/asmx/
运行使用:~/bin/asmx -C 68000 -b 0 -o out.bin -- in.asm
很遗憾,没有模拟器,但我将它用于 Sega MegaDrive/Genesis 开发,所以我只使用 Gens/GS 模拟器。
【讨论】:
【参考方案4】:你看过QEMU吗?它声称可以为 M68k (Coldfire) 进行完整的系统仿真。
【讨论】:
【参考方案5】:您还可以查看answer 我给问题 1552200 提供的信息。在您的情况下,有人会说最简单的是在阿联酋的 Amiga with native tools 下开发。但是要合法地做到这一点,您必须购买商业 Amiga Forever,或者在阿联酋或 WinUAE 上安装 AROS 操作系统。 AROS 是 Amiga OS 3.1 的克隆版(+ 眼睛糖果,网络等) 如果您下载 AROS,请务必下载 Amiga 端口,而不是 PC 端口。
【讨论】:
【参考方案6】:这是一个 68k 的模拟器,我必须用它来编译:
gcc -lm -I. make68k.c
http://caesar.logiqx.com/php/library.php?id=turbo68k
我实际上还没有用它测试过任何 asm 代码,但它确实可以编译。您还需要阅读 readme.txt。
...我不得不将大写字母转换为小写字母。
【讨论】:
【参考方案7】:我正在大学学习类似的课程,并且我也在学习 m68k,虽然很晚,但这是我的发现(其他人可以欣赏):
Easy68k 在 GNU/Linux 中使用 Wine 运行相当流畅,除非您使用两台显示器。
我设法建立了一个虚拟 Debian/68k 环境,以便能够放弃 Easy68k 并使用 GNU/Emacs 编写代码。这是我关于这件事的笔记:http://santoro.tk/blog/?p=346。 注意:此方法有一个主要缺点:除非您在内核空间中编写代码(这类课程不太可能),否则您将始终在用户模式下使用 m68k,即模式U. 此处提供标准 GNU/Linux 工具链(binutils 等)。
【讨论】:
【参考方案8】:VirtualBox OSE 是免费的,对运行 windows xp 的我来说非常好。您可以在两者之间映射一个驱动器,在 Linux 端进行开发,然后在另一端的 68K 模拟器上运行它。我经常为许多任务执行此操作,而不仅仅是编程。
伙计……68k……回忆!!
【讨论】:
【参考方案9】:我为 68000(主要是 Atari ST)编码并使用 VASM (http://sun.hasenbraten.de/vasm/) 作为我选择的交叉汇编器。存在 Linux、Mac 和 Windows 版本。
【讨论】:
以上是关于摩托罗拉 68000 在 Linux 中的编程环境的主要内容,如果未能解决你的问题,请参考以下文章