重要提示!关于使用 MSP430X RTOS 演示的注意事项使用此 RTOS 移植之前,请阅读以下所有要点。另请参阅常见问题我的应用程序 未运行,问题可能出在哪里?
源代码组织RTOS 源代码下载内容包含用于所有 FreeRTOS 移植和所有演示应用程序的文件,因此包含的文件数量远远超过了 MSP430FR5969 演示所要求的数量。 请参阅本网站源代码组织部分, 章节,了解有关下载文件的描述。IAR 和 CCS 项目都位于 /FreeRTOS/Demo/MSP430X_MSP430FR5969_LaunchPad_IAR_CCS 目录:
构建和运行 MSP430FR5969 MSP430X RTOS 应用程序RTOS 演示项目可进行配置,以构建 blinky 项目, 或综合测试和演示应用程序。 常量 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 用于在两者之间切换。 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 定义于 main.c 顶部。
演示使用构建于 MSP-EXP430FR5969 Launchpad 开发工具包上的 LED , 因此无需进行硬件设置。 以下小节提供了使用工具链的说明, 其中为此类工具链提供了预配置的项目。
使用 IAR Embedded Workbench 构建
使用 CCS IDE 用 IAR IDE 选择大数据模型或小数据模型构建配置 注意: 如果在比最初创建项目时所用的版本更早的 EWARM 中打开,IAR 项目可能无法构建并被损坏 (因此它不能再与任何 IAR 版本一起使用) 。
使用基于 TI Eclipse 的 Code Composer Studio (CCS) 构建
使用 CCS IDE 选择大数据模型 或小数据模型 注意:CCS 项目引用了使用相对路径的文件,包括 /FreeRTOS-Plus 目录中的 FreeRTOS-Plus-CLI 文件。 如果目录路径已更改或文件已移动, 则无法构建项目。 Eclipse 的 'export' 功能可用于将项目转换为独立项目, 此项目只能使用 .project 文件所在目录下的目录。
演示应用程序功能关于简单的 blinky 的示例mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 定义于 main.c 顶部。 当 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 1 时,main() 将调用 main_blinky()。
综合测试和演示应用CLI 会话示例 注意: 当演示应用程序在 调试器中执行时,CLI 输出比较分散,而当演示应用程序独立执行时,CLI 输出比较流畅。 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 定义于 main.c 顶部。 当 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 设置为 1 时,main() 将调用 main_full()。
RTOS 配置和使用详情数据模型RTOS 支持大数据模型和小数据模型。 使用所选 IDE 中的构建选项选择数据模型 。IAR 用户注意事项: 如果当前使用的是 IAR 工具, 那么在配置 FreeRTOS 时另外还必须执行如下步骤:
定义必要的汇编器符号 配置 RTOS 滴答中断FreeRTOS 需要独占使用定时器, 该定时器能够生成称为 RTOS 'tick' 中断的周期性中断。 定时器配置在用户可定义的钩子 (或回调)函数中, 因此应用程序编写器可以灵活决定实际使用哪个定时器外围设备。钩子函数的名称和原型如下图所示 :void vApplicationSetupTimerInterrupt( void );须将常量 configTICK_VECTOR 设置为所选外围设备的中断向量数量。configTICK_VECTOR 在 FreeRTOSConfig.h 头文件中定义。 此演示项目包括 vApplicationSetupTimerInterrupt () 的实现,该实现通过配置定时器 TA0 生成滴答中断, 从而将 configTICK_VECTOR 设置为 TIMER0_A0_VECTOR。 仅当开发的应用程序需要 TA0 空闲用于其他目的时, 才需要修改提供的代码 。
中断服务程序与大多数移植不同,导致上下文切换的中断服务程序 导致上下文切换的中断服务程序无特殊要求,可根据编译器文档编写。 宏 portYIELD_FROM_ISR () 可用于从 ISR 内要求上下文切换。 注意: portYIELD_FROM_ISR() 必须是 ISR 中的最后一个语句。此演示项目提供了 FreeRTOS 中断服务程序示例, 包括在 serial.c 中定义的 prvUSCI_A0_ISR()。 请注意,prvUSCI_A0_ISR() 的实现旨在强调移植并演示中断中使用的队列, 而不是为了演示高效或通用的中断服务程序 !
RTOS 移植专用配置这些演示的特定配置项目位于 FreeRTOSConfig.h 文件中,该文件位于项目文件所在的目录。 您可以 编辑 FreeRTOSConfig.h 中定义的常量,使其适合您的应用程序。 尤其是以下常量:
每个移植都将 "BaseType_t" 定义为 #定义为处理器最有效的数据类型。 MSP430X RTOS 移植将 BaseType_t 定义为短整型。 请注意, vPortEndScheduler() 尚未实现。 内存分配MSP430X 演示应用程序项目中内置 Source/Portable/MemMang/heap_4.c, 以提供 RTOS 内核所需的内存分配。 请参阅 API 文档的内存管理部分, 获取完整信息。Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|