【问题标题】: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
    

    请注意,如果定义已经存在,您应该查找定义它的位置并修改那里的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多