【复旦微车规MCU FM33FT0A 系列】+ 移植FreeRTOS系统
[复制链接]
本帖最后由 kjsm 于 2024-2-27 14:45 编辑
FreeRTOS简介
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
其功能特点如下:
(1)用户可配置内核功能( 可裁剪 )
(2)多平台的支持
(3)提供一个高层次的信任代码的完整性
(4)目标代码小,简单易用
(5)遵循MISRA-C 标准的编程规范
(6)强大的执行跟踪功能
(7)堆栈溢出检测
(8)没有限制的任务数量
(9)没有限制的任务优先级
(10)多个任务可以分配相同的优先权队列,二进制信号量,计数信号灯和递归通信和同步的任务
(11)优先级继承
(12) 免费开源的源代码
我参考了复旦微的FM33LG0XX的FreeRTOS例程。
将例程的FreeROTS文件拷贝到自己的工程里
添加头文件支持
在头文件中找到FreeRTOSConfig.h文件,将其复制过来;
在FreeRTOSConfig.h中把时钟改成单片机的时钟;否则task时间会不对;
在主函数上添加头文件和两个Task的任务优先级
添加两个TASK任务,PC1每1 s 翻转一次; PC3每3 s翻转一次
初始化IO做为输出
创建一个Task任务:
xTaskCreate(Led1Task,"Led1",configMINIMAL_STACK_SIZE,NULL, TASK_LED1_PRIORITY, NULL);//创建任务函数
vTaskStartScheduler();//任务调度器开启函数
把PC1和PC3接入示波器可以看到了程序正常运行了;PC1每1 s 翻转一次; PC3每3 s翻转一次
|