ARM Cortex M3初学者所需的建议

时间:2010-10-01 15:06:24

标签: embedded arm toolchain cortex-m3

我将很快通过官方培训(CPU方面)开始使用ARM Cortex M3。

现在,我之前做过一些Arduino和AVR并且有一些电子基础知识,但我主要是软件开发人员。我已经在这里阅读了大多数主题,并且在其他地方有很多关于可用工具的内容,它们确实非常有用。我需要的是将所有答案元素连接在一起。

我想装备一个足够让我上手的入门套件,至少可以让我尝试不同的硬件/软件组合(Steppers,CAN-Bus,SPI等......)。我正在查看以下列表(请随意添加更多项目!):

  • Cortex M3芯片
  • 评估板
  • 工具链
  • JTAG工具

对于芯片,我希望其中一款高端型号能够尝试一切。恩智浦LPC1768似乎是一个不错的选择,但还有STM和Stellaris需要考虑。

现在有兴趣的董事会成员是Keil MCP1760,STM3210E-EVAL,但我担心供应商锁定,因为我希望能够在单板上尝试各种工具链。 mBed是非常有吸引力的,但由于它的在线编译器(除非也可以使用常规编译器),因此超出了等式。

对于工具链,我对IAR,Rowley Associates有一种“感觉”。我更喜欢易用性/完善性与开源,最好是可以在多个目标上使用的工具。

我真的需要一个JTAG装置吗?如果它是一个“标准的行业工具”,我似乎希望至少获得一些经验。它看起来像供应商锁定的另一个来源。我是否可以更好地使用外部的我可以熟悉或只使用评估板上的一个?

基本上,我需要帮助选择上述类别的获胜组合。它是否可能,或者我是否天真,应该考虑节省成本,因为我最终会最终购买其中一个?

谢谢。

结果:我点了什么:

我终于买了Joseph Yiu的“ARM Cortex-M3(嵌入式技术)权威指南”,发现了对CortexM3平台的一些培训(即将推出)并购买了STMicro套件:STM3210C-Eval,它有一堆传感器内置且不是供应商锁定到特定的软件环境。我还使用板载JTAG拾取了一些STm32vl-Discovery板(来自digikey的13 $ cdn!)。我现在正在玩Keil的uVision IDE的评估版(32K),我可以说我真的很感动!我能够重新构建Discovery的固件,加载它,并在一天内通过调试器逐步完成它!

谢谢大家!

4 个答案:

答案 0 :(得分:3)

llvm和gcc都很好,不需要购买任何软件。大多数提供免费帮助的人都将成为gcc用户。代码源是获取更新/更好的gcc(for arm)的当前位置。精简版非常好。滚动你自己的gcc是一件相对容易的事情,但也许不是你想要的东西。关于llvm的一个好处是它总是一个交叉编译器,而且预构建通常有几个/所有目标。

我还有stellaris和mbed以及其他cortex-m3示例。我喜欢stellaris,不是lpc的粉丝,避免使用expresso,mbed实际上并不坏。疯狂明亮的蓝色LED给了我一个migrane,所以我用绿色替换它们,否则它工作得很好,易于使用。伊戈尔是对的,你没有锁定他们的沙盒,就像你在使用expresso一样,我有一个例子,用gcc在那里用编译器闪烁。您只需将.bin文件复制到看起来像闪存拇指驱动器的东西,然后按重置按钮加载新文件。

sparkfun.com有一个低于50美元的stm32标题板加上mbed,谁知道还有什么。 stellaris主板价格低于100美元,非常好。我几乎立刻意外地完成了警告说不要做的事情。转动我的jtag gpio引脚错误的方式...游戏结束。 1968年和其他非811系列要么不易砌砖,要么不易砌砖。 stellaris主板使用板载外围设备来咀嚼所有io,这有趣一段时间,但如果你想做的不仅仅是如何使用这些外围设备,那就不行了。如果你使用的是stm32标题,你会想要一个jtag wiggler(避免使用stm引物)amontek是一个好的,jtag-tiny,而olimex应该可以正常工作,但我实际上不知道我曾经有过盒子。理论上,一个stellaris板可以用作另一个或其他皮质m3的jtag摇摆器。如果你有一个stellaris板,你不需要任何其他东西,你需要的一切都在盒子里一个价格,如果你不想使用该工具链,那么你可以下载上面列出的一个。

答案 1 :(得分:2)

您可能需要查看Atmel ATSAM3U-EK dev kit(约$200 from Digi-Key)。它有一个LCD触摸屏,加速度计,温度传感器,模拟输入,JTAG,两个串行端口和USB 2.0(内置于SAM3U)。

我喜欢SAM3系列的东西很容易搞砸。它有一个板载ROM和用于程序存储的闪存。从工厂开始,它引导ROM(您稍后将其更改为从闪存引导),它会激活USB端口,该端口声明自己是USB通信设备类(CDC),并运行SAM-BA引导监视器。它还有一个片上ERASE引脚,可以将整个设备重置为出厂设置。

所以你要做的就是从头开始重新编程:

  • 电源打开时,跳线ERASE至少持续200 ms
  • 重置并将主板插入USB端口
  • 在Windows或Linux上运行Atmel的SAM-BA程序
  • 选择串口
  • 启用Flash写入
  • 选择您的二进制文件并发送
  • 将其设置为从闪存启动
  • 取消USB并再次点击重置。

不需要加密狗或JTAG盒子。我知道通过IAR重新编程通过IAR可能是更少的步骤,但我知道如果其他工具中断,有一种方法可以达到已知状态。

IAR工具链支持SAM3系列,并且有一个port of FreeRTOS to SAM3U + IAR(我现在正试图移植到SAM3U + GCC,因为IAR的$ 5K许可证对我们来说太丰富了。)

关于SAM3U-EK的另一个优点:它有一个NAND闪存,如果你在运行演示时将电路板插入电脑,它会将闪存作为“闪存驱动器”安装在你的电脑上。在这个闪存中,您将找到GCC,IAR和Keil工具链的文档,原理图,演示程序和库,以及用于将演示程序恢复到电路板的说明和文件(如果您认为有问题,则非常有用)。

答案 2 :(得分:2)

就我而言,我喜欢用于LPC1768的LPCXpresso板。它具有内置USB JTAG接口,并附带免费版本的Code Red IDE(基于Eclipse)。我发现JTAG交互式调试在学习使用这个芯片时非常有用。通常我在编程时不使用交互式调试,但对于嵌入式编程,我发现它越来越重要。

DigiKey全部只需33美元。

答案 3 :(得分:1)

我最初也是一名软件开发人员。我使用了几个不同的工具包,但我发现最容易使用且最常用的工具包是mbed。打开包装盒后,您可以在五分钟内完成并运行。无需从CD安装任何IDE,无需JTAG加密狗,无需倾注数据表 - 只需编写代码,编译并运行。
是的,有人抱怨它与在线编译器“绑定”。但我只是听到那些没有真正尝试过的人。而且它只是不正确 - 您仍然可以使用任何其他可以为LPC1768生成二进制文件的工具链:IAR,Keil,CodeSourcery,Yagarto或您自己的工具链。我本人并没有找到一个案例,但这当然是可能的 mbed的最大缺点可能是它没有公开JTAG接口,因此无法以交互方式进行调试。到目前为止,我没有发现这一点很重要,但如果你做了很多低级别的工作,这可能很重要。