您的位置:首页 > 其它

LPC17xx芯片中对ucosii操作系统节拍时钟初始化的时机选择

2014-10-29 17:32 549 查看
这里要注意下,根据uCOS-II官方说明文档,操作系统节拍时钟一定要在OSStart()函数调用之后进行初始化,通常来讲在操作系统运行的第一个任务中进行,否则可能导致系统崩溃。

因为OSStart()函数中需要执行OSStartHighRdy(),而该函数执行后将直接跳转到优先级最高的任务中运行,至此uCOS-II算是正式运行了,因为它第一次执行了任务调度,此时再初始化系统节拍时钟,实现uCOS-II在中断中调度任务。

中断中实现任务调度,是uCOS-II高实时性特色的根源,当OSIntExit()函数内检索到有更高优先级的任务准备完毕时,会调用OSIntCtxSw(),而该函数需要根据不同的芯片架构进行相关移植代码的编写,而对于LPC17xx系列,通用做法是在OSIntCtxSw()函数中进行PendSV请求,这样在系统节拍定时中断退出时会执行PendSV的中断处理,在该处理中真正实现任务的调度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: