设为首页 加入收藏

TOP

微控制器实时操作系统实践5选择IDE(二)
2023-07-23 13:25:40 】 浏览:62
Tags:时操作 选择 IDE
目需要更多的努力。
黑- 盒调试很困难: 随着嵌入式工程师离硬件越来越远,理解系统的行为方式变得越来越困难,特别是当有多层其他人的代码(OPC)需要挖掘的时候。

年轻的实时嵌入式工程师的职业发展会因为早期在平台上投入太多的时间和精力而受到严重阻碍。由于所有这些额外的复杂性,在实时系统中是否能可靠地达到最后期限,存在着额外的风险和不确定性。挖掘复杂的代码库来试图追踪复杂的间歇性错误可能是真正的挑战。如果没有坚实的底层知识基础可供利用,这种挑战就会变得更大。

ARM Mbed Studio

ARM Mbed是以物联网为重点的平台,它提供了非常大的中间件库和跨越许多不同硬件供应商的一致的开发环境。最初,Mbed平台只通过网站提供,但他们现在增加了Mbed Studio--可用于Windows和macOS的离线IDE。

以下是ARM Mbed Studio的快速统计资料:

由于Mbed是面向平台的,因此可以用Mbed IDE设置项目,然后导出到各种离线IDE,如ARM Keil uVision,或基于makefile的项目,导入到Eclipse和Visual Studio Code。如果你的项目需要所包含的中间件提供的功能,而且实现得很好,那么不需要重新发明轮子就可以严重节省时间。

Arduino IDE

Arduino平台是一个极其普遍的平台,有巨大的硬件和软件的生态系统。一般来说,Arduino集成开发环境用于向新人介绍电子学和编程,它使用严格的结构化库,为用户编写草图暴露了C/C++的API。Arduino的目标是使非编程人员能够快速和容易地制作原型。因此,它尽可能多地将底层硬件的细节隐藏在库中。

以下是Arduino IDE的快速统计:

还有许多非Arudino提供的IDE,可以用来为Arduino平台编程。有些会有额外的功能,并暴露出更多底层的C/C++实现。

开放源码/免费IDE

自从IBM创建了Eclipse基金会来推广一源的、高度可扩展的IDE以来,许多基于Eclipse的IDE已经涌现出来。我们将在本节中看一下两个这样的IDE。近年来,微软开始大力关注开源项目,创建了免费的、开源的Visual Studio Code文本编辑器,本节也会介绍。

用于STM32的AC6系统工作平台(S4STM32)

AC6是一家咨询公司,它贡献了基于Eclipse的IDE,针对STM32 MCU。System Workbench增加了对基于STM的发现板的一些支持,以帮助快速建立项目。AC6还提供了适用于Linux的System Workbench,如果你正在开发多核器件(来自STM32MP1系列)的应用,它可能会很有用。

以下是STM32的AC6系统工作平台的快速统计:

Eclipse CDT和GCC

你也可以选择从头开始推出自己的基于Eclipse的IDE。Eclipse CDT是C/C++开发的事实上的标准。您还需要提供一个编译器。ARM 提供了一个完整的 GCC 站点,用于从 Windows、Linux 和 macOS 向 ARM Cortex-M 设备进行交叉编译。可以在 https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm 找到它。

以下是Eclipse CDT的快速统计资料:

对于那些不喜欢Eclipse集成开发环境的人来说,存在另一种替代方案,而且越来越受欢迎: Visual Studio Code。

微软Visual Studio Code

2015年,微软发布了Visual Studio Code,这是一个文本编辑器,提供添加扩展的能力。虽然这在表面上听起来相当简单,但有足够的扩展来提供一个非常值得尊敬的IDE体验,包括IntelliSense和完整的调试能力。如果你已经习惯了基于Visual Studio的IntelliSense和调试,那么这个环境就会非常熟悉。

以下是Visual Studio Code的快速统计数据:

与Eclipse CDT类似,Visual Studio Code需要安装GCC,以及一个扩展。为了让Visual Studio正确设置,请按照以下步骤进行:

  • 要安装GCC for Cortex-M,请到https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm。
  • 要安装JLink工具(用于连接到调试探针),请访问https://www.segger.com/downloads/jlink。
  • 要安装cortex-debug扩展,请到https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug。

到目前为止,我们所涉及的所有IDE都是免费的(在某些情况下是开源的)。下一节包括那些要花钱的、基本上是闭源的IDE。为什么会有人想要这样的东西呢,你问。继续阅读,看看这些解决方案能提供什么。

专有的集成开发环境

付费的专有IDE曾经是MCU交叉编译应用程序的标准,现在开始被免费的、开放源码的解决方案所取代。然而,仅仅是免费选项的存在并不能立即使付费选项被淘汰。专用集成开发环境的卖点是,它们提供最广泛的设备支持,并要求开发者给予最少的关注。

设计成开箱即用,付费专业级解决方案的名声是为开发者节省时间。这些时间的节省通常有三种主要形式:设置MCU的统一环境、统一的调试环境和供应商提供的中间件,在多个MCU供应商之间通用。

现在启动和运行MCU比以往任何时候都要容易,但一旦项目进展到开始定义RAM和ROM中的特定内存区域或在基于Quad-SPI的闪存中添加额外的可执行空间,就需要一些额外的配置。最好的专业集成开发环境会提供一些帮助(通过图形用户界面),这使得这些配置比需要深入研究散点文件和基于汇编的启动代码要容易一些(尽管这些都是需要掌握的优秀技能!)。

与通过GUI快速配置MCU的能力类似,专业级IDE的调试器支持通常也是非常直接的,一般仅限于从下拉列表中选择调试器,并可能对一些设置进行微调。

如果你阅读了不同的MCU可能拥有的所有选项,那么同一MCU并不适合你进行的每一个项目,这一点可能并不奇怪。能够在MCU系列(甚至是供应商)之间快速移动,同时保持一个统一的界面是一个很好的优势。然而,被锁定在基于平台的方法中,硬件接口开始被定义(以及固件API),也可能是限制性的(即Arduino或MBed硬件定义)。

使用一个成熟的公司编写的中间件,可以使你摆脱面向硬件的平台只关注日光下的外设的倾向。它将重点从访问一个特定平台的引脚转移到访问适当抽象的MCU外设。这种区别是微妙的,但在涉及到设计灵活性时却相当重要。写得好的中间件将提供一致的MCU外设抽象,以及更复杂的中间件。

付费工具的缺点是货币成本,这需要根据开发时间、劳动力和延迟产品发布的机会成本进行评估。你知道通过使用中间件而不是重新发明固件轮子可以节省多少时间吗?拥有一个对你选择的任何处理器都能稳定工作的IDE所获得的时间量又是多少呢

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ARM64启动汇编和内存初始化(上) -.. 下一篇微控制器实时操作系统实践3任务信..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目