4076|1

10

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

UCOSII中任务堆栈如何具体的实现保存CPU寄存器的值? [复制链接]

 小弟刚刚学习UCOS-II,问题可能比较low,请各位大神不吝赐教,感激不尽。


如题所说,UCOS中穿件任务时都会调用到一个函数OSTaskStkInit(),该函数位于os_cpu_c.c
该函数将任务创建时 开辟的任务堆栈的栈顶指针传递进来,以后任务堆栈就会保存在这块内存对吧,
问1,我想,说的是任务切换时 都是使用一个“陷阱“或者软件中断触发的,这样CPU就会进行一次入栈,保存当前任务堆栈,然后将上次被中断的任务堆栈拷贝到CPU寄存器,然后执行上次被中断的任务,这个理解对吗?
问2,每次产生软件中断或者陷阱的时候,CPU执行入栈操作,保存当前寄存器的状态,它是如何将这些值保存到任务堆栈中的?当cpu切换任务时是怎么将任务堆栈保存的寄存器值拷贝到cpu寄存器中的?总之,就是任务堆栈是怎么和CPU寄存器之间建立数据交互的,麻烦详细一点。
问3,
#define  CPU_CRITICAL_ENTER()  do { CPU_INT_DIS(); } while (0)     
#define  CPU_CRITICAL_EXIT()   do { CPU_INT_EN();  } while (0)


#define  CPU_INT_DIS()         do { cpu_sr = CPU_SR_Save(); } while (0)
#define  CPU_INT_EN()          do { CPU_SR_Restore(cpu_sr); } while (0)
//以下内容来源ucosII-F28335的OS_CPU_A.ASM
    .asmfunc
_OS_CPU_SR_Save:
    PUSH    ST1 //什么意思?
    DINT           //关中断?
    POP    @AL//什么意思?
    AND     AL, #1//什么意思?
    LRETR            //什么意思?
    .endasmfunc


    .asmfunc
_OS_CPU_SR_Restore:
    PUSH    ST1     //什么意思?
    POP     AR0    //什么意思?
    AND     AR0, #0xFFFE  //什么意思?
    OR      AL, AR0   //什么意思?
    PUSH    AL   //什么意思?
    POP     ST1   //什么意思?
    LRETR      //什么意思?
    .endasmfunc
               
                能否帮忙纤细解释一下上述汇编语言,最好结合上面问题1,2回答。
               
                小弟对于上述问题非常的不解,希望得到各位大神的指点感激不尽。

最新回复

Ⅲ是μC/OS-Ⅱ的优化版 嵌入式实时操作系统μC/OS-Ⅲ组件以其高可靠性、优越的性能、清晰的源代码和优秀的文档而被认可,μC/OS软件符合严格地安全关键行业要求的标准,是用于功能安全、关键系统设计的理想选择!有什么技术问题可关注麦克泰技术更多干货   详情 回复 发表于 2019-7-24 16:50
点赞 关注(1)
 

回复
举报

227

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

Ⅲ是μC/OS-Ⅱ的优化版

嵌入式实时操作系统μC/OS-Ⅲ组件以其高可靠性、优越的性能、清晰的源代码和优秀的文档而被认可,μC/OS软件符合严格地安全关键行业要求的标准,是用于功能安全、关键系统设计的理想选择!有什么技术问题可关注麦克泰技术更多干货

 
个人签名

欢迎关注“麦克泰技术”

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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