ARM STM32需要兼容编译器[已关闭]

问题描述 投票:0回答:3

我对嵌入式硬件编程相对较新,尽管对编程并不陌生。我从http://microcontrollershop.com/product_info.php?products_id=5058&osCsid=9jkr9kor7d76qgvu76knsr0hp2购买了STM32F407VGT6多媒体板、TFT LCD、SD、加速度计、USB。我以为我可以使用 microC for ARM 编译器,但误读演示版本为 80 kb,而不是实际的 8kb。买这个花了300,我真的没有钱。我试图找到一个不同的兼容编译器,但到目前为止还无法找到。

我确实发现有人提到 Code Sourcery lite 可能会工作,尽管没有人提到这个特定的板,但免费版本尚未与 eclipse 集成,我无法成功集成它。

我真的不知道该怎么办,因为我不想购买一个全新的控制器和屏幕来继续我的项目,而且我不想付费购买这个编译器

如果有人知道与该板兼容的免费 IDE(即使仅对学生免费),我们将不胜感激。

c++ arm embedded touch
3个回答
2
投票

编译器仅需要支持处理器的指令集。主板特定支持本身不是编译器的责任。 此外,对于基于 ARM 的设备,编译器只负责 ARM 内核;对外设的支持,特别是您的 PLL 时钟方案也不是编译器的责任。 因此,文档中未提及您的主板这一事实在很大程度上是无关紧要的。

一些工具链,特别是来自 Keil(ARM 子公司)和 IAR 等的 IDE,提供了大量的芯片和主板支持。 这两家公司都提供演示版本,Keil 的我相信至少 32K 就不错,而且IDE 还支持免费的 GNU 工具,例如 Code Sourcery,对代码大小没有限制。

但是,在许多情况下,特别是 STM32 的情况下,您需要的许多主板支持都可以从芯片供应商处获得。 ST 提供标准外设库和 ARM CMSIS(ARM 标准化 Cortex-M 支持 API),以及许多其他库。 Keil 实际上随其工具链提供了 ST 的标准外设库和 CMSIS,但从 ST 获取它可以确保最新版本。 可以在“设计支持”选项卡此处找到库和手册。 您问题中链接的主板页面有一个下载示例代码的链接,以支持片外主板外设。

因此,结果是 Code Sourcery 或其他 ARM GCC 发行版可以正常工作,但您可能需要从芯片或板供应商提供的库等部分以及 IDE/调试器环境(如 Eclipse 或 uVision)构建完整的开发环境。

关于使用 Eclipse,有一篇文章这里描述了如何为 STM32 Discovery 板进行操作;其中大部分适用于您的开发板,如果不用于调试/闪存编程,至少可用于构建 - Discovery 板具有内置 STLink JTAG 调试器。


2021 年 6 月更新

上面的很多内容都已经过时了 ST 很大程度上已经弃用了对 SPL 的支持,甚至不为 STM32F7 等较新系列提供支持,而是用 STM32Cube 框架取代它。

重要的是,ST 现在提供了一个免费的 IDE,集成了工具链和 CubeMX:https://www.st.com/en/development-tools/stm32cubeide.html


1
投票

您考虑过Yagarto吗?
http://www.yagarto.de/
它适用于 Windows 和 MacOS。

或 GNU ARM:
http://www.gnuarm.com/
主要在 Linux 和 MacOS 上运行(也可通过 Cygwin 在 Windows 上运行)。


1
投票

将代码源精简版添加到您的路径,以便您可以从命令行使用它,然后使用 CDT 安装 Eclipse。安装后创建新的交叉编译可执行项目。输入arm-none-eabi(验证这是您的工具链的前缀),您应该能够编译和调试您的项目。

© www.soinside.com 2019 - 2024. All rights reserved.