FreeRTOS-Plus-IO 配置
简介
FreeRTOS-Plus-IO 和 FreeRTOS 内核一样,使用头文件进行配置。
FreeRTOS 配置头文件名为 FreeRTOSConfig.h,
而 FreeRTOS-Plus-IO 配置头文件名为 FreeRTOS
IOConfig.h。
内核配置文件 (FreeRTOSConfig.h) 中的设置
对代码编译后生成的可执行二进制文件的大小影响不大
。 这是因为,
其中所含的设置在大多数情况下是用来包含或排除整体函数。
大多数链接器默认*从可执行二进制文件中移除任何未引用的
函数。
而 FreeRTOS-Plus-IO 配置文件 (FreeRTOSIOConfig.h) 中的设置
会对代码大小产生很大影响。 因为它们是用于
选择性地包含或排除函数内的代码,而不是选择性地包含或排除整体函数本身。
如果 flash/ROM 空间紧缺,应务必以最优方式对 FreeRTOSIO Config.h 进行配置
。
* GCC 例外,请求删除未引用的代码
需要特定的编译时选项。
FreeRTOSIO Config.h 头文件示例
FreeRTOSIO Config.h 头文件中所含参数的详情
取决于使用的
板支持包。
以下为相关示例,随后为解释说明。
#define ioconfigUSE_ZERO_COPY_TX 1
#define ioconfigUSE_TX_CHAR_QUEUE 1
#define ioconfigUSE_CIRCULAR_BUFFER_RX 1
#define ioconfigUSE_RX_CHAR_QUEUE 1
#define ioconfigINCLUDE_UART 1
#define ioconfigUSE_UART_POLLED_TX 0
#define ioconfgiUSE_UART_POLLED_RX 0
#define ioconfigUSE_UART_ZERO_COPY_TX 0
#define ioconfigUSE_UART_TX_CHAR_QUEUE 1
#define ioconfigUSE_UART_CIRCULAR_BUFFER_RX 0
#define ioconfigUSE_UART_RX_CHAR_QUEUE 1
#define ioconfigINCLUDE_SPI 1
#define ioconfigUSE_SPI_POLLED_TX 0
#define ioconfigUSE_SPI_POLLED_RX 0
#define ioconfigUSE_SPI_ZERO_COPY_TX 1
#define ioconfigUSE_SPI_CIRCULAR_BUFFER_RX 1
#define ioconfigUSE_SPI_RX_CHAR_QUEUE 0
#define ioconfigUSE_SPI_TX_CHAR_QUEUE 0
全局传输模式选项
在上面的示例中,顶部的选项组用于包含或排除
FreeRTOS-Plus-IO 中的特定
传输模式。 轮询模式始终可用,
所以并没有特定于其的选项。
FreeRTOSIOConfig.h 参数
|
用法
|
ioconfigUSE_ZERO_COPY_TX
|
此情况下必须置 1:如果要使用
中断驱动的零拷贝传输模式。
否则置零,以确保最佳运行时和代码
大小的效率。
|
ioconfigUSE_CIRCULAR_BUFFER_RX
|
此情况下必须置 1:如果要使用
中断驱动的循环缓冲区传输模式。
否则置零,以确保最佳运行时和代码
大小的效率。
|
ioconfigUSE_TX_CHAR_QUEUE
|
此情况下必须置 1:如果要使用
中断驱动的字符队列传输模式
写入数据。
否则置零,以确保最佳运行时和代码
大小的效率。
|
ioconfigUSE_RX_CHAR_QUEUE
|
此情况下必须置 1:如果要使用
中断驱动的字符队列传输模式
读取数据。
否则置零,以确保最佳运行时和代码
大小的效率。
|
外围设备特定选项
板级支持包定义了可用的外围设备。
每个外围设备都有一个全局的包含或排除选项。 例如,
若要包含 SPI 外设,可将 configINCLUDE_SPI 置 1。 若要
排除 SPI 外设,则将 configINCLUDE_SPI 置 0。
另外,每个外围设备对其支持的每种传输模式都具有一个子选项
。 例如,若要以中断驱动的零拷贝模式使用 SPI 端口,
可将 ioconfigUSE_SPI_ZERO_COPY_TX 置 1;
否则,将 ioconfigUSE_SPI_ZERO_COPY_TX 置 0。
因此,继续讨论上面的例子,若要以中断驱动的零拷贝模式使用 SPI 端口,
需要三个设置:
-
必须将 ioconfigUSE_ZERO_COPY_TX 置 1 以启用
FreeRTOS-Plus-IO 中的这一模式。
-
必须将 ioconfigINCLUDE_SPI 置 1 以启用 SPI 支持。
-
必须将 ioconfigUSE_SPI_ZERO_COPY_TX 置 1,以专门针对
SPI 端口启用零拷贝传输模式。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.