如何在TM4C129EXL上运行FreeRTOS?

如何在TM4C129EXL上运行FreeRTOS?,c,http,freertos,texas-instruments,coap,C,Http,Freertos,Texas Instruments,Coap,我正在为该大学的一个C项目工作,其中一个CoAP服务器将托管在TM4C129EXL上。选择FreeRTOS操作系统尤其重要。不幸的是,我不得不知道德州仪器公司已经停止支持FreeRTOS了。我没有切换到其他操作系统的选项。正是因为这个原因,我才求助于你 我正在寻找一个在TM4C129EXL板上执行免费RTOS的示例程序。在最好的情况下,我会很高兴有一个CodeComposer Studio项目,因为这是我们在大学使用的IDE 如果您没有任何可用的示例代码,我将很高兴收到关于FreeRTOS和Co

我正在为该大学的一个C项目工作,其中一个CoAP服务器将托管在TM4C129EXL上。选择FreeRTOS操作系统尤其重要。不幸的是,我不得不知道德州仪器公司已经停止支持FreeRTOS了。我没有切换到其他操作系统的选项。正是因为这个原因,我才求助于你

我正在寻找一个在TM4C129EXL板上执行免费RTOS的示例程序。在最好的情况下,我会很高兴有一个CodeComposer Studio项目,因为这是我们在大学使用的IDE


如果您没有任何可用的示例代码,我将很高兴收到关于FreeRTOS和CoAP的任何其他信息,当然是关于TM4C129EXL。

您没有指定您是否有关于
FreeRTOS
版本的任何要求,但您可以:

  • 按原样使用现场提供的文件SW-EK-TM4C1294XL-2.1.4.178.exe中提供的演示-您可以在目录
    examples\boards\EK-TM4C1294XL-boostxl-senshub\senshub\u iot中找到它
  • 使用此示例作为使用更新版本的FreeRTOS的基础:您只需将FreeRTOS源代码替换为最新版本,并且可能需要修改演示中的一些代码:一些函数名/签名可能在主要版本中发生了更改
下面的过程将逐步介绍如何使用第二种方法在Windows 10环境中使用Code Composer Studio 10.3.0和FreeRTOS v202104.00创建一个极简FreeRTOS程序。您可能需要根据特定设置调整驱动器盘符,我使用的是
D
:用于本示例

  • 下载,然后

  • 安装Code Composer Studio,支持Tiva-CMCU系列。当提示输入工作区名称时,请指定
    D:\ti\workspace\u v10

  • FreeRTOSv202104.00.zip解压缩到
    D:\

  • SW-EK-TM4C1294XL-2.1.4.178.exe解压缩到
    D:\SW-EK-TM4C1294XL-2.1.4.178

  • 发射CCS

  • 使用菜单项
    File/New/CCS Project
    ,创建一个“空项目(带main.c)”

[]

  • 单击
    Finish
    按钮
  • 创建以下目录:
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\driverlib

    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\inc

    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS内核
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS Kernel\portable\GCC

    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS Kernel\portable\GCC\ARM\u CM4F

    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS Kernel\portable\MemMang
  • D:\SW-EK-TM4C1294XL-2.1.4.178\examples\boards\EK-TM4C1294XL-boostxl-senshub\senshub\iot\FreeRTOSConfig.h
    复制到
    D:\ti\workspace\u v10\tm1294cexl FreeRTOS
  • 将所有
    .h
    文件从
    D:\SW-EK-TM4C1294XL-2.1.4.178\driverlib
    复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\driverlib
  • D:\SW-EK-TM4C1294XL-2.1.4.178\driverlib\gcc\libdriver.a
    复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\driverlib
  • 将所有
    .h
    文件从
    D:\SW-EK-TM4C1294XL-2.1.4.178\inc
    复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\inc
  • D:\FreeRTOSv202104.00\FreeRTOS\Source\include中存在的所有文件复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS Kernel\include
  • D:\FreeRTOSv202104.00\FreeRTOS\Source
    中存在的所有
    .c
    文件复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS内核中
  • D:\FreeRTOSv202104.00\FreeRTOS\Source\portable\GCC\ARM\u CM4F中存在的所有文件复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS Kernel\portable\GCC\ARM\u CM4F
  • D:\FreeRTOSv202104.00\FreeRTOS\Source\portable\MemMang\heap\u 4.c
    复制到
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\FreeRTOS Kernel\portable\MemMang
  • 编辑
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\main.c
    ,并将其内容替换为:
#包括“FreeRTOS.h”
#包括“task.h”
外部无效prvSetupHardware();
外部无效主_blinky();
内部主(空)
{
/*配置硬件以准备运行演示*/
prvSetupHardware();
main_blinky();
/*别指望能到这里*/
返回0;
}
void vaapplicationstackoverflowhook(TaskHandle\u t xTask,char*pcTaskName)
{
而(1)
{
}
}
  • 创建一个名为
    D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\blinky.c
    的新文件,其内容如下:
#包括
#包括
#包括“inc/hw_memmap.h”
#包括“inc/hw_types.h”
#包括“inc/hw_ints.h”
#包括“driverlib/debug.h”
#包括“driverlib/gpio.h”
#包括“driverlib/sysctl.h”
#包括“FreeRTOS.h”
#包括“task.h”
#包括“sysctl.h”
静态void prvLedToggleTask();
/*创建任务的优先级*/
#定义主开关LED优先级(tskIDLE优先级+1)
#定义切换\u LED\u延迟\u MS 200
void main_blinky()
{
/*创建任务*/
xTaskCreate(prvLedToggleTask,“LED”,配置最小堆栈大小,NULL,主切换LED优先级,NULL);
/*启动任务并运行计时器*/
vTaskStartScheduler();
}
静态void prvLedToggleTask(void*pvParameters)
{
//删除有关未使用参数的编译器警告*/
(void)pvc参数;
对于(;;)
{
//
//打开LED灯。
//
GPIOPinWrite(GPIO_端口n_基座、GPIO_引脚0、GPIO_引脚0);
//稍等
vTaskDelay(切换指示灯延迟)