配置 FreeRTOS 内核移植 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置 FreeRTOS 内核移植

此部分提供有关将 FreeRTOS 内核移植集成到 FreeRTOS 移植测试项目的说明。有关可用内核移植的列表,请参阅 FreeRTOS 内核移植

FreeRTOS 使用 FreeRTOS 内核支持多任务处理和任务间通信。有关更多信息,请参阅 。FreeRTOS 内核基础知识在 FreeRTOS 用户指南和自由投资

注意

将 FreeRTOS 内核移植到新架构不在本文档的讨论范围内。如果您对将 FreeRTOS 内核移植到新架构感兴趣,联系 FFreeRTOS 工程团队

对于 FreeRTOS 资格认证计划,仅支持现有端口。资格认证计划中不接受对这些端口进行修改。只有可以从Github被接受。

Prerequisites

要设置 FreeRTOS 内核以进行移植,需要具备以下条件:

  • 用于目标平台的正式 FreeRTOS 内核移植。

  • 一个 IDE 项目或 CMakeLists.txt 列表文件,其中包括用于目标平台和编译器的正确 FreeRTOS 内核移植文件。

    有关设置测试项目的信息,请参阅为移植设置 FreeRTOS 源代码

  • configPRINT_STRING() 宏针对您设备的实施。

    有关实施 configPRINT_STRING() 的信息,请参阅 实现 configPRINT_STRING() 宏

配置 FreeRTOS 内核

freertos/vendors/vendor/boards/board/aws_tests/config_files/FreeRTOSConfig.h 标头文件为 FreeRTOS 内核指定应用程序特定的配置设置。有关每个配置选项的说明,请参阅 FreeRTOS.org 上的自定义

要将 FreeRTOS 内核配置为可使用您的设备,请打开 FreeRTOSConfig.h,并验证是否已为您的平台正确指定下表中的配置选项。

配置选项 描述

configCPU_CLOCK_HZ

指定用于生成时钟周期中断的时钟频率。

configMINIMAL_STACK_SIZE

指定最小堆栈大小。作为起点,可将其设置为在正式 FreeRTOS 演示中、为要使用的 FreeRTOS 内核移植使用的值。正式 FreeRTOS 演示是指通过 FreeRTOS.org 网站发布的演示。确保将堆栈溢出检查设置为 2,并在发生溢出时增加 configMINIMAL_STACK_SIZE。为节省 RAM,将堆栈大小设置为不会导致堆栈溢出的最小值。

configTOTAL_HEAP_SIZE

设置 FreeRTOS 堆的大小。与任务堆栈大小一样,可以调整堆大小以确保未使用的堆空间不会消耗 RAM。

注意

如果您正在移植 ARM Cortex-M3、M4 或 M7 设备,还必须正确地指定 configPRIO_BITSconfigMAX_SYSCALL_INTERRUPT_PRIORITY

Testing

  1. 打开 /libraries/freertos_plus/standard/utils/src/iot_system_init.c,然后注释掉从 SYSTEM_Init() 函数中调用 SOCKETS_Init() 的行。此初始化函数属于您尚未移植的库。此库的移植部分包括用于取消注释此函数的说明。

  2. 构建测试项目,然后将其刷写到您的设备以执行该项目。

  3. 如果“.”每 5 秒钟在 UART 控制台上显示一次,则 FreeRTOS 内核已正确配置且测试已完成。

    打开 freertos/vendors/vendor/boards/board/aws_tests/config_files/FreeRTOSConfig.h,然后将 configUSE_IDLE_HOOK 设置为 0,以停止内核执行 vApplicationIdleHook() 和输出“.”。

  4. 如果“.”以 5 秒钟以外的任何频率显示,打开 FreeRTOSConfig.h 并验证 configCPU_CLOCK_HZ 是否设置为适合您主板的正确值。

为您的设备配置 FreeRTOS 内核移植后,即可开始移植 Wi-Fi 库。有关说明,请参阅移植 Wi-Fi 库