电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
提问,为何在调用OSStart()函数前,要至少创建一个用户任务?
已解决
73482
个问题
已帮助
5993
位优秀工程师
提问,为何在调用OSStart()函数前,要至少创建一个用户任务?
韩梅梅
2020-12-22
浏览量:1009
UC/OS II初学者,在看书学习uc/osII的初始化与运行章节时,对书本上的一句话“ 在调用OSStart()函数前,必须至少创建一个用户任务...” 有疑惑。
我的疑问理由:
如果我在OSInit()初始化后,不使用OSCreat()函数创建用户任务而直接写OSStart(),那么系统应该也是能开始运行的(OSRunning==TURE)。
因为此时空闲任务与统计任务(如果有的话)已经在OSInit()时对它们的任务控制块初始化完成,OSStart()执行后会把它们两个中优先级高的调度为运行状态,即系统仍然是可以为运行状态的(OSRunning==TURE),
只不过由于没有创建用户任务,此时系统在无意义的运行罢了,不知道我理解的有无问题,望解答,谢谢。
显示全部
嵌入式
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
c63733bac38c1420
不创建用户任务也可以OSStart(),这样系统也能运行,这样的话系统中的最高就绪态任务就是空闲任务,就会一直运行空闲任务,没有实际的意义,你要实现的功能都是写在你的用户任务中;在学习过程中可以在keil中单步执行观察系统的调度过程。
发布于
2020-12-23
举报
评论 0
0
0
其他答案
数量:
2
莱克迷KW
一定要有一个任务才可以让系统运行,最少也要是空闲任务。否则任务列表是空的,系统运行后会跑飞
发布于
2020-12-23
举报
评论 0
0
0
chen0000009
因为osstart之后会阻塞,等到它阻塞了,你就没法执行创建任务的函数了,等于一直在空转
发布于
2021-01-25
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
提问,为何在调用OSStart()函数前,要至少创建一个用户任务?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: