下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

SAMA5D3 (ARM Cortex-A5) RTOS 演示
包括 FreeRTOS-Plus-CLI,并使用 IAR 嵌入式编译器
[RTOS 移植]


Atmel Cortex-A5 RTOS

简介

此页面记录了一个 FreeRTOS 演示应用程序。 该应用程序运行于 Atmel ATSAMA5D3 嵌入式处理器。ATSAMA5D3 其具有 ARM Cortex-A5 核心和一个 Atmel 高级中断控制器 (AIC)。 预置 RTOS 示例 项目的构建使用 IAR ARM 嵌入式工作台 编译器和 IDE,并生成运行在 SAMA5D3 Xplained 评估板上的目标文件。


Atmel Cortex-A5 RTOS
运行 SAMA5 RTOS 演示的 EWARM RTOS 状态视图 (State Viewer) 窗口
点击放大


重要提示! 关于使用 FreeRTOS Atmel SAMA5 演示项目的注意事项

请在使用此 RTOS 移植之前阅读以下所有要点。

  1. 源代码组织
  2. 演示应用程序功能
  3. 构建说明
  4. RTOS 配置和使用详情
另请参阅常见问题我的应用程序未运行,可能出什么问题? 以及 为 在不包含 GIC 的 ARM Cortex-A 处理器上使用 FreeRTOS 提供指导的页面(SAMA5 使用 Atmel 自己的高级 中断控制器 (AIC) 而不是 ARM 的通用中断控制器 (GIC) )。

源代码组织

FreeRTOS zip 文件包含所有 RTOS 移植和所有 RTOS 演示应用程序的源代码。 这些文件中只有一小部分要用于 Atmel SAMA5 ARM CORTEX-A5 RTOS 演示应用程序。 源代码组织页面描述了 FreeRTOS zip 文件下载的结构,并提供 关于如何创建新 RTOS 项目的信息。

IAR 嵌入式工作台项目文件位于 FreeRTOS/Demo/cortex_A5_SAMA5D3x_Xplained_IAR 目录。

IAR 项目包括 /FreeRTOS-Plus 目录中的一些文件,因此项目将 构建失败,如果 /FreeRTOS-Plus 目录被删除或从 默认位置移动到其它位置。



Atmel SAMA5 ARM Cortex-A5 演示应用程序

硬件和软件设置

不需要特定的硬件配置。


功能性

常量 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY, 定义在 main.c 的头部,用于切换基本的 “闪烁”演示项目和全面的测试和演示应用程序。


mainCREATE_SIMPLE_Blinky_DEMO_ONLY 设置为 1 的功能

如果 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 1,则 main() 将 调用 main_blinky 函数。

main_blinky() 函数创建一个简单的演示,其中包括两个 任务和一个队列。 第一个任务(队列发送任务)使用队列来 反复发送数字 100 给第二任务(队列接收任务)。 接收任务会切换 LED 的状态,每当它收到 消息。 消息每 200 毫秒发送一次,因此 LED 的状态将 每 200 毫秒切换一次。


mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 0 的功能

Atmel Cortex-A5 RTOS
在 CLI 中查看运行时统计信息
点击放大
如果 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 0,则 main 函数将 调用 main_full()。

main_full() 会创建一个全面测试和演示应用程序 以展示:

由 USB 设备 CDC 驱动程序创建的虚拟 COM 端口 被用作 CLI 的输入和输出接口。 在 Windows 设备上安装虚拟 COM 端口所需的 .inf 文件 是 6119.inf,它与 IAR 项目位于同一个目录中。 演示项目枚举 虚拟 COM 移植,通过哑终端程序连接到 FreeRTOS-Plus-CLI, 例如 Tera Term 或超终端,以 115200 bps 的波特率显示信息。 与 FreeRTOS-Plus-CLI 一样, 在 CLI 中键入 'help' 来查看注册命令列表。

SAM5 ARM CORTEX-A5 Xplained 评估板通过它的 USB 设备端口供电, 因此,一旦 RTOS 演示应用程序开始执行,USB CDC 设备将进行枚举, 并且每次重新启动 RTOS 演示应用程序时都将重新枚举。 这意味着终端程序无法连接到虚拟 COM 端口,直到 RTOS 应用程序开始运行。 每次停止或重新启动 RTOS 演示应用程序时,终端程序都必须和虚拟 COM 端口断开连接或重新建立连接。

完整演示中创建的大多数其他任务来自标准演示项目 任务集合。 这些任务被用于所有 RTOS 演示应用程序,适用于任何编译器和 任何架构。 它们虽然不具有特定的功能,但确实演示了用到的 RTOS API 并测试了移植的 RTOS 内核。

应用程序在最后会创建“检查”任务。 检查任务定期查询标准 RTOS 演示任务,确保它们按预期运行。 检查任务还切换 LED 状态,为系统状态提供视觉指示。 如果检查任务没有检测到任何可能的错误,它将每三秒钟切换 一次 LED 状态。 如果检查任务 检测到可能的错误,那么它将每 200 毫秒切换一次 LED 状态

注意:一些标准演示任务会检查自身的计时,而且 如果处理USB中断所花费的时间过多, 计时检查会失败(导致错误并报告给“检查”任务)。



构建说明

构建和执行演示应用程序

请注意, RTOS 演示项目会引用位于 /FreeRTOS-Plus/FreeRTOS/Demo/Common 目录中的通用文件。因此项目会编译失败, 如果 /FreeRTOS-Plus 已被删除或从默认位置移动到其他位置。
  1. 在嵌入式工作台 (EWARM) IDE 中打开 FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/RTOSDemo.eww

  2. 打开 main.c 并按照要求设置 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY,生成 简单的闪烁演示项目或完整的测试和演示应用程序,

  3. 在 IDE 的“项目”菜单中选择“构建全部” ,或按 F7 构建 演示项目。 演示项目应当成功构建,FreeRTOS 相关文件 没有生成任何错误或警告。

  4. 确保目标硬件连接到 使用该硬件 USB 连接器的主机。

  5. 在 IDE 的“项目”窗口中选择“下载和调试”下载 已经构建的可执行文件到 ARM Cortex-A5 RAM 并启动调试过程。



RTOS 配置和用法详情

FreeRTOSARM CORTEX-A 移植特定配置

请注意! 一些 ARM Cortex-A 处理器 使用 ARM 自己的通用中断控制器 (GIC),而其他处理器,例如 SAMA5D3 采用专有的中断控制器。 我们还有专门的网页 介绍在两个场景中使用 RTOS 的方法。 那么 请参阅 介绍 在 ARM Cortex-A 嵌入式处理器(不含 ARM 通用中断控制器)上使用 RTOS 的说明网页

此演示的特定配置内容位于 FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/FreeRTOSConfig.h 头 文件。


FreeRTOS 使用的资源

此演示项目被配置为从 PIT(周期中断控制器)中生成 RTOS 滴答中断。 RTOS 使用的其他资源记录 在 指导 如何在 ARM Cortex-A 嵌入式处理器(不含 ARM 通用中断控制器)上使用 RTOS 的页面 ,参见已引用内容。


内存分配

Source/Portable/MemMang/heap_4.c 包含在 ARM Cortex-A 演示应用程序项目中,用于 为 RTOS 内核分配所需的内存。 请参阅 API 文档的内存管理部分, 以获取完整信息。


其他事项

请注意,vPortEndScheduler() 尚未实现。




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.