3

我正在寻找一些有关以特定非特定方式编程 ARM 设备的信息 [1]。假设我正在为 ARM 处理器编写代码,该处理器使用类似于 Apple II/Atari " * *" XL/Commodore 64/DOS-PC 的机器,或者甚至运行像 VMS 或 SUNO 这样的多任务操作系统的机器。进一步假设任何外围设备/操作系统特定的东西已经被抽象为子程序。这种类型的编程示例可能是:基于文本/诅咒的游戏,如流氓或 moria;基于curses的文字处理器(或者更确切地说是基于curses之类的库);或调制解调器/终端程序。

我正在寻找两件事。有助于学习 ARM 编程的材料,虽然 ARM 系统开发人员指南可能就足够了,但其他资源会有所帮助

我正在寻找的另一件事是一个开发环境,它包含、仿真、一个像样的宏汇编器和一个调试器。连同其他任何可以帮助我了解程序内部情况的东西。

[1] 好的。对不起,我无法抗拒那个特别的双关语。

4

2 回答 2

2

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 等价格的其他地方找到。

于 2012-11-10T01:17:40.477 回答
2

您可以选择使用 ARM Cortex M 或 A 系列。如果您要开发高端应用程序,例如在智能手机/平板电脑上运行的应用程序,那么学习 ARM A 是您的选择。如果您要强调硬件/低级别的东西,例如控制器,那么您应该选择 ARM Cortex-M。如果您使用实时应用程序(我怀疑是您的情况,他们使用 R 系列)。

这些新一代 ARM 中的大多数都基于 ARMv7 架构和 ISA,因此阅读相关手册可以帮助您入门。最近,发布了新的 ARMv8 架构和 ISA,它支持 64 位处理。

从 ARM 站点下载参考和技术手册以了解硬件/外围设备。

我会接受 auslen 的购买板的建议,你可以选择 TI 的 Stellaris Launch pad,它有一个 ARM-M4F 处理器(支持浮点和 SIMD),售价 12.99 美元 http://www.ti.com/ww /en/launchpad/stellaris_head.html?DCMP=stellaris-launchpad&HQS=stellaris-launchpad-b

或者您可以使用 ST 的发现板(基于与上述相同的处理器),但板载音频、加速度计和 USB。它的售价为 14.99 美元http://www.st.com/internet/evalboard/product/252419.jsp 或 STM F3 板(10.99 美元) http://www.st.com/internet/evalboard/product/254044 .jsp

在任何情况下,您都需要检查随板提供的示例,没有这些示例您将无从下手。该板带有自己的驱动程序,所有驱动程序都以某种方式抽象,因此您可以从那里开始!

至于操作系统,如果您对 RTOS 感兴趣,ARM 为其 M 系列处理器提供 CMSIS RTOS http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

本书介绍了几代 ARM 处理器。然后专注于皮质 M3。它用大量的汇编代码覆盖了它的 ISA。它还介绍了内置外围设备以及如何使用 C 启动。 http://www.amazon.ca/Definitive-Guide-ARM-Cortex-M3/dp/185617963X/ref=sr_1_1?ie=UTF8&qid=1352506616&sr =8-1

祝你好运

于 2012-11-10T00:19:10.550 回答