9

我从 Texas Instruments 购买了 Tiva C 系列 LaunchPad TM4C123G 评估套件。该套件包含一个带有 ARM Cortex M4F 微控制器的小型 PCB。现在我想开始为这个微控制器编写软件。我习惯在 Windows 上使用 AVR Studio 对 AVR 8 位微控制器进行编程。我听说在 Linux 上编写基于 ARM 的微控制器应该很容易,而且由于 Linux 是我的主要平台,我想要一个简单的 IDE,它或多或少地像我习惯的 AVR 一样工作。

几天来,我一直在寻找可以完成这项工作的优秀 IDE 和工具。令我惊讶的是,只有少数可以在 Linux 上运行,而且没有一个是开源或免费软件。这真的是真的吗?我不想花几百美元来尝试一些针对 Cortex M4F 的编程。当我发现它不够好或太贵时,我也不想现在学习一个 IDE,然后再学习另一个。我习惯了 Linux 和开源的做事方式,我很震惊,似乎没有人在 Linux 上使用开源工具进行任何认真的嵌入式 ARM 编程。如果我错了,请纠正我。

我没有在 Cortex M4F 上运行 Linux 的计划——我只想像普通微控制器一样对其进行编程。

Texas Instruments 建议在评估套件的封底上使用以下工具链之一:

  • Code Composer Studio IDE:全功能板卡锁定
  • Keil:32KB 地址限制
  • IAR:32KB 地址限制
  • Mentor Embedded Sourcery CodeBench:30 天全功能

我也被 code_red 推荐了 Red Studio。

既不是开源的,也不是免费的,都有限制。在我看来,只有 Code Composer Studio 和 Red Studio 与 Linux 兼容。

我偶然发现了另一个产品,Rowley CrossWorks,它也兼容 Linux,但仍然非常商业化且价格昂贵。

真的没有开源替代品吗?大多数产品似乎都使用Eclipse和GCC,没有这些商业包应该可以做到,对吧?我只是找不到任何教程或指南来解释如何为嵌入式 ARM 编程进行设置。我还需要知道如何在编译后对设备进行编程。

我真的很想尽快开始。非常感谢任何建议和想法:-)

4

2 回答 2

10

无论您使用哪种评估板,它总是一样的:STM32 discovery、LPCXpresso、TI Launchpads。它们非常便宜,但推荐的 IDE 是有限的:它们的代码大小是有限的,仅限 Windows,或者它们绑定到特定的 Linux 发行版。

根据我的经验,选择取决于您的长期目标:

  • 您想与 AVR 8 位(或 PIC32、Renesas RX 32、...)共享代码吗?
  • 建立一个基于 的构建系统是一个中期/长期目标make吗?
  • 您需要制表符补全和/或集成调试器吗?
  • 您是否想在未来尝试其他评估板(无需被迫安装另一个 IDE)?

或者你只是想让这个快速启动并运行。在这种情况下,我会使用推荐的 IDE 之一来获得印象。

另一方面,我使用过的所有 32 位微控制器(Cortex-M0/3/4、PIC32、Renesas RX)都可以使用gcc. 据我所知,Code Red、Mentor 和 MPLABX 使用gcc(或修改后的gcc)。

所以总是有可能EclipseMakefile项目一起使用,并且gcc. 我已经尝试了两次,但对我来说效果不佳,因为我在不同的目标之间共享库,而且我发现很难在 Eclipse 中传递定义。

所以我的 IDE 是MakefileEmacsgcc,并且我已经完全切换到使用 C++:这可能是使用gcc.

这两种可能性(带有 Makefile 项目的 Eclipse带有 make 的编辑器)都不是“现成的”:它们需要时间、耐心和您最喜欢的 Internet 搜索引擎。

更新

我不知道关于如何设置基于GCC + make的环境的完整教程,所以我只是描述了几年前我做的基本步骤(有一些变化)。

以下步骤是 STM32 特定的:

  • 获取其中一个发现板,例如STM32 价值线 Discovery

  • 获取 flash 实用程序:我正在使用stlink ( git clone https://github.com/texane/stlink.git)。这也包括一个 GDB 后端。

  • 有各种各样的例子,搜索“stm32vl discovery blink”(我这里不推荐一个,我用的那个已经消失了)

作为替代(或后续):获取外围固件示例

  • 你会发现一个 GNU ld 兼容的链接器脚本Project/Examples/GPIOToggle/TrueSTUDIO/stm32_flash.ld

  • 你会发现一个 GNU 作为兼容的启动在Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup_stm32f10x_ld_vl.s

  • 您还将在 .zip 存档中找到所有其他必需的库包括文件和源

  • 查看GPIOToggle项目 ( Project/Examples/GPIOToggle)

  • 编写 Makefile 进行编译、链接和闪存

于 2013-07-22T07:19:32.727 回答
1

要构建您自己的开发环境,您可以使用以下组合:

  • 日食 CDT
  • 获取要使用的工具链(官方GCC版本或为您的平台定制的一些第三方)
  • 通过内部 Eclipse 构建系统(CDT 构建器)或通过一些外部构建器(即 make)将工具链集成到 Eclipse 环境中
  • 为了获得 JTAG 调试支持,您需要设置一个 GDB 硬件调试 Eclipse 插件

我已经设法以这种方式为 LPC1769(Cortex-M3 CPU)完成了我自己的设置并且它工作了:)

于 2013-07-22T12:22:10.567 回答