7

我将很快通过官方培训(CPU 方面)踏上 ARM Cortex M3 的潮流。

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

我想为自己配备一个足够通用的入门套件,让我继续前进,并且至少可以让我尝试不同的硬件/软件组合(步进器、CAN-Bus、SPI 等)。我正在查看以下列表(请随时添加更多项目!):

  • 皮质 M3 芯片
  • 评估板
  • 工具链
  • JTAG 工具

对于芯片,我希望高端型号之一能够尝试一切。NXP LPC1768 似乎是一个不错的选择,但也需要考虑 STM 和 Stellaris。

目前该板的有趣候选者是 Keil MCP1760、STM3210E-EVAL,但我担心供应商锁定,因为我希望能够在单个板上尝试各种工具链。mBed 非常有吸引力,但由于它是在线编译器,所以不适合(除非也可以使用常规编译器)

对于 Toolchain,我对 IAR,Rowley Associates 有一种“感觉”。与开源相比,我更喜欢易于使用/做得很好,最好是可以在多个目标上使用的工具。

我真的需要 JTAG 单元吗?如果它看起来像一个“标准行业工具”,我至少想获得一些经验。这似乎是供应商锁定的另一个来源。我是使用我自己熟悉的外部设备还是只使用评估板上的设备更好?

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

谢谢你。

结果:我订购的:

我终于买了 Joseph Yiu 的“The Definitive Guide to the ARM Cortex-M3 (Embedded Technology)”,找到了一些针对 CortexM3 平台的培训(即将推出)并购买了 STMicro 套件:STM3210C-Eval,它内置了一堆传感器并且不是供应商锁定到特定的软件环境。我还购买了一些带有板载 JTAG 的 STm32vl-Discovery 板(来自 digikey 的 13 美元!)。我现在正在玩 Keil 的 uVision IDE 的评估版 (32K),我可以说我真的印象深刻!我能够在一天内重新构建 Discovery 的固件,将其加载回来,并使用调试器逐步完成它!

谢谢大家!

4

4 回答 4

3

llvm 和 gcc 都很好,不需要购买任何软件。这里提供免费帮助的大多数人都是 gcc 用户。Codesourcery 是获取更新/更好的 gcc(用于 arm)的当前位置。精简版完全没问题。滚动你自己的 gcc 是一件相对容易的事情,但也许不是你喜欢的事情。llvm 的一个好处是它始终是一个交叉编译器,并且预构建通常具有多个/所有目标。

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

sparkfun.com 的 stm32 头板价格低于 50 美元,外加 mbed,谁知道还有什么。Stellaris 板的价格在 100 美元以下,非常好。我不小心做了警告说不应该做的事,几乎立即把我的 811 弄坏了。以错误的方式转动了我的 jtag gpio 引脚,然后……游戏结束。1968 和其他非 811 系列要么不可变砖,要么不那么容易变砖。Stellaris 板使用板载外围设备处理所有 io,这在一段时间内很有趣,但如果您想做的不仅仅是如何使用这些外围设备,那就不行了。如果您使用的是 stm32 标头(避免使用 stm 引物),您将需要一个 jtag wiggler,amontek 是一个很好的,jtag-tiny 和 olimex 应该可以正常工作,但我实际上不知道我曾经把我的盒子。理论上,一个 Stellaris 板可以用作另一个或其他 cortex-m3 的 jtag wiggler。如果你有一个 Stellaris 板,你不需要任何其他东西,你需要的一切都在一个价格的盒子里,如果你不想使用那个工具链,那么你可以下载上面列出的一个。

于 2010-10-02T00:19:04.777 回答
2

您可能想查看Atmel ATSAM3U-EK 开发套件(Digi-Key 大约200 美元)。它具有 LCD 触摸屏、加速度计、温度传感器、模拟输入、JTAG、两个串行端口和 USB 2.0(内置于 SAM3U)。

我喜欢 SAM3 系列的一点是易于启动。它具有板载 ROM 以及用于程序存储的闪存。在出厂时,它启动 ROM(您稍后将其更改为从闪存启动),启动 USB 端口,该端口声明自己是 USB 通信设备类 (CDC),并运行 SAM-BA 启动监视器。它还有一个片上 ERASE 引脚,可将整个设备重置为出厂设置。

因此,从头开始重新编程,您所要做的就是:

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

不需要加密狗或 JTAG 盒。我知道通过 IAR 通过 JTAG 重新编程的步骤可能更少,但我喜欢知道如果其他工具出现故障,有一种方法可以进入已知状态。

IAR 工具链支持 SAM3 系列,并且有一个将 FreeRTOS 移植到 SAM3U + IAR(我现在正在尝试移植到 SAM3U + GCC,因为 IAR 的 5000 美元许可证对我们来说太丰富了)。

SAM3U-EK 的另一个巧妙之处是:它有一个板载 NAND 闪存,如果您在运行演示时将板插入计算机,它会将闪存作为“闪存驱动器”安装在您的计算机上。在这个 flash 上,您将找到 GCC、IAR 和 Keil 工具链的文档、原理图、演示程序和库,以及将演示程序恢复到板上的说明和文件(如果您认为自己损坏了某些东西,这很有用)。

于 2010-10-01T16:46:09.437 回答
2

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

整个东西在 DigiKey 上只需 33 美元。

于 2010-11-07T22:00:02.473 回答
1

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

于 2010-10-01T16:21:09.407 回答