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

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

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

    中断中实现任务调度,是uCOS-II高实时性特色的根源,当OSIntExit()函数内检索到有更高优先级的任务准备完毕时,会调用OSIntCtxSw(),而该函数需要根据不同的芯片架构进行相关移植代码的编写,而对于LPC17xx系列,通用做法是在OSIntCtxSw()函数中进行PendSV请求,这样在系统节拍定时中断退出时会执行PendSV的中断处理,在该处理中真正实现任务的调度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值