【问题标题】:STOP using HAL in cubeIDE [duplicate]停止在 cubeIDE 中使用 HAL [重复]
【发布时间】:2021-10-28 04:55:29
【问题描述】:

由于我想编写一个高效的程序来使用最少的 RAM 和闪存,我想从我的项目和程序中完全删除 HAL 库,并且只在寄存器中。

我想使用 cubeIDE 进行编译和调试,但我不知道如何从我的项目中删除 HAL 库(似乎在生成项目时默认创建并附加到项目的 HAL 库)。

有什么实用的方法吗?

最好的!

【问题讨论】:

  • 在重复链接中你有一个完整的教程

标签: stm32 hal stm32cubeide


【解决方案1】:

在 STM32CubeIDE 项目生成中有一个选项允许您创建 empty 项目。

空项目附带以下内容:

  • ma​​in.c:大部分为空
  • syscalls.c :我不知道它的用途,但可能没用。
  • sysmem.c : 实现_sbrk() 函数,由malloc() & new() 使用
  • startup_stm32[xxxxxxxx].s :程序集中的启动文件。你可以保持原样
  • [xxxxxx]_FLASH.ld:链接器脚本文件。大多数情况下,这可以保持不变。

但您需要一些额外的库和文件。

  • CMSIS 库:这包括所有 Cortex M 设备共有的一些核心功能。 core 库只是标题,它是您开始使用的唯一一个。还有一些额外的 CMSIS 库,例如您可能需要的 DSP 库,具体取决于您的项目要求。我建议从它的official repository 下载它。

  • 来自 ST 的官方 STM32 标头:这实际上称为 STM32Cube[xx](例如 STM32CubeF4),包括您想要摆脱的 Cube 和 HAL 框架。但我们对符合 CMSIS 的设备标头感兴趣。您可以删除其余部分。它还包括一个落后于官方版本的 CMSIS 版本。由于您可以从其官方存储库下载最新的 CMSIS,因此您不需要包含在 Cube 包中的那个。可以从 ST 下载相关包。例如,this one 用于 F4 系列。

获得所需的包后,您需要配置 STM32CubeIDE 以便您的项目使用新获得的库。基本上,您需要添加一些额外的包含目录和符号定义。还有一个额外的system_stm32[xxxxx].c文件,可以在STM32Cube包中找到,需要包含在你的工程中。

Here你可以找到一些相关的答案。

Here 是我为 Blue Pill 板 (STM32F103C8) 创建的示例 STM32CubeIDE 闪烁项目。它可能有些过时,但可能仍然有用。

我描述的方法可能不太实用。有些人建议创建一个普通的 Cube & HAL 项目,而不是修剪未使用的部分。

【讨论】:

    猜你喜欢
    • 2014-09-05
    • 2018-08-05
    • 2014-10-10
    • 2020-06-14
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多