硬汉嵌入式论坛

 找回密码
 立即注册
查看: 398|回复: 6
收起左侧

[MDK] keil 编译器工具集使用问题

[复制链接]

11

主题

45

回帖

78

积分

初级会员

积分
78
发表于 2025-12-26 17:29:27 | 显示全部楼层 |阅读模式
请教个问题,STM32CubeMX 生成的工程,选择 MDK 工具,生成的工程默认使用 arm compiler version 5 工具编译、链接,其中使用到的中间件 lwip、RTOS 等目前使用下来在 arm compiler version 5 可以编译ok。但是,直接切换到 arm compiler version 6 工具,编译报错,错误有很多,主要基于你使用到的中间件有哪些。目前,我使用 freertos 是需要替换底层的 port 文件。 如下是使用到 lwip 报错。


../Middlewares/Third_Party/LwIP/system\arch/cc.h(46): error: 'sys/time.h' file not found

我想看下大家使用 keil 一般选择的什么版本的工具集,arm compiler version 5 还是 arm compiler version 6。大家在 keil 中使用arm compiler version 6,搭配STM32CubeMX 生成的工程,一般是怎么做的?感觉 keil 往后是主推 arm compiler version 6 工具。
还有,想问下大家使用 arm compiler version 6 生成的固件版本,产品量产后,运行稳定性,有没有这种问题 arm compiler version 5 编译生成版本运行稳定,arm compiler version 6  编译生成版本运行有问题。
谢谢。
回复

使用道具 举报

0

主题

306

回帖

306

积分

高级会员

积分
306
发表于 2025-12-27 08:39:07 | 显示全部楼层
使用MDK的rtos和lwip代替,产品中使用AC6没问题,有问题就检查自己的代码。
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120427
QQ
发表于 2025-12-27 10:52:13 | 显示全部楼层
我们之前做的例子,使用AC6测试了下,正常。

LwIP网络教程开始更新,使用MDK的RTE环境开发,配套RTX5和FreeRTOS两个版本,更新至第7章(2020-05-03)
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=95874


124.png
回复

使用道具 举报

11

主题

45

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2025-12-29 16:03:38 | 显示全部楼层
eric2013 发表于 2025-12-27 10:52
我们之前做的例子,使用AC6测试了下,正常。

LwIP网络教程开始更新,使用MDK的RTE环境开发,配套RTX5和F ...

嗯嗯,目前看下来 STM32CubeMX 生成的工程无法直接使用 AC6 编译器。如果想使用 AC6 编译器,需要自己手动替换些文件,解决汇编语言报错,文件缺失等问题,谢谢硬汉。
回复

使用道具 举报

11

主题

45

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2025-12-29 16:06:31 | 显示全部楼层
regbbs 发表于 2025-12-27 08:39
使用MDK的rtos和lwip代替,产品中使用AC6没问题,有问题就检查自己的代码。

你好,你的意思是不是中间件不使用 STM32CUBEMX 生成的方式,使用 MDK 包管理器自己管理,可以解决 AC6 编译器报错的问题。谢谢。
回复

使用道具 举报

0

主题

306

回帖

306

积分

高级会员

积分
306
发表于 2025-12-29 16:28:35 | 显示全部楼层
longge 发表于 2025-12-29 16:06
你好,你的意思是不是中间件不使用 STM32CUBEMX 生成的方式,使用 MDK 包管理器自己管理,可以解决 AC6  ...

是的。
回复

使用道具 举报

0

主题

306

回帖

306

积分

高级会员

积分
306
发表于 2025-12-29 17:17:00 | 显示全部楼层
longge 发表于 2025-12-29 16:06
你好,你的意思是不是中间件不使用 STM32CUBEMX 生成的方式,使用 MDK 包管理器自己管理,可以解决 AC6  ...

是这样的,不论是cubemx还是其他的厂家的软件生成工程后,目录结构等并不是很合理,有些软件也不是较新的,所以使用生成的代码就好,自己的工程维护一个middleware目录,包括mcu的库也作为软件包,然后维护一个bsp目录,一个app目录,一个hal,一个include,bsp里面针对特定mcu的可以在一个文件夹,这样可以把体系相关的抽象出来,app中的可以任意使用,中间件目录可以根据需要使用新版本。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-1-9 16:49 , Processed in 0.062921 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表