电子说
1.在最近的嵌入式工作中很多都是学习FreeRTOS系统,由于只是会对RTOS的接口进行调用,但是很多时候都是知其然而不知其所以然,所以现在对API进行总结。
2.首先还是从main函数入口,main()函数创建任务,然后启动调度器
大概的格式如下:
3.在 FreeRTOS 中,多线程被称为多任务,在这里任务可以看得和线程相同。(其实并不相同)
首先创建任务的接口:
如:
调用的函数demo如下:
上面是对两个接口的简单介绍,下面是注意的事项。
(1) :每个任务的执行必要要有延时,如果没有延时,那么会出现单个任务一直占用CPU的现象。比如说下面的代码逻辑就会出现一直在运行任务一的现象;
(2) 由于多任务是使用的时间片轮转的方式调用,如果优先级高的任务占用的时间片过多,那么低优先级的任务会出现饿死状态。
(3) (3)时间片的长度通过心跳中断的频率进行设定,心跳中断频率由FreeRTOSConfig.h 中的编译时配置常量 configTICK_RATE_HZ 进行配置。比如说,如果 configTICK_RATE_HZ 设为 10(HZ),则时间片长度为 100ms
(4)优先级是在FreeRTOS是可以通过调用API进行修改的。
全部0条评论
快来发表一下你的评论吧 !