设为首页 加入收藏

TOP

微控制器实时操作系统实践5选择IDE(三)
2023-07-23 13:25:40 】 浏览:61
Tags:时操作 选择 IDE
?一些基本的投资回报率(ROI)的计算,将现金支出与开发人员的时间的诚实和准确估计进行比较,通常会使中等复杂项目的天平倾向于购买中间件。当然,这是在假设有现金可以购买软件工具的情况下。

ARM/Keil uVision

Keil最初在20世纪80年代为8位8051架构开发了首批C语言编译器之一。该公司转而支持其他内核,并最终被ARM收购。他们目前为ARM Cortex-M设备提供最有效的编译器之一(Clang/LLVM)。uVision IDE的免费版本是可用的,但仅限于32KB的代码空间。集成开发环境的各种层级有多种许可选项(如永久的、基于订阅的等等)。代码模块是通过软件包添加的,这简化了项目的快速设置。一个功能非常全面的中间件堆栈可作为顶级产品,它为不同的实时操作系统提供了抽象,并在所有支持的MCU之上提供了统一的API。

以下是uVision的快速统计数据:

FreeRTOS任务感知调试不可用--Keil uVision对他们自己的免费提供的CMSIS RTX RTOS有精心的支持。uVision MDK中的代码编辑器也该改头换面了。

与Keil uVision类似,IAR Embedded Workbench是另一个长期存在的嵌入式工作的IDE。

IAR Embedded Workbench

一般来说,IAR嵌入式工作台与Keil uVision有非常相似的功能集。主要的区别是,IAR没有纳入模块化软件包的高级能力。先进的调试功能在IAR中相对于uVision更容易获得和直观一些。代码编辑器同样令人失望。

下面是IAR嵌入式工作平台的快速统计:

现在我们已经涵盖了老牌的产品,我们将进入最近的产品,首先是Rowley CrossWorks。

罗利CrossWorks

Rowley Crossworks是一个比Keil和IAR价格略低的入门级产品。中间件是与IDE分开授权的。FreeRTOS意识到的基于任务的调试在IDE中是不可用的;相反,对CrossWorks任务库(CTL)RTOS解决方案的支持是可用的。

以下是CrossWorks的快速统计数据:

接下来是一个由以调试硬件闻名的公司创建的IDE: SEGGER Embedded Studio。

SEGGER Embedded Studio

SEGGER--我们将要使用的调试探头的制造商--也提供许多软件产品,包括他们自己的IDE(和RTOS)。它可以免费用于非商业用途,没有任何限制。他们也有一个完整的中间件堆栈,与IDE分开授权。FreeRTOS意识到的调试可以直接在IDE中使用,并有适当的插件。

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

SysProgs Visual GDB

Visual GDB实际上并不是一个IDE。它是Microsoft Visual Studio和Visual Studio Code的插件。它已经存在了相当长的一段时间(从2012年开始)。Visual GDB的主要目的是提供一致的UI(Visual Studio)来与支持GDB的调试器和GNU make工具进行交互。它的主要目标用户是那些熟悉Visual Studio开发环境并希望在其嵌入式工作中继续使用该环境的程序员。

下面是Visual GDB的快速统计:

Visual GDB提供了与图形化配置工具--STM Cub--以及Arduino项目的集成,所以从不同的开发框架迁移可能会更容易一些。

选择本书中使用的IDE

现在我们已经对几个不同的IDE进行了分类,是时候考虑哪一个将被用于本书剩余部分所涉及的示例代码了。为了保持低成本的主题,以减少进入的门槛,我们将把重点放在不需要任何金钱投资的IDE上--任何可供非专业人员免费使用的东西(没有时间或代码限制)都可以考虑。这就立即排除了Keil uVision、IAR Embedded Workbench和SysProgs Visual GDB。Keil有免费版本,代码限制在32KB,但我们可能很快就用完了,这取决于我们选择在例子中包含多少中间件。

由于本书有很大一部分内容涉及用J-Link探针进行调试,我们希望有一持J-Link或GDB的IDE。在完美的世界里,IDE也会支持任务感知的FreeRTOS调试,实时变量观察,等等。正如我们将在下一章看到的那样,FreeRTOS内核感知调试并不是什么大问题,因为SEGGER Ozone包括这种能力。

最后,集成开发环境应该是多平台的,以促进任何有胆量的人的采用。鉴于这一系列标准,我们只剩下有限的选择,如图所示:

那么,我们可以从这个表格和前面的观察中得出哪些要点呢?

  • Eclipse CDT是潜在的候选方案,但由于与其他一些解决方案相比需要额外的设置,所以它略显不理想。
  • VS Code是可扩展的代码编辑器(开箱即用),与Eclipse类似。将需要额外的插件。
  • STM32But IDE承诺提供专业级的调试能力和多任务RTOS感知调试。
  • SEGGER Embedded Studio承诺提供与STM32CubeIDE非常相似的功能集。
    我们将使用STM32CubeIDE进行代码示例。由于STM32CubeIDE也包含了STM32系列MCU的代码生成器,让我们来看看使用代码生成工具的一些优势,以及要做的权衡。

考虑STM32Cube

STM32CubeIDE是两个组件的合并--IDE和STMCubeMX图形化配置和代码生成工具,用于STM32 MCU。CubeMX组件可以在开发周期的几个不同点上发挥作用。让我们来谈谈开发周期的相关阶段,确定CubeMX如何帮助,以及如何权衡。

器件选择

大多数现代MCU可以选择将外设映射到几个不同的引脚。然而,每个引脚通常在几个不同的外设之间共享。因此,在引脚受限的设备上,有可能出现所需的外设可用(存在于MCU上)但无法访问(能够被映射到一个物理引脚)的情况。硬件设计人员可以快速评估STM32 MCU的各个型号是否能突破特定应用所需的外设组合。能够快速、准确地在多个芯片上进行这些评估,可以大大节省时间。通常情况下,设计者在做出这样的决定之前,需要对每个芯片的数据手册进行密切的了解。CubeMX绝对不能替代适当的尽职调查,但它确实有助于快速缩小潜在器件的范围。

STM32 MCU上的每个外设都可以单独关闭,这可以节省电力。随着目前电池供电(和能量收集)的物联网设备的激增,尽量减少功耗是热门话题。另一种降低功耗的方法是以较低的频率为芯片计时。CubeMX允许工程师快速计算出芯片在特定配置下的耗电量。在为一个项目调查潜在的MCU时,速度和准确性都很重要。通过在CubeMX中输入外设/时钟配置来获得准确的功耗估算,比浏览数据手册和从头开始创建电子表格要快得多。

硬件启动

硬件启动是指首先启动定制设计的硬件并对其进行某种程度的验证。与开发/评估板相比,定制硬件通常有许多不同之处(毕竟是定制的!)。一个可能不同的领域是时钟硬件。STM32的时钟树是相当复杂的--单一的时钟源为许多不同的子系统供电。时钟频率会被乘法器和除法器沿途修改。CubeMX包含图形化向导,帮助正确配置STM32时钟树,并生成初始化代码,使芯片快速启动和运行。

还需要早期的固件工作来验证硬件的运行。仔细检查MCU是否可以被配置为访问电路板上所有需要的片外电

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目