infocenter.arm.com 并查看各种架构和内核的各种 ARM ARM(架构参考手册)和 TRM(技术参考手册)。这些手册比大多数其他公司的文档要好。除了新的 64 位的东西,就指令集而言,从一种架构到另一种架构的差异有些微妙。主要区别与外围设备有关,mmu 是一个缓慢变化的东西,中断管理器已经采取了很大的步骤,并且 fpu 至少被更换了一次,如果不是两次批发的话(如果你甚至有一个 fpu,有一个是例外不是它消耗大量房地产以获得如此少的回报的规则)。
我对你的问题感到困惑。我认为在学习架构/指令集和学习操作系统调用之间划清界限很重要,这是两件不同的事情。您很少需要查看源代码 (C/C++) 之外的操作系统内容,并且有限的 asm 用于手动调整的 C 库或 boostrap 代码和中断包装器。同样,架构、寄存器、指令等与外围设备(arm 的内核通常具有非常少的外围设备,大部分是供应商特定的东西),我将其作为单独的学习曲线分开,与 asm 和指令集与在任何其他平台上学习外围设备没有什么不同,只是您读写的一些地址。
如果您正在寻找非操作系统裸机,stm32f0 发现是 10 美元,我强烈推荐它。看起来 ti 有一个 Stellaris launchpad 只需多一点(等待我的到达,所以我不能谈论它们,而且运费是免费的,所以成本与 stm32 板基本相同)stm32f4 发现大约是 20 美元我几乎不会用 cortex-m4 的所有东西来调用微控制器。
升级到支持 linux 或为 linux 系统设计的有 raspberry pi、beaglebone 和 open-rd 等(pandaboard)。同样,尽管您只是在编写另一个 linux C/C++ 程序,所以那里并没有太多的兴奋(与特定平台相关,所有平台的娱乐都是相同的),并且需要的手臂知识非常少(如果有的话)。与基于 ARM 的微控制器相比,使用这些平台中的任何一个进行裸机编程都非常容易,从而为您提供类似赛车的性能。
我有一个你可能不感兴趣的拇指模拟器。gdb 有一个 armulator,它是当时公司的基石。skyeye 或类似的东西像 qemu 一样有一个 arm 指令集模拟器,除了 gdb 可以提供的东西之外,它们都不会给你很好的可见性。opencores 的 amber 项目是 armv2 克隆,您可以看到它与 armv4 和更新版本的密切关系,如果没有装满现金的盒子,您将找不到 rtl。以我的手臂和芯片经验(不,我不为手臂工作)我确实发现 amber 项目值得一看,但很多人不知道如何处理它,而且真的对这种可见性水平不感兴趣。(它是指令兼容的,一个很好的设计,但不要认为你在看一个手臂设计,那里没有秘密)。
由于微控制器基于 cortex-m,您可能会发现较旧的微控制器是上端臂核心的更好垫脚石。基于 ARM7tdmi 的产品,如 sam7s 和其他来自 nxp、st、atmel 等的产品,您仍然可以在 sparkfun 和微控制器专业人士以及 arduino 等价格的其他地方找到。