硬汉嵌入式论坛

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

[μCOS-III] 如何将宏定义定义在工程文件比较靠前的位置

[复制链接]

3

主题

5

回帖

14

积分

新手上路

积分
14
发表于 2024-8-10 16:50:58 | 显示全部楼层 |阅读模式
在移植UCOSIII到STM32的工程时遇到一个问题。

C语言中单文件组织情况下宏定义只对定义了这个宏下面的内容有效。多文件情况下应该定义在什么地方会比较合适?
我是移植了UCOOSIII。想要直接宏定义OS的systick和pendsv函数来替换s文件中的weak函数。在FreeRtos中有一个点h文件是这么用宏定义替换掉了OS里面的相应函数。如果UCOS里面想要实现相似的功能,这个宏定义放在工程什么位置比较合适。
才能在尽量不修改移植的源文件情况下完成。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115894
QQ
发表于 2024-8-11 10:02:13 | 显示全部楼层
uCOS不需要这样搞,他的port文件函数名字和xxx.s里面的一样,直接就替代了。

FreeRTOS那个是自己换了个名字,所以弄了个宏定义。
回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2024-8-11 22:09:47 | 显示全部楼层
eric2013 发表于 2024-8-11 10:02
uCOS不需要这样搞,他的port文件函数名字和xxx.s里面的一样,直接就替代了。

FreeRTOS那个是自己换了个 ...

感谢大大的回复。我想要实现的是写一个宏定义
#define     OS_CPU_SysTickHandler       SysTick_Handler
这样用来替换掉启动文件中的systick函数。只要声明文件os_cpu.h以及实现文件os_cpu.c,os_cpu_a.asm文件知道这个宏定义就行。现在就是不知道怎么指定才能让asm文件知道有这个。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115894
QQ
发表于 2024-8-12 09:40:11 | 显示全部楼层
小贤修仙 发表于 2024-8-11 22:09
感谢大大的回复。我想要实现的是写一个宏定义
#define     OS_CPU_SysTickHandler       SysTick_Handle ...

这个我们早期发过一个帖子,我是又开了一个汇编文件,直接里面调用OS_CPU_SysTickHandler和OS_CPU_SysTickHandler

找不到帖子了,这种方式比较简单。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-25 14:18 , Processed in 0.229773 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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