【问题标题】:OS-related operations and modes on ARM7TDMI(GameBoy Advance)ARM7TDMI(GameBoy Advance)上的操作系统相关操作和模式
【发布时间】:2012-05-03 11:51:35
【问题描述】:
我想知道 GBA 的 CPU 是否可以使用通常为操作系统保留的任何功能,以及如何做到这一点。
例如,我想访问 cpu 显然支持的特权模式,但我不明白如何首先输入它(并修改要由它运行的代码),因为 gba 在用户中启动模式。
更重要的是,我想知道gba有哪些arm扩展,比如协处理器、mmu、mpu等。
我在cowbite spec 参考中读到特权模式确实存在,但没有进一步提及。
【问题讨论】:
标签:
assembly
operating-system
arm
gameboy
game-boy-advance
【解决方案1】:
GBA 并没有什么特别之处,你在开始时处于主管模式,你不需要做任何事情就可以到达那里。对于您可能遇到的任何 ARM(即不运行操作系统,例如 linux,并且您是该操作系统的命令行用户)也是如此。
虽然 ARM 具有带有保护的用户模式,但您不希望看到用于嵌入式应用程序的用户模式。当然不是 ARM7(ARMv4/ARMv4T),没有缓存,没有 mmu,也没有像 GBA 中那样支持太多协处理器。
我想我回答了这个问题,它根本没有太多,没有 mmu,没有 fpu,它不记得它是否支持任何协处理器指令。这对于大多数 ARM7 来说都是如此,一般来说大多数 ARM。这样想,如果它运行一个成熟的、非 uclinux 的 linux,比如 beagleboard 中的 OMAP,open-rd 和 plug 计算机中的 marvells 以及其他板上的 cavium,它有一个 mmu,可能有缓存,一个外部内存控制器等。如果它不运行,如果它只运行 uclinux 或根本不运行 linux,那么它更多的是在嵌入式端,微控制器或微控制器之类的。 GBA中的ARM7TDMI绝对属于这一类。 NDS 上的 ARM7 和 ARM9 大部分也是如此。
尽管多年来我一直在推荐 gba 作为 ARM 教育平台,但时代在变,闪存车正在消失等。看看 stm32f4 发现板只需 20 美元。 (请参阅我的 github 空间中的 stm32f4d 存储库)它运行 168mhz,有缓存,有一个 fpu,还有微控制器很少有的其他东西。不确定您在寻找什么,但很难以这个价格放弃您所获得的东西,确保您没有获得 gba 获得的按钮和液晶屏幕、图形硬件等...