ucOS-II基于ARM920T的OSCtxSw实现分析

发布者:达文西happy最新更新时间:2021-04-29 来源: eefocus关键字:ucOS-II  ARM920T 手机看文章 扫描二维码
随时随地手机看文章

首先必须了解,在将ucos-II移植到ARM920T时,使用了如下结构的任务栈:

程序清单:基于ARM920T的OSCtxSw实现分析


注意:ARM需手动保存pc和psw


OSCtxSw


; Special optimised code below:


;1、根据任务栈结构,分别压栈,保存旧任务的现场


stmfd sp!,{lr}; push pc (lr should be pushed in place of PC)


stmfd sp!,{r0-r12,lr}; push lr & register file


mrs r4,cpsr


stmfd sp!,{r4}; push current psr


mrs r4,spsr


stmfd sp!,{r4}; push current spsr


; 2、OSPrioCur = OSPrioHighRdy


ldr r4,=OSPrioCur


ldr r5,=OSPrioHighRdy


ldrb r6,[r5]


strb r6,[r4]


; 3、Get current task TCB address:r5=OSTCBCur


ldr r4,=OSTCBCur; r4 = &OSTCBCur


ldr r5,[r4]



;4、OSTCBCur->OSTCBStkPtr = SP;


str sp,[r5]; store sp in preempted tasks's TCB



bl OSTaskSwHook; call Task Switch Hook



; 5、Get highest priority task TCB address:r6=OSTCBHighRdy


ldr r6,=OSTCBHighRdy


ldr r6,[r6]


;6、SP = OSTCBHighRdy ->OSTCBStkPtr;


ldr sp,[r6]; get new task's stack pointer


; 7、OSTCBCur = OSTCBHighRdy


str r6,[r4]; set new current task TCB address


;8、根据任务栈结构,分别出栈,恢复新任务的现场


ldmfd sp!,{r4}; pop new task's spsr


msr SPSR_cxsf,r4


ldmfd sp!,{r4}; pop new task's psr


msr CPSR_cxsf,r4


ldmfd sp!,{r0-r12,lr,pc}; pop new task's r0-r12,lr & pc

关键字:ucOS-II  ARM920T 引用地址:ucOS-II基于ARM920T的OSCtxSw实现分析

上一篇:畅学多功能ARM7实验箱LED流水灯资源详解
下一篇:浅谈ARM处理器基础知识

推荐阅读最新更新时间:2024-11-17 12:47

ARM920T的SMC接口研究与PC/104总线仿真
引 言 PC/104 是一种专门为嵌入式应用而定义的工业控制总线规范.以IBM PC/AT总线规范为基础的个人计算机及其外围设备在应用上取得了巨大的成就,IEEE一996称之为ISA(工业标准架构:Industry Standard Architecture)总线.PC/104是ISA标准的延伸,定义在IEEE-P996.1中,称为兼容PC嵌入式模块标准.PC/104实质上是一种紧凑型的ISA,其信号定义和Pc/AT基本一致,但电气和机械规范却完全不同,是一种优化、小型、堆叠式结构的嵌入式总线系统.PC/104总线来自于实践发展的需要,同时得益于PC技术的迅速发展,由于其开发环境友好、兼容芯片丰富、标准支持广泛等优势,受到
[单片机]
ucos-ii示例1:新建任务
环境: 主机:WIN8 开发环境:MDK4.72 ucgui版本:3.90 ucos版本:ucos-ii mcu: stm32f103VE 说明: 本示例新建两个任务,并运行。 注意: 1.不同任务的任务优先级必须不一样,否则只运行首先定义的任务 2.从系统时钟设置必须在内核启动后设置,否则会导致OSIntNesting一直为1,从而OS_TaskStat函数因为OSTimeDly函数一直返回0陷入死循环 //系统时钟设置,1ms嘀嗒一次 if (SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC)) { while (1); }
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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