【问题标题】:How can I override #define OS_ISR_FIFO_QUEUE in my application如何在我的应用程序中覆盖#define OS_ISR_FIFO_QUEUE
【发布时间】:2022-11-30 03:59:11
【问题描述】:
在 Mbed OS 系统中有一个名为 RTX_Config.h 的库。我需要在库中更改此定义的值。
#ifndef OS_ISR_FIFO_QUEUE
#define OS_ISR_FIFO_QUEUE 16
#endif
有人可以给我一个提示,Mbed 配置系统是如何工作的,以及我是否能够用配置系统覆盖这个值?
谢谢 !
【问题讨论】:
标签:
configuration
preprocessor
mbed
【解决方案1】:
谷歌搜索原始源文件我发现:
// <o>ISR FIFO Queue
// <4=> 4 entries <8=> 8 entries <12=> 12 entries <16=> 16 entries
// <24=> 24 entries <32=> 32 entries <48=> 48 entries <64=> 64 entries
// <96=> 96 entries <128=> 128 entries <196=> 196 entries <256=> 256 entries
// <i> RTOS Functions called from ISR store requests to this buffer.
// <i> Default: 16 entries
#ifndef OS_ISR_FIFO_QUEUE
#define OS_ISR_FIFO_QUEUE 16
#endif
该文件的目的是设置相关模块的配置。所以你可以直接去修改它,没有任何问题。
现在,如果您担心因为这个定义已经存在而无法进入 ifdef/if,那么您可以取消定义它(尽管这可能不是正确的方法):
#ifdef OS_ISR_FIFO_QUEUE
#undef OS_ISR_FIFO_QUEUE
#endif
#ifndef OS_ISR_FIFO_QUEUE
#define OS_ISR_FIFO_QUEUE 1234 // your value
#endif
请注意,如果定义已经存在,您应该查找定义它的位置并修改那里的值。