根据Keil项目文件修改成tiny的Makefile

本文介绍了如何将STM32CubeIDE的项目转换为使用Tiny的Makefile,详细讲述了查找和处理Keil项目文件中的头文件和源码文件,以及修复编译器对浮点数支持的问题,旨在帮助开发者更好地理解和定制自己的Makefile。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浅谈STM32CubeIDE

前面文章有写,我上手时采用了IDE,但后来实践中,我再也没打开过STM32CubeIDE,原因比较多吧,

  • 启动太臃肿
  • 配置复杂
  • 电脑配置差
  • 用着不爽
  • ……

当然后两点纯粹个人原因 哈哈

实际学习中,我基本上是采用的gcc+sublime text或者gcc+vim。因为我习惯这么用了,虽然用着谈不上方便,但是顺手。

我的感受

可是,开始上手时,对于源码的不了解,加之GCC下只有一个HelloWorld,让我对TencentOS-tiny的探索之旅无所适从。所以,为了后人乘凉,我干脆就把我编写好的Makefile文件和当时修改文件的思路拿出来分享给大家。

修改方法

标准Makefile的样子

首先,我们先看看标准Makefile到底长啥样子,这里,我们打开board/TencentOS_tiny_EVB_MX/GCC/hello_world/Makefile文件,分析一下里面的结构,就发现其实大部分地方不需要改动,我们只用将我们的examples需要编译的c文件,以及需要包含的头文件包含进去就可以了。

所以,找到待编译的文件,还有头文件,就是我们的目标。

寻找目标Keil文件

现在转战到KEIL目录下,我们以farm_ai_demo文件为例,使用文本编辑器打开board/TencentOS_tiny_EVB_MX/KEIL/farm_ai_demo/TencentOS_tiny.uvprojx 文件,就可以看到里面的文件结构,大致浏览一下,发现这就是个xml文件。

头文件

接下来就发现,我们的目标就静静的躺在那里,等待我们的到来:
在这里插入图片描述

就在<IncludePath>标签之中,所有的头文件包含都在这里了。我们把这段复制出来,进行处理一下:

先将Windows下的路径分隔符\转换为/,然后使用换行替换掉;

再将../转换为对应的路径,这样,就可以把这段代码添加到Makefile文件的头文件包含段了。我们对他们再进行一些模块划分,最终头文件包含的效果就是这样:

# C includes
KERNEL_INC = \
		-I $(TOP_DIR)/kernel/core/include  \
		-I $(TOP_DIR)/kernel/pm/include  \
		-I $(TOP_DIR)/kernel/hal/include \
		-I $(TOP_DIR)/arch/arm/arm-v7m/common/include \
		-I $(TOP_DIR)/arch/arm/arm-v7m/cortex-m4/gcc
		C_INCLUDES += $(KERNEL_INC)

CMSIS_INC = \
		-I $(TOP_DIR)/osal/cmsis_os
		C_INCLUDE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值