• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
四季安好
博客园 首页 新随笔 联系 订阅 订阅 管理

2012年10月14日

从Cortex-M3的MSP 和PSP谈Linux能否在中断中使用Sleep
摘要: 1、Cortex-M3 的PSP和MSP 曾经在STM32上使用过RT thread和uC/OS,对于任务切换代码一直是一知半解,没有自己手动写出来过,对于任务切换后的ORR LR, LR, #0x04; Ensure exception return uses process stack也不是很理解,一次偶然的机会,遇到网上有人问这个问题,才去深入研究一下。Cortex‐M3 拥有两个堆栈指针,然而它们是banked,因此任一时刻只能使用其中的一个: 主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)。 进程堆栈指针(PSP):由用户... 阅读全文
posted @ 2012-10-14 20:36 四季安好 阅读(4786) 评论(0) 推荐(0)
 
uC/OS 的任务调度解析
摘要: 1、任务调度器启动之后(初始化,主要是TCB的初始化),就可以创建任务,开始任务调度了,实际上第一个任务准确的说不是进行任务切换,而是进行启动当前最高优先级任务。uC/OS使用的是OSStartHighRdyOSStartHighRdy LDR R0, =NVIC_SYSPRI14 ; Set the PendSV exception priority LDR R1, =NVIC_PENDSV_PRI STRB R1, [R0] MOVS R0, #0 ... 阅读全文
posted @ 2012-10-14 19:50 四季安好 阅读(1783) 评论(0) 推荐(1)
 
转载:uC/OS-II的任务切换机理
摘要: 2.2 任务级和中断级的任务切换步骤和原理(1)任务级的任务切换原理 μC/OS-II是一个多任务的操作系统,在没有用户自己定义的中断情况下,任务间的切换步骤是这样的:任务间的切换一般会调用OSSched()函数。函数的结构如下:void OSSched(void){关中断如果(不是中断嵌套并且系统可以被调度){确定优先级最高的任务如果(最高级的任务不是当前的任务){调用OSCtxSw();}}开中断} 我们把这个函数称作任务调度的前导函数。它先判断要进行任务切换的条件,如果条件允许进行任务调度,则调用OSCtxSw()。这个函数是真正实现任务调度的函数。由于期间要对堆栈进行操作,所以O... 阅读全文
posted @ 2012-10-14 00:14 四季安好 阅读(449) 评论(0) 推荐(0)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3