如何在TM4C129EXL上运行FreeRTOS?
我正在为该大学的一个C项目工作,其中一个CoAP服务器将托管在TM4C129EXL上。选择FreeRTOS操作系统尤其重要。不幸的是,我不得不知道德州仪器公司已经停止支持FreeRTOS了。我没有切换到其他操作系统的选项。正是因为这个原因,我才求助于你 我正在寻找一个在TM4C129EXL板上执行免费RTOS的示例程序。在最好的情况下,我会很高兴有一个CodeComposer Studio项目,因为这是我们在大学使用的IDE如何在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
如果您没有任何可用的示例代码,我将很高兴收到关于FreeRTOS和CoAP的任何其他信息,当然是关于TM4C129EXL。您没有指定您是否有关于
FreeRTOS
版本的任何要求,但您可以:
- 按原样使用现场提供的文件SW-EK-TM4C1294XL-2.1.4.178.exe中提供的演示-您可以在目录
examples\boards\EK-TM4C1294XL-boostxl-senshub\senshub\u iot中找到它
- 使用此示例作为使用更新版本的FreeRTOS的基础:您只需将FreeRTOS源代码替换为最新版本,并且可能需要修改演示中的一些代码:一些函数名/签名可能在主要版本中发生了更改
D
:用于本示例
- 下载,然后
- 安装Code Composer Studio,支持
Tiva-C
MCU系列。当提示输入工作区名称时,请指定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
- 使用菜单项
,创建一个“空项目(带main.c)”File/New/CCS Project
- 单击
按钮Finish
- 创建以下目录:
D:\ti\workspace\u v10\TM4C129EXL FreeRTOS\driverlibD:\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(切换指示灯延迟)