关于uc/os-ii在c51上的移植总结
难以避免会出现理解错误 欢迎指正。
现在我手上的参考书是很薄很薄的用x86作为实验的参考书,提供了不太完整的c51移植代码,移植主要需要修改的底层抽象层文件大致是一下四个:
- OS_CPU_A.ASM(最重要的一个文件)
- OS_CPU_C.H
- OS_CPU_C.C
- OS_CFG.H(该文件用于系统剪裁等)
uc/os-ii底层需要实现的大致接口如下:
OS_CPU_A.ASM
- OSStartHighRdy()
- OSCtxSw()
- OSIntCtxSw()
- OSTickISR()
OS_CPU_C.C
- OSTaskStkInit()
- OSTaskCreateHook()
- OSTaskDelHook()
- OSTaskSwHook()
- OSTaskStatHook()
- OSTimeTickHook()
这里的六个函数中也就只有OSTaskStkInit需要改写,另外的五个函数只要声明即可。
移植会遇到许多问题
将一个操作系统移植到不同的硬件环境中,需要修改操作系统硬件抽象层来适应不同的实际环境,这里不仅是与硬件相同,与编译器也息息相关。在不同的硬件环境以及不同的编译器面前可能都会采用不同的策略来实现或者提高效率。这里我用的是C51 STC89C51 以及K