• 已解决 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)
最佳答案
  • 不创建用户任务也可以OSStart(),这样系统也能运行,这样的话系统中的最高就绪态任务就是空闲任务,就会一直运行空闲任务,没有实际的意义,你要实现的功能都是写在你的用户任务中;在学习过程中可以在keil中单步执行观察系统的调度过程。
    • 发布于 2020-12-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 一定要有一个任务才可以让系统运行,最少也要是空闲任务。否则任务列表是空的,系统运行后会跑飞
    • 发布于2020-12-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为osstart之后会阻塞,等到它阻塞了,你就没法执行创建任务的函数了,等于一直在空转
    • 发布于2021-01-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

提问,为何在调用OSStart()函数前,要至少创建一个用户任务?