0516
来源:互联网 发布:javascript # 编辑:程序博客网 时间:2024/06/07 22:44
OSStartHighRdy()
- µC/OS-II 的移植需要用户改写OS_CPU_A.ASM中的四个函数:
- OSStartHighRdy()
- OSCtxSw()
- OSIntCtxSw()
- OSTickISR()
- 为了启动任务,OSStartHighRdy()从任务控制块(OS_TCB)[程序清单L9.3(1)]中找到指向堆栈的指针,然后运行POP DS [程序清单L9.3(2)], POP ES [程序清单L9.3(3)], POPA [程序清单L9.3(4)], 和 IRET [程序清单L9.3(5)]指令。此处笔者将任务堆栈指针保存在任务控制块的开头,这样使得堆栈指针的存取在汇编语言中更容易操作。
- 当执行了IRET指令后,CPU会从(SS:SP)指向的堆栈中恢复各个寄存器的值并执行中断前的指令。SS:SP+4指向传递给任务的参数pdata。
- 程序清单L 9.3 OSStartHighRdy().
- _OSStartHighRdy PROC FAR
- MOV AX, SEG _OSTCBHighRdy ; 载入 DS
- MOV DS, AX ;
- LES BX, DWORD PTR DS:_OSTCBHighRdy ; SS:SP = OSTCBHighRdy->OSTCBStkPtr (1)
- MOV SS, ES:[BX+2] ;
- MOV SP, ES:[BX+0] ;
- ;
- POP DS ; 恢复任务环境 (2)
- POP ES ; (3)
- POPA ; (4)
- ;
- IRET ; 运行任务 (5)
- _OSStartHighRdy ENDP
阅读全文
0 0
- 0516
- 0516
- aix importvg 0516-022 0516-780
- extendvg报0516-322
- Becky!使用集要(0516版)
- chfs扩文件系统时0516-404错误
- AIX5.3扩容文件系统时报0516-404
- 通用数据库开发组件(一)--0516
- Becky!经典使用问题集(0516版)
- AIX 恢复文件系统后产生的问题0516-013
- aix下lv扩容遇0516-404错误
- AIX 0516-404问题处理
- 基于visual Studio2013解决C语言竞赛题之0516人来人往
- 0516-787 extendlv: Maximum allocation for logical volume
- 在增大文件系统时报错:0516-787 extendlv: Maximum allocation for logical volume
- 0516-787 extendlv: Maximum allocation for logical volume oralv01 is 3000.
- AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume jdelv02 is 512
- A*寻路(一) 顽皮猫详解A*算法的工作原理
- 这个微博特别搞笑
- the enum hack 实践——通过enum控制控制数组长度
- 昨天5.15
- codeforces——510A——Fox And Snake
- 0516
- Item48对共享可变的数据同步访问
- 制作Linux内核开机Logo
- Linux Shell 计算变量长度的不同方法及不同方法的耗时对比
- websocket网络聊天
- 归并排序
- django搭建个人博客10,文章详细3-评论
- IDEA下maven项目无法提示和使用EL表达式的解决办法
- [一起学Hive]—Hive中的数据库(Database)和表(Table)