对于新手而言,是直接阅读ARM处理器的数据手册和用户手册,还是先了解ARM领域再开始阅读更为明智?
对于新手而言,是直接阅读ARM处理器的数据手册和用户手册,还是先了解ARM领域再开始阅读更为明智?
当我开始接触一项新技术时,我会先尽可能地找到所有的数据表和应用说明,然后直接阅读它们。首要目标是了解该技术所特有的术语(和参与者名称)。
对于ARM,我会从www.arm.com以及他们的文档ARM Information Center开始。
更新: 我还将深入了解一个或多个制造商的产品线,包括至少阅读一个家族编程手册。如果您的项目计划已经足够明确,您知道将使用哪种具体的ARM CPU,则可以集中精力研究该特定型号及其近亲。如果您想熟悉ARM,以便可以选择在项目中使用的CPU,则几乎肯定最好的计划是对各种系列进行广泛抽样。
这里有一个ARM技术许可证持有者的大列表。其中,一些制造商拥有基于ARM核心的CORTEX-M3版本的产品,在深度嵌入式系统应用方面表现出色。
我的公司正在进行基于ST Microelectronics的STM32系列的项目。该系列具有许多片上外设功能,对于从8051世界或PIC世界来的任何人来说都是熟悉的,并且在芯片上具有足够的FLASH和SRAM,使外部存储器变为可选项。
我听到了很多关于Luminary Micro的Stellaris系列的积极评价。它也看起来非常适合许多嵌入式平台的需求。
考虑到入门级评估板的当前价格点,我强烈建议购买一个或多个与您预期目标应用领域相似的芯片。例如,一个带有小型LCD、加速度计、几个LED和一两个按钮、可以访问未分配的GPIO引脚、内置JTAG USB接口和完整GCC基于交叉开发工具链的板子可在美国市场上以100美元左右的价格购得(例如STM32,2009年时不到40美元,但该型号已停产)。[had for the STM32](http://www.st.com/mcu/contentid-105-110-STM3210B_PRIMER.html)
似乎已经失效了。 - abdullah kahraman我建议你购买BeagleBoard。它们支持JTAG,因此您可以查看硬件情况,类似于硬件调试器。有几个Linux版本可以在其上运行。还有一个很棒的社区可为你提供帮助。我在我的设备上运行的是Ubuntu Jaunty,所以你可以运行各种实用工具和编译器。
在这个相关问题的答案中,描述了几个不错的资源:
此外,Hitex针对几种基于ARM处理器的微控制器提供了“内部指南”(免费,但需要注册):
它们大多数(如果不是全部)都可以免费下载(我认为它们由微控制器制造商赞助)。它们更适合微控制器而不仅仅是ARM细节,但它们包括一些ARM细节,并且是微型和微型外设的良好概述。
我建议先购买一个评估板,例如STR750-LOVE。然后编译并理解示例代码。当你对示例代码感到熟悉后,就可以开始了解底层原理并编写自己的代码。学习过程中重要的一部分是尝试做某些事情,然后调试并使其正常工作。如果想成为ARM专家,你需要有信心阅读汇编代码。我刚参加了一次ARM固件开发人员的面试,技术部分所需做的就是分析THUMB汇编代码并将其转换为C代码。大多数编译器都有输出生成的汇编代码的选项。
这真的取决于ARM的种类,它是一个非常广泛的领域。 通常,ARM被集成在SoC(片上系统)中。如果您准备迁移到特定的SoC供应商,则需要考虑所有内容。根据我的经验,SoC外设和缓存选择比实际内核更具影响力(除了性能)。
至于评估板:我有Luminary微控制器(Cortex M3)的良好经验(价格在50-60美元之间)。它配备完整的(eclipse)开发环境、示例、库以及一些硬件(例如USB、以太网、OLed显示屏)和示例,您可以运行并学习。通过实践学习比阅读学习更有趣。我相信您将轻松从8051升级到Cortex M3。
在高端领域,Beagle Board是一个真正的数值计算器,也可以运行Linux。