第十章 μC/OS-Ⅱ在80x86上的移植
10.1 概述
在应用程序主函数中,除了OSInit()之外,还要使用:
PC_VectSet(uCOS, OSCtxSw); //安装μC/OS-Ⅱ中断向量
在起始任务的代码中,使用:
PC_VectSet(0x80, OSTickISR); //安装μC/OS-Ⅱ系统时钟中断向量
PC_SetTickRate(OS_TICKS_PER_SEC); //设置μC/OS-Ⅱ系统时钟周期
10.2 任务切换
10.2.1 任务切换函数OSCtxSw()
任务切换函数OSCtxSw()的工作是保存被中止运行任务的断点和恢复待运行任务的断点并启动它。(汇编语言)
10.2.2 任务切换宏OS_TASK_SW()
任务切换宏OS_TASK_SW()的全部工作是想办法主动引发一次中断,然后在中断服务程序中完成任务切换的其他工作。
在任务调度函数OSSched()中调用一次任务切换宏OS_TASK_SW()就执行了一次指令:INT 0x80,即引发了一个内部中断,中断向量码为0x80。
10.2.3 中断级任务切换函数OSIntCtxSw()
中断级任务切换函数OSIntCtxSw()的工作只是恢复待运行任务的断点。
10.3 系统时钟
<