【问题标题】:How to start off with ARM processors?如何开始使用 ARM 处理器?
【发布时间】:2010-11-16 04:46:32
【问题描述】:

对于新手,是直接从 ARM 处理器的数据表和用户手册开始,还是先了解 ARM 世界然后再继续?

【问题讨论】:

  • thnxx 链接好友!但问题是我一直在使用微控制器(8051),现在跳到 ARM .. 它在 ARM 中是一个复杂的世界,所以我宁愿澄清我的基础知识可能是架构和东西! !
  • 什么链接?那是如何回答你的问题的?
  • 那个家伙删除了他的评论,我想是的......
  • 嗯,那个人就是我:-)。我在发布后三十秒删除了我的评论,重新考虑它,它对你没有帮助。我很惊讶你看到了它,因为我很久没有放过它了。不管怎样。如果它可以帮助某人,我会给你链接.. stackoverflow.com/questions/887423/…
  • ARM 非常广泛。缩小选项范围的第一个问题是您需要应用处理器还是微控制器? (也说明了,你是想运行嵌入式 linux 之类的操作系统,还是直接对芯片进行编程?)

标签: c embedded arm


【解决方案1】:

当我开始使用一项新的(对我而言)技术时,我会首先查找尽可能多的数据表和应用笔记,然后直接阅读它们。第一个目标是了解该技术独有的行话(和玩家姓名)。

对于 ARM,我将从 www.arm.com 开始,他们的文档位于 ARM Information Center

更新: 我还会深入研究一个或多个制造商的产品线,包括阅读至少一本家庭程序员手册。如果您的项目计划足够坚定,您知道将使用哪种特定的 ARM CPU,那么您可以专注于该特定型号及其近亲。如果您希望熟悉 ARM 以便选择项目中要使用的 CPU,那么对广泛的系列进行抽样几乎肯定是最好的计划。

ARM technology licensees 的列表很大。其中,少数制造商的产品(基于 ARM 内核的 CORTEX-M3 风格)在深度嵌入式系统应用中脱颖而出。

我的公司正在进行基于ST Microelectronics 的STM32 系列的项目。该系列有许多片上外设,其功能对于来自 8051 世界或 PIC 世界的任何人来说都是熟悉的,并且芯片上有足够的 FLASH 和 SRAM 以使外部存储器成为可选的。

我从Luminary Micro 那里听到了很多关于 Stellaris 家族的积极消息。它看起来也很适合许多嵌入式平台的需求。

鉴于入门级评估板的当前价格点,我强烈建议您为与您预期的目标应用细分市场相似的芯片选择一个或多个。带有小型 LCD、加速度计、几个 LED 一个或两个按钮、访问未提交的 GPIO 引脚、内置 JTAG USB 接口和完整的基于 GCC 的交叉开发工具链的板可以had for the STM32(用于例如,在 2009 年低于 40 美元,但该型号已停产)在 100 美元的球场上。

可以为许多其他基于 ARM 内核的产品找到类似的软件包。

发现 ARM 的另一种方式是作为片上系统中的 CPU 内核。相当多的 SOC 供应商正在许可 ARM CPU 与他们的专用硬件一起放置在他们的硅片上。我见过以这种方式构建的视频压缩芯片、网络芯片、火线到 ATA 适配器和 USB 设备,这只是我偶然回忆的已发表文章和新闻稿中的一部分。

2013 年第 2 次更新:Raspberry Pi 和各种Beagle 家族板中可以看到“典型”基于ARM 的SOC 系列的一个非常容易访问的入口点。两者都针对实验者和爱好者,都使用带有 ARM 内核和附加资源(如视频和音频功能)的 SOC,并且都可以开箱即用地运行 linux。

模块制造商还提供丰富多样的系统,提供包含完整可引导系统的夹层板,用于安装在定制板上,提供特定嵌入式系统所需的电源和 I/O 连接器。一位这样的供应商是Gumstix。 Gumstix AirSTORM 提供 Wi-Fi、蓝牙、DRAM、NAND FLASH 和 TI OMAP3 ARM SOC。合适的载板可以支持 LCD 面板或 HDMI、10/100 以太网、USB 主机和 OTG 以及线路级模拟音频连接,以及对各种附加 GPIO 引脚和片上外围设备的访问。

