4390|10

54

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

系统的时钟节拍 [复制链接]

在启动时钟节拍之前,是不是必须得把需要的任务都创建完毕了才能启动,

也就是说,在时钟节拍开启以后,就不能再创建新的任务了。

我在2440的工程中看到,每次都是创建第一个任务的时候开启的Timer0(idle和time任务除外),系统必须这样吗?

最新回复

timer0中断如果特别特别短的话,中断一直再来的情况下,这个系统的设计等于是废掉了,现实中不会出现这样的情况。RAW-OS支持中断嵌套的特性主要以下api的支持: raw_enter_interrupt raw_finish_int 上面函数考虑到了中断嵌套出现的情况。  详情 回复 发表于 2013-3-13 10:18

点评

不知道你说的这个TImer0是给系统调度器用的吗。感觉应该是。 在启动OS之前,至少要建立一个用户任务(UCOS2的空闲任务和统计任务属于系统任务)。如果还有其他任务,可以在这个之前建立的任务中创建,当然也可以在  详情 回复 发表于 2013-1-31 17:37
点赞 关注

回复
举报

420

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
操作系统启动后,可以动态的创建任务,这个是完全没有任何问题的。具体的建议在VC 工程里面创建一个任务,等它启动后再创建任务试试。

最高优先级的任务里面推荐做驱动的初始化,有百利而无一害。

点评

vc里面,我可以把start_vc_timer(1000 / RAW_TICKS_PER_SECOND)放在raw_os_init()的下面 但是在2440的程序中,Timer0Init()放在raw_os_init()下面以后,任务就跑不起来了 这是什么原因导致的?  详情 回复 发表于 2013-2-1 11:35
 
 

回复

2804

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
一般都是这种做法,这点我还没有关注过,以前都是给予框架开发的,但是i我觉得不应该有这种限制!~
 
个人签名QQ:1625345502
 
 

回复

436

帖子

5

TA的资源

五彩晶圆(初级)

4
 
原帖由 使者0123 于 2013-1-31 14:00 发表
在启动时钟节拍之前,是不是必须得把需要的任务都创建完毕了才能启动,

也就是说,在时钟节拍开启以后,就不能再创建新的任务了。

我在2440的工程中看到,每次都是创建第一个任务的时候开启的Timer0(idle和ti ...
不知道你说的这个TImer0是给系统调度器用的吗。感觉应该是。

在启动OS之前,至少要建立一个用户任务(UCOS2的空闲任务和统计任务属于系统任务)。如果还有其他任务,可以在这个之前建立的任务中创建,当然也可以在启动OS之前全部创建完。
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 沙发 jorya_txj 的帖子

vc里面,我可以把start_vc_timer(1000 / RAW_TICKS_PER_SECOND)放在raw_os_init()的下面

但是在2440的程序中,Timer0Init()放在raw_os_init()下面以后,任务就跑不起来了
这是什么原因导致的?
 
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

6
 
操作系统起来之前,不能有任何中断。
时钟的初始化,驱动的初始化,需要放第一个优先级最高的任务里,遵循这个规则吧。

点评

在timer0中断到来时,会执行raw_time_tick(),然后调用caculate_time_slice() 如果现在正在caculate_time_slice()中执行,此时timer0中断也到来,那系统是怎样处理的呢?  详情 回复 发表于 2013-3-12 10:01
ok 谢谢各位了:)  详情 回复 发表于 2013-2-1 15:40
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 jorya_txj 的帖子

ok  

谢谢各位了
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 6楼 jorya_txj 的帖子

在timer0中断到来时,会执行raw_time_tick(),然后调用caculate_time_slice()

如果现在正在caculate_time_slice()中执行,此时timer0中断也到来,那系统是怎样处理的呢?

点评

首先在实际应用场合中,timer0不会嵌套timer0, 很可能的是其它中断去打断timer 0 的中断,这样就形成中断嵌套,raw os 是支持中断嵌套的功能的,不会产生系统问题。  详情 回复 发表于 2013-3-12 10:37
 
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

9
 

回复 8楼 使者0123 的帖子

首先在实际应用场合中,timer0不会嵌套timer0, 很可能的是其它中断去打断timer 0 的中断,这样就形成中断嵌套,raw os 是支持中断嵌套的功能的,不会产生系统问题。

点评

\"首先在实际应用场合中,timer0不会嵌套timer0,“ timer0不会嵌套timer0是不是说让timer0的中断服务程序的处理时间要尽可能的短? 如果timer0中断别别的中断所中断,那么就会影响任务的调度,可不可以说“中  详情 回复 发表于 2013-3-12 21:49
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 9楼 jorya_txj 的帖子

"首先在实际应用场合中,timer0不会嵌套timer0,“

timer0不会嵌套timer0是不是说让timer0的中断服务程序的处理时间要尽可能的短?

如果timer0中断别别的中断所中断,那么就会影响任务的调度,可不可以说“中断高于一切”,这也体现了RTOS的一个特征呢?

还有就是如何判断一个系统是否支持中断嵌套.RAW-OS中从哪里可以看出来呢?
 
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

11
 
timer0中断如果特别特别短的话,中断一直再来的情况下,这个系统的设计等于是废掉了,现实中不会出现这样的情况。RAW-OS支持中断嵌套的特性主要以下api的支持:
raw_enter_interrupt
raw_finish_int
上面函数考虑到了中断嵌套出现的情况。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表