C

在NXP IMXRT1050-EVKB上使用FreeRTOS

兼容版本

Qt Quick Ultralite已与FreeRTOS v10.0.1进行了测试,这是用于NXP IMXRT1050-EVKB的官方支持版本。

注意:如果您正在使用NXP IMXRT1050-EVKB的预编译平台库,则FreeRTOS的源代码部分已被编译到其中。如果要更改FreeRTOS版本,则必须重新构建平台库。

有关支持的平台和FreeRTOS版本,请参阅支持的架构、平台和FreeRTOS版本

为Qt Quick Ultralite提供FreeRTOS符号和库

如果您在项目中使用app_common,则通过设置FREERTOS_DIR CMake缓存条目来提供Qt Quick Ultralite的FreeRTOS源代码路径。

注意:MCUXpresso SDK中FreeRTOS源代码的目录名称可能发生变化。从rtos目录检查正确路径。

目录必须至少包含以下内容

  • include目录包含FreeRTOS头文件。如果您使用的是MCUXpresso SDK 2.6或更早版本,则在父目录中进行搜索。
  • portable目录
  • MemMang目录位于portable下。该目录应包含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文件。
  • event_groups.c
  • list.c
  • queue.c
  • tasks.c
  • timers.c

FreeRTOSConfig.h 由平台库提供。应用程序必须使用编译平台库时相同的 FreeRTOSConfig.h。要使用自己的 FreeRTOS 配置,必须重新编译平台包。

如果您项目中不使用 app_common,则不需要设置 FREERTOS_DIR CMake 缓存条目。但是,您必须为 Qt Quick Ultralite(即,这些头文件必须在您的项目中)提供以下头文件和功能。

  • FreeRTOS.h
  • task.h
  • portable.h
  • memory.h
  • void xPortSysTickHandler(void)
  • void *pvPortMalloc(size_t xSize)
  • void vPortFree(void *pv)

有关如何在没有 app_common 的情况下设置项目的说明,请参阅 构建不带 app_common 的应用程序

闪存 FreeRTOS 项目

对于使用 FreeRTOS 的项目,闪存过程是相同的。有关详细的闪存说明,请参阅 本页

适用于某些 Qt 许可证。
了解更多。