STM32Cubemx配置生成 Keil AC6支持代码

一、前言

使用keil ARM compiler V5的时候,编译一个大项目,所花的时间太长了,如果是小项目那就没有什么差别。 ARM compiler V6的编译速度会比AC5快5倍以上。现在记录一下所配置的过程

二、AC 6配置

2.1 ARM ComPiler 选择AC6

在这里插入图片描述

2.2 AC6 UTF-8的编译命令会报错

如果使用的是UTF-8 我们通常会在 Options For TarGetC/C++Misc Controls 里面会填入

--no-multibyte-chars

需要改成

-finput-charset=UTF-8

三、STM32Cubemx 配置

STM32Cubemx 生成FreeRTos 的代码时会报错,需要修改一下,让STM32Cubemx生成支持AC6版本的代码

3.1 找到stm32cubemx的模板位置

打开 stm32cubemxProject ManagerFirmware Relative Path

在这里插入图片描述

3.2 替换文件内核文件

\STM32Cube_FW_F4_V1.27.1\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F里面的文件内容 全部替换

STM32Cube_FW_F4_V1.27.1\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F

里面的内容

3.3 修改 cmsis_os.c文件

如果你是 F4 的芯片还需要做一步,F1的板子就不需要这一步,直接重新生成就可以了

文件目录 STM32Cube_FW_F4_V1.27.1\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS

#elif defined ( __GNUC__ )

  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler          */
  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */
  #define __STATIC_INLINE  static inline

  #include "cmsis_gcc.h"

修改成

#elif defined ( __GNUC__ )

  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler          */
//  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */
//  #define __STATIC_INLINE  static inline

  #include "cmsis_armclang.h"

已经修改完成直接重新生成就行了。

3.4 修改本地

如果不想动STM32cubemx的文件代码,那么可以修改工程的代码

工程文件夹\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS替换为

STM32Cube_FW_F4_V1.27.1\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F

修改 工程文件夹\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS的文件

四、编译对比

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 09:32:05       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 09:32:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 09:32:05       4 阅读
  4. Python语言-面向对象

    2024-07-10 09:32:05       4 阅读

热门阅读

  1. springBoot整合mongodb

    2024-07-10 09:32:05       6 阅读
  2. STM32 系统时钟初始化函数和延时函数

    2024-07-10 09:32:05       8 阅读
  3. Oracle数据库服务器CPU占用率巨高的问题排查思路

    2024-07-10 09:32:05       9 阅读
  4. WebKit简介及工作流程

    2024-07-10 09:32:05       9 阅读
  5. nlp中tokenizer用法

    2024-07-10 09:32:05       9 阅读
  6. 2.Date类型的请求参数

    2024-07-10 09:32:05       10 阅读
  7. 基于antdesign封装一个react的上传组件

    2024-07-10 09:32:05       12 阅读
  8. Leetcode100.判断两颗二叉树是否相同

    2024-07-10 09:32:05       9 阅读
  9. 防止应用调试分析IP被扫描加固实战教程

    2024-07-10 09:32:05       9 阅读