OpenEdv-开源电子网

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

求原子指点ucos中systick的问题

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-7-27
在线时间
3 小时
发表于 2013-9-17 14:44:52 | 显示全部楼层 |阅读模式
看邵贝贝的书上3.11说时钟节拍的问题,强调要在OSStart之后再启动systick,但是看原子的例程里,为什么实在main函数一开始调用delay_init(),并且在里面启动了systick定时器。我看了网上的一些其他代码,貌似好多都是在OSInit()之前调用一些初始化函数,并且在初始化函数中启动了systick定时器,这里是否存在一些问题。从操作系统本身的角度来说,对于任何一个操作系统来说,也应该在初始化好了相关环境,有了一些任务之后,才能打开系统节拍进行多任务调度吧?
还有一个问题是官方文档中建议的main函数的写法是在函数开始时调用BSP_IntDisAll()禁止所有中断,直到进行完了初始化之后再启用中断,但是我看到的例程里没有这样做,这里是否会有一些问题?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2013-9-17 16:41:59 | 显示全部楼层
//systick中断服务函数,使用ucos时用到
void SysTick_Handler(void)
{    
OSIntEnter(); //进入中断
    OSTimeTick();       //调用ucos的时钟服务程序               
    OSIntExit();        //触发任务切换软中断
}
 这是我们的中断服务函数,systick的。
里面的三个函数,都有判断:
if (OSRunning == OS_TRUE) 
而如果OS没有跑,OSRunning=OS_FLASE。
所以就不会执行if后面的代码。
因此,不论你是否在之前还是之后调用,都是受控OSRunning的,而这个,必须OSStart之后,才会是TRUE。

另外,至于禁止所有中断,你可以添加这个代码。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-7-27
在线时间
3 小时
 楼主| 发表于 2013-9-18 09:14:59 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
明白了,我看的是官方的例程,里面的用的是
   OS_ENTER_CRITICAL();                       
     OSIntNesting++;
    OS_EXIT_CRITICAL();
    OSTimeTick(); 
    OSIntExit();
如果OSRunning != OS_TRUE会到执行到OSTimeTick()才跳出。不过这里对OSIntNesting++的增加貌似就没有像OSIntEnter()里检查255了。
回复 支持 反对

使用道具 举报

16

主题

253

帖子

0

精华

高级会员

Rank: 4

积分
565
金钱
565
注册时间
2013-10-16
在线时间
52 小时
发表于 2013-11-12 23:30:35 | 显示全部楼层
回复【3楼】49886762:
---------------------------------
官方的例程是在哪里下载的,请问,我也想看看。谢谢。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2013-7-27
在线时间
3 小时
 楼主| 发表于 2014-6-16 18:21:38 | 显示全部楼层
回复【4楼】wyudcl:
---------------------------------
ucos的官网上有,注册一个帐号就能下载
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 12:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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