【讨论】:

  • 您的链接[had for the STM32](http://www.st.com/mcu/contentid-105-110-STM3210B_PRIMER.html) 似乎已损坏。
  • @abdullahkahraman,看起来 ST 又重新洗牌了他们的网站。我已经修复了指向今年 PRIMER 产品演示设备型号的链接。
【解决方案2】:

我建议您获取BeagleBoard。它们具有 JTAG 支持,因此您可以看到硬件中发生的情况,有点像硬件调试器。有几个在其上运行的 linux 版本。它周围还有一个很棒的社区,可以在您使用它时为您提供帮助。我的 Ubuntu Jaunty 正在运行,所以你可以运行的实用程序和编译器没有尽头。

【讨论】:

    【解决方案3】:

    这个相关问题的答案中描述了几个很好的资源:

    此外,Hitex 还为一些基于 ARM 处理器的不同微控制器提供“内幕指南”(免费,但需要注册):

    其中大部分(如果不是全部)都是免费下载的(我认为它们是由微控制器制造商赞助的)。它们更适合于微控制器,而不仅仅是 ARM 细节,但它们确实包含一些 ARM 细节,它们是对微控制器和微控制器外围设备的很好的概述。

    【讨论】:

      【解决方案4】:

      我会并且会在 sparkfun.com 上冲浪,他们携带 olimex 板以及自己制作。 Luminary Micro/stellaris 也不错。 beagleboard 更像是一个 linux 平台,而不是您访问 arm 功能/指令本身的东西。您可以使用它,但您可以用这笔钱购买 3 到 7 个不同的基于 ARM 的微控制器评估板。无论哪种方式,我都会从包裹在基于手臂的微控制器(可能是 st 或 lpc)上的小板开始,发光的微型只有 thumb2,我只会在用股票手臂指令和拇指指令弄湿我的脚后做。

      我也很喜欢用gameboy Advance作为arm的学习平台(不是NDS,也就是高级,从GBA家族开始)。

      您将需要 ARM ARM(ARM 体系结构参考手册),然后每个特定的内核都有自己的 TRM,您将需要两者来了解哪些指令可供您使用。在大多数情况下,这些手册既可​​以作为参考,也可以从头开始学习。

      【讨论】:

        【解决方案5】:

        我首先会得到一个像STR750-LOVE 这样的评估板。然后编译并理解示例。在您对示例感到满意之后,是时候继续了解引擎盖下的内容并编写自己的代码了。学习过程的一个重要部分是尝试做某事,然后必须对其进行调试并使其工作。如果您想成为 ARM 方面的专家,您需要能够自信地阅读程序集。我刚刚接受了 ARM 固件开发人员的面试,我为技术部分所做的只是分析 THUMB 汇编代码并将其转换为 c 代码。大多数编译器都可以选择输出它们生成的程序集。

        【讨论】:

        • 除非我知道处理器架构的架构,否则开始使用电路板并不是一个 gr8 的想法!首先,我必须获得一些理论知识如何继续下去
        • 您无需了解 PC 的工作原理即可为其编写代码。但是,如果您只是对低级内容的工作方式感兴趣,只需下载 gcc-arm 内容并编写或编译不同的 c 代码并查看生成的汇编以了解低级内容。要精通它,您需要在实际硬件上调试代码。
        【解决方案6】:

        用 Tom Lehrer 的话来说“抄袭,抄袭,让任何人的作品都逃不过你的眼睛”。

        或者像牛顿(和伯纳德)一样站在巨人的肩膀上。

        换句话说,找出其他人都做了什么,最好避免重新发明轮子。

        【讨论】:

          【解决方案7】:

          我会从一个便宜的开发板和示例软件开始,然后从那里开始,查找您需要了解的内容。

          基于 ARM 内核的 STM32 的一个很好的入门书是适当命名的 STM32 Primer

          除了快速浏览之外,我不会从技术手册开始。 STM32 的手册长达 600 多页,随附的 Cortex-M3 手册还有 400 页。不完全是轻松阅读!

          【讨论】:

            【解决方案8】:

            这真的取决于什么样的ARM,这是一个非常广阔的世界。 通常 ARM 集成在 SoC(片上系统)中。如果您正准备迁移到特定的 SoC 供应商,那么您需要考虑所有这些。根据我的经验,SoC 外设和缓存选择比实际内核的影响更大(性能除外)。

            至于评估板:我对Luminary micro(50-60 美元范围)Cortex M3 有很好的经验。它带有完整的 (eclipse) 开发环境、示例、库和一些硬件(即 USB、以太网、OLed 显示器)以及您可以运行和学习的示例。在实践中学习比通过阅读学习更有趣。我希望您能够从 8051 升级到 Cortex M3。

            在高端领域,beagle board 是一款真正的数字运算器,也可以运行 Linux。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-07-02
              • 1970-01-01
              • 1970-01-01
              • 2017-08-27
              • 2021-05-26
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多