如何在嵌入式FreeRTOS系统接口调用API?

电子说

1.3w人已加入

描述

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进行修改的。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分