你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103 UCOSII实验-任务调度

[复制链接]
donatello1996 发布时间:2017-2-4 18:32
众所周知,UCOSII是非占先式实时操作系统,今天我就分享一下UCOSII最简单的使用体验——任务调度。首先我们我们可以在宏定义中设置任务的堆栈大小和优先级。程序执行main函数后即创建三个实时任务,创建任务的函数有四个参数是指向任务的函数指针,指向任务的数据指针,任务堆栈,任务优先级。main函数进入任务临界区时无法被中断打断,但是退出临界区后可以。 6.JPG
        创建任务后四个任务是并发执行(即同时开始执行)的,但由于STM32的CPU Cortex-M3是单核心单线程的,因此多个任务无法进行多线程并行执行,只能用基于优先级的时间片轮转调度算法来进行任务时间片分配,高优先级的,延迟时间短的任务可以获得更多的时间片,低优先级的的任务获得的时间片就少,因此,我们在分配任务优先级和设置任务延时时间时一定要注意,避免发生某个任务迟迟无法执行的情况。
3.JPG 4.JPG 5.JPG
        我创建了三个任务,led0_task是空任务,led1_task是将LED-PC13状态翻转的任务,ds18_task是用ds18b20检测温度并在串口输出的任务,这三个任务的堆栈分别是64,64,100,优先级分别是7,6,5。
2.JPG 6.gif
        不多说,上传一份工程文件。
工程.zip (3.79 MB, 下载次数: 126)
收藏 2 评论16 发布时间:2017-2-4 18:32

举报

16个回答
donatello1996 回答时间:2017-2-7 16:09:26
钊钊 发表于 2017-2-7 10:21
这个说得还行,但是建议你使用系统自带的延时函数来延时,避免任务调度出现卡顿或者冲突 ...

对,我的delay函数是基于SYSTICK的。
钊钊 回答时间:2017-2-7 10:21:26
这个说得还行,但是建议你使用系统自带的延时函数来延时,避免任务调度出现卡顿或者冲突
月如意 回答时间:2017-9-19 15:51:56
请问楼主如何让打印信息在串口工具显示呢?
时光虫子 回答时间:2017-2-7 09:22:21
厉害啊,谢谢分享!
我爱卡111 回答时间:2017-2-7 17:58:49
对,我的delay函数是基于SYSTICK的
我爱卡111 回答时间:2017-2-7 17:59:05

对,我的delay函数是基于SYSTICK的
我爱卡111 回答时间:2017-2-7 17:59:23

对,我的delay函数是基于SYSTICK的
我爱卡111 回答时间:2017-2-7 17:59:41

对,我的delay函数是基于SYSTICK的
我爱卡111 回答时间:2017-2-7 17:59:56

对,我的delay函数是基于SYSTICK的
钊钊 回答时间:2017-2-8 15:26:13
楼上这兄台是卡了吗?
队长shiwo 回答时间:2017-2-9 08:57:20
这个学生挺厉害哦
zbber 回答时间:2017-2-9 10:35:20
楼主威武,强烈支持……
maomoa 回答时间:2017-2-16 17:21:44
厉害啊,下载了,好好学习学习!
草民星空 回答时间:2017-2-16 19:31:27
好东西  谢谢分享
_°蛊毒、。。 回答时间:2017-2-16 20:12:50
学习了哈哈哈哈
12下一页

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版