Embedded 基于Linux的ARM开发

Embedded 基于Linux的ARM开发,embedded,arm,cortex-m,Embedded,Arm,Cortex M,我从德州仪器公司购买了Tiva C系列LaunchPad TM4C123G评估套件。该套件包含一个带有ARM Cortex M4F微控制器的小型PCB。现在我想开始为这个微控制器编写软件。我习惯于在Windows上使用AVR Studio为AVR 8位微控制器编程。我听说在Linux上编程基于ARM的微控制器应该很容易,而且由于Linux是我的主要平台,我想要一个简单的IDE,它的工作原理或多或少和我从AVR中习惯的一样 几天来,我一直在寻找一个好的IDE和工具来完成这项工作。令我惊讶的是,只有

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

几天来,我一直在寻找一个好的IDE和工具来完成这项工作。令我惊讶的是,只有少数会在Linux上运行,而且没有一个是开源或免费软件。这真的是真的吗?我不想花几百美元只是为了尝试Cortex M4F的一些编程。当我发现IDE不够好或太贵时,我也不想时不时地学习一个IDE。我已经习惯了Linux和开源的工作方式,我感到非常震惊的是,似乎没有人在Linux上使用开源工具进行任何严肃的嵌入式ARM编程。如果我错了,请纠正我

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

Texas Instruments建议在评估套件后盖上安装以下工具链之一:

  • Code Composer Studio IDE:全功能板锁定
  • Keil:32KB地址有限公司
  • IAR:32KB地址有限公司
  • Mentor Embedded Sourcery CodeBench:30天全功能
我也被《红色代码》推荐到了红色工作室

两者都不是开源或免费的,都有局限性。在我看来,只有CodeComposer Studio和Red Studio是Linux兼容的

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

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


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

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

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

  • 您想与AVR 8位(或PIC32、瑞萨RX 32等)共享代码吗
  • 建立一个基于
    make
    的构建系统是否是一个中期/长期目标
  • 是否需要制表符完成和/或集成调试器
  • 您是否希望在将来尝试其他eval板(而不必强制安装另一个IDE)
或者你只是想让它快速运行。在这种情况下,我会使用推荐的IDE之一来获得印象

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

因此,总是有可能将
Eclipse
Makefile
项目和
gcc
一起使用。 我已经尝试过两次,但对我来说效果不好,因为我在不同的目标之间共享库,并且我发现在Eclipse中传递定义很困难

因此,我的IDE是
Makefile
Emacs
gcc
,我已经完全改用C++:这可能是使用
gcc
的另一个优点

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

更新

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

  • 从中获取ARM的GCC的二进制分布
以下步骤特定于STM32:

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

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

  • 有各种各样的例子,搜索“stm32vl发现闪烁”(我不能推荐一个,我使用的那个已经消失了)

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

  • Project/Examples/GPIOToggle/TrueSTUDIO/stm32\u flash.ld

  • 库/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/TrueSTUDIO/startup\u STM32F10x\u ld\u vl.s

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

  • 看看GPIOToggle项目(
    project/Examples/GPIOToggle

  • 编写一个Makefile来编译、链接和闪存


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

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