在这个相关问题的答案中描述了几个好的资源:
此外,Hitex还为基于ARM处理器的几种不同微控制器提供了“Insider’s Guides”(免费,但需要注册):
其中大部分(如果不是全部)都是免费下载(我认为它们是由微控制器制造商赞助的)。 它们更适合微控制器,而不仅仅是ARM的细节,但它们确实包含了一些ARM细节,并且它们是微观和微处理器外围设备的精彩概述。
当我开始使用新的(对我而来)技术时,我首先要找到尽可能多的数据表和应用笔记,然后直接阅读它们。 第一个目标是加快该技术独有的行话(以及球员的名字)的速度。
在ARM中,我将从www.arm.com开始,以及他们在ARM信息中心的文档。
更新:我还将深入了解一个或多个制造商的产品系列,包括阅读至少一个家庭程序员手册。 如果您的项目计划足够坚固以至于您知道将使用哪种特定的ARM CPU,那么您可以专注于该特定模型及其近亲。 如果您希望熟悉ARM以便可以选择要在项目中使用的CPU,那么对各种系列进行采样几乎肯定是最好的计划。
有很多ARM技术许可证持有者 。 其中,一些制造商拥有产品(基于ARM内核的CORTEX-M3风格),IMHO在深度嵌入式系统应用中脱颖而出。
我的公司正在进行基于ST Microelectronics的STM32系列的项目。 该系列具有许多片上外设,其function对于来自8051世界或PIC世界的任何人来说都是熟悉的,并且在芯片上具有足够的FLASH和SRAM以使外部存储器可选。
我从Luminary Micro那里听到了很多关于Stellaris系列的积极信息。 它看起来非常适合许多嵌入式平台需求。
鉴于入门级评估板的当前价格点,我强烈建议购买一个或多个芯片,类似于您预期的目标应用市场。 STM32可以安装带有小型LCD,加速度计,一对LED或两个按钮的电路板,访问未提交的GPIO引脚,内置JTAG USB接口以及完整的基于GCC的交叉开发工具链(例如,在100美元的球场中,2009年的价格低于40美元,但该型号已经停产。
许多其他基于ARM内核的产品都可以找到类似的软件包。
发现ARM的另一种方式是作为芯片系统中的CPU核心。 相当多的SOC供应商正在授权ARM CPU与他们的专用硬件一起使用他们的芯片。 我已经看到了video压缩芯片,网络芯片,ATA适配器的火线以及以这种方式构建的USB设备,这只是我发布的文章和新闻稿的一个例子,我碰巧从袖口回忆起来。
更新2013年2月:在Raspberry Pi和各种Beagle系列主板中可以看到“典型”基于ARM的SOC系列的一个非常容易进入的入口点。 两者都针对实验者和业余爱好者,都使用带有ARM内核的SOC和video和音频function等其他资源,并且都开箱即用。
模块制造商还提供丰富多样的系统,提供夹层板,其中包含一个完整的可引导系统,可安装在定制板上,提供特定嵌入式系统所需的电源和I / O连接器。 其中一家供应商是Gumstix 。 Gumstix AirSTORM提供Wi-Fi,蓝牙,DRAM,NAND FLASH和TI OMAP3 ARM SOC。 合适的载板可以支持LCD面板或HDMI,10/100以太网,USB主机和OTG,以及线路级模拟音频连接,以及对各种附加GPIO引脚和片上外设的访问。
我建议买一个BeagleBoard 。 它们具有JTAG支持,因此您可以看到硬件中发生了什么,类似于硬件调试器。 有几个Linux版本在其上运行。 周围还有一个很棒的社区,可以帮助您使用它。 我在我的Ubuntu Jaunty上运行,所以你可以运行的实用程序和编译器没有结束。
我会和冲浪sparkfun.com,他们携带olimex板,以及自己的。 Luminary Micro / stellaris也很好。 beagleboard更像是一个Linux平台,而不是你访问armfunction/指令本身的东西。 您可以使用它但是为了这笔钱,您可以在3到7个不同的基于ARM的微控制器评估板之间购买。 无论哪种方式,我都会开始用一个小型电路板缠绕在一个基于臂的微控制器上,st或lpc可能,只有拇指2只是拇指2,我只会在用arm指令然后用拇指指示弄湿我的脚之后才做。
我也是使用gameboy advance作为arm的学习平台的粉丝(不是NDS,这是先进的,从GBA家族开始)。
您将需要ARM ARM(ARM体系结构参考手册),然后每个特定的核心都有自己的TRM,您需要两者才能了解可用的指令。 在大多数情况下,这些手册既可以作为参考,也可以从头开始学习。
我会先得到像STR750-LOVE这样的评估板。 然后编译并理解这些例子。 在对这些示例感到满意之后,现在是时候继续理解底层的内容并编写自己的代码了。 学习过程的一个重要部分是尝试做某事,然后调试它并使其工作。 如果您想成为ARM的专家,您需要能够放心地阅读程序集。 我刚刚接受了ARM固件开发人员的采访,我所做的技术部分就是分析THUMB汇编代码并将其转换为c代码。 大多数编译器都可以选择输出它们生成的程序集。
用Tom Lehrer的话来说“抄袭,剽窃,让任何人的工作都不要躲避你的眼睛”。
或者像牛顿(和伯纳德)站在巨人的肩膀上。
换句话说,找出人们做了什么,并理想地避免重新发明车轮。
我从一个廉价的开发板和示例软件开始,然后从那里开始,随时查看您需要知道的内容。
基于ARM核的STM32的一个很好的入门是适当命名的STM32 Primer 。
除了快速浏览之外,我不会从技术手册开始。 STM32的长度为600多页,随附的Cortex-M3手册为400页。 不完全是轻读!
这真的取决于什么样的ARM,它是一个非常广阔的世界。 通常ARM集成在SoC(片上系统)中。 如果您准备迁移到特定的SoC供应商,那么您需要考虑所有这些。 根据我的经验,SoC pheripheral和缓存选择比实际核心更具影响力(性能除外)。
至于评估板:我对Luminary micro($ 50- $ 60系列)Cortex M3有很好的经验。 它带有完整的(eclipse)开发环境,示例,库和一些硬件(即USB,以太网,OLed显示)以及可以运行和学习的示例。 边做边学比阅读学习更有趣。 我希望你能从8051升级到Cortex M3。
在频谱的高端,beagle板是一个真正的数字cruncher,也可以运行Linux。
需要了解更多c/c++开发分享如何从ARM处理器开始?,也可以关注C/ C++技术分享栏目—编程笔记