OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4561|回复: 4

新人学UCOS,求大侠来指导

[复制链接]

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2013-9-24
在线时间
2 小时
发表于 2014-1-16 14:53:01 | 显示全部楼层 |阅读模式
现在主要在看邵贝贝的书,有些不太懂得地方,希望会的指点一下,还不懂得共同学习。

第一个,为什么讲如果在OSStart()之前不先建立一个任务,就会导致应用程序崩溃?

第二个,为什么在建立其他任务之前要调用 OSStatInit()函数来确定用户的PC有多快?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2013-9-24
在线时间
2 小时
 楼主| 发表于 2014-1-16 14:55:16 | 显示全部楼层
第三个,关于OS_ENTER_CRITICAL();函数,如何确定什么时候该用?(我并不能确定中断会影响哪些东西,如何知道中断会影响哪些东西?)
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2382
金钱
2382
注册时间
2012-11-22
在线时间
403 小时
发表于 2014-1-16 22:17:49 | 显示全部楼层
如果用户应用程序打算使用统计任务,用户必须在初始化时建立一个唯一的任务,在这个任务中调用OSStatInit()(见文件OS_CORE.C)。换句话说,在调用系统启动函数OSStart()之前,用户初始代码必须先建立一个任务,在这个任务中调用系统统计初始化函数OSStatInit(),然后再建立应用程序中的其它任务。程序清单L3.12是统计任务的示意性代码。
书上不是写的很清楚了嘛。
没有一个启动任务的话,就没法调用OSStatInit()函数。
没有其他任务,相当于只运行统计任务和空闲任务去,这里必须有个初使计数值,这样有了其他任务时才能计算出CPU的利用率。
OS_ENTER_CRITICAL()这个函数的话,如果你有个任务很重要,不能被中断打断,那你在执行那个任务前,必须关中断呀。
书上都有具体讲解,你看书的时候认真点,好好消化下。
态度决定一切
回复 支持 反对

使用道具 举报

4

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2013-7-18
在线时间
0 小时
发表于 2014-1-17 00:14:59 | 显示全部楼层
你有一个任务很重要不允许程序中断,此时可以使用禁止中断命令,代程序执行完后再恢复。这不很好理解?什么时候用是你自己的事,是程序的重要性来决定呀。
好好学习,明天向上
回复 支持 反对

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2013-9-24
在线时间
2 小时
 楼主| 发表于 2014-1-20 16:58:34 | 显示全部楼层
回复【3楼】冰封嗜魔:
---------------------------------
哦哦,讲解得很详细。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表