下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

XMOS XCORE.AI 资源管理器板的 SMP 演示

简介

此演示使用了 FreeRTOS 内核的对称多处理 (SMP) 版本。 它面向具有 16 核的 XCORE.AI 。演示项目使用 XMOS XTC 工具构建 FreeRTOS XCORE.AI 移植(请注意,这些工具需要 Linux 主机或类似于 Linux 的环境)。 它展示了对内核中 FreeRTOS 对称多处理 (SMP) 的支持。

源代码组织

此演示的项目文件位于 FreeRTOS/Demo/XCORE.AI_xClang/RTOSDemo 目录下, 该目录位于 独立存储库——github 上的 FreeRTOS 存储库中找到。 项目中编译的 FreeRTOS 移植文件 位于 FreeRTOS/Source/portable/ThirdParty/xClang/XCORE.AI 目录。

SMP 演示应用程序

常量 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY,在 testing_main.h 的顶部定义,用于在简单的 "blinky" 样式 入门项目以及更全面的测试和演示应用程序之间切换。

当 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 1 时

mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 1 时,演示应用程序 会创建两个任务,每个任务定期切换板载 LED(一个任务切换 LED 0, 另一个任务切换 LED 1)。

当 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 0 时

mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 0 时,演示应用程序 实现全面的测试和演示,其中会演示 和/或测试:

创建的任务来自标准演示 集。所有 FreeRTOS 移植演示应用程序都使用标准演示任务。这些任务 没有特定的功能,创建它们仅为演示如何使用 FreeRTOS API,并测试 RTOS 移植。

两个 "check" (检查)任务被创建用来定期检查标准演示任务, (包含自我监控代码) ,以确保所有任务如预期 运行。一个检查任务监控在磁贴 0 上运行的演示任务,并在每次执行时 切换 LED 0。其他检查任务监控在磁贴 1 上运行的演示任务, 并在每次执行时切换 LED 1。这为系统健康 提供了直观反馈。如果两个 LED 都每隔 3 秒钟切换一次,则 检查任务没有发现任何问题。如果有任何 LED 每隔 200 毫秒切换一次, 则表示检查任务在至少一个任务中发现了问题。

构建并运行 RTOS 演示应用程序

硬件设置

将 xTAG 编程器插入评估板。确保 xTAG 和 评价板均通过 USB 连接到计算机。

工具链安装

开发工具需要 Linux 主机或 Linux 样式的环境。

  1. 下载 XMOS XTC 工具

  2. 将存档解压缩到您所选的安装目录。下方的示例 将安装到您的主目录:

    $ tar -xf archive.tgz -C ~ 
  3. 配置默认的环境变量集:

    $ cd ~/XMOS/XTC/15.1.0
    $ source SetEnv 
  4. 检查您的工具环境是否已正确设置:

    $ xcc --help 
  5. 使所有用户都可以访问 XTAG 驱动程序。此步骤仅需在给定的 开发机器上完成一次。

    $ cd ~/XMOS/XTC/15.1.0/scripts
    $ sudo ./setup_xmos_devices.sh 
  6. 检查 XTAG 设备是否可用且可访问:

    $ cd ~/XMOS/XTC/15.1.0/scripts
    $ ./check_xmos_devices.sh
    Searching for xtag3 devices...
    0 found
    Searching for xtag4 devices...
    1 found
    Success: User <username> is able to access all xtag4 devices 
  7. 检查设备是否可用于调试:

    $ xrun -l
    Available XMOS Devices
    ----------------------
    
      ID  Name            Adapter ID    Devices
      --  ----            ----------    -------
      0   XMOS XTAG-4     2W3T8RAG      P[0]
    

构建并运行演示应用程序

  1. 转到 RTOS 演示目录:

    $ cd FreeRTOS/Demo/ThirdParty/Community-Supported-Demos/XCORE.AI_xClang
  2. 构建演示:

    $ make 
  3. 运行演示:

    $ make run 

RTOS 配置和使用详情

  • 此演示的特定配置项目位于文件 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos/XCORE.AI_xClang/src/FreeRTOSConfig.h 中。名为 文件中定义的常量 以使其适应您的应用程序。以下配置选项 适用于 FreeRTOS 内核中的 SMP 支持:
    • configNUM_CORES - 设置内核数量。
    • configRUN_MULTIPLE_PRIORITIES - 启用/禁用同时运行具有多个优先级的任务。
    • configUSE_CORE_AFFINITY - 启用/禁用设置任务对某些内核的关联。
  • 项目中包含 Source/Portable/MemMang/heap_4.c, 旨在提供 RTOS 内核所需的内存。具体请参阅 API 文档的内存管理部分, 获取完整信息。
  • vPortEndScheduler() 尚未实现。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.