C
在NXP IMXRT1170-EVKB上使用FreeRTOS
兼容版本
Qt Quick Ultralite对于FreeRTOS已在FreeRTOS v10.4.3上进行了测试,这是NXP IMXRT1170-EVKB官方支持的版本。
注意:如果您正在使用NXP IMXRT1170-EVKB的预编译平台库,其中已预先编译了FreeRTOS的部分源代码。如果要更改FreeRTOS版本,则必须重新构建平台库。
有关支持的平台和FreeRTOS版本的列表,请参阅支持的架构、平台和FreeRTOS版本。
为Qt Quick Ultralite提供FreeRTOS符号和库
如果您在项目中使用app_common,请通过设置CMake缓存条目FREERTOS_DIR为FreeRTOS源路径提供Qt Quick Ultralite。
注意:FreeRTOS源代码在MCUXpresso SDK中的目录名可能会更改。请从rtos目录中检查正确的路径。
该目录必须包含以下内容
include目录,包含FreeRTOS头文件。如果您使用的是MCUXpresso SDK 2.6或更早版本中的FreeRTOS,则从父目录中搜索包含。portable目录portable下的MemMang目录。该目录应包含FreeRTOS的内存管理器实现。portable/MemMang下的heap_4.c文件。这是Qt Quick Ultralite默认使用的内存分配器实现。如果您无法提供heap_4.c或希望使用自己的实现,请通过设置目标属性QUL_FREERTOS_HEAP_POLICY来更改实现。请参阅更改堆策略。- 根据您使用的工具链,需要以下文件
- 对于Arm GCC工具链
port.c文件位于portable/GCC/ARM_CM4F下。- 如果使用的是来自MCUXpresso SDK 2.6或更早版本的FreeRTOS,则位于
portable/GCC/ARM_CM4F的fsl_tickless_systick.c文件。
- 对于IAR工具链
port.c文件位于portable/IAR/ARM_CM4F下。portasm.s文件位于portable/IAR/ARM_CM4F下。- 如果使用的是来自MCUXpresso SDK 2.6或更早版本的FreeRTOS,则位于
portable/IAR/ARM_CM4F的fsl_tickless_systick.c文件。
- 对于Arm GCC工具链
event_groups.clist.cqueue.ctasks.ctimers.c
FreeRTOSConfig.h 由平台库提供。应用程序必须使用与编译平台库相同的 FreeRTOSConfig.h。为了使用您自己的 FreeRTOS 配置,必须重新编译平台包。
注意:如果使用自定义的 FreeRTOSConfig.h 或者需要更改 configTOTAL_HEAP_SIZE 的默认值,重要的是不要将 configTOTAL_HEAP_SIZE 设置得过低。应考虑文本缓存、纹理缓存、笔划路径的中间结构或用户应用中的动态分配,以分配足够的空间。过低的 configTOTAL_HEAP_SIZE 值可能导致堆溢出和意外的应用程序崩溃。
如果您在项目中不使用 app_common,则不需要设置 FREERTOS_DIR CMake 缓存条目。但是,您必须提供以下头文件和函数,用于 Qt Quick Ultralite(即,这些头文件必须位于您的项目中)
FreeRTOS.htask.hportable.hmemory.hvoid xPortSysTickHandler(void)void *pvPortMalloc(size_t xSize)void vPortFree(void *pv)
有关如何在不使用 app_common 的情况下设置项目的说明,请参阅 构建不带 app_common 的应用程序。
FreeRTOS 项目烧录
使用 FreeRTOS 的项目的烧录过程相同。有关详细的烧录说明,请参阅 此页面。
在特定 Qt 许可证下可用。
了解详情。