我最近在阅读有关微控制器(特别是AVR)中的实时操作系统的内容,我正在尝试为(AVR)编写一个简单的操作系统。我的问题是关于上下文切换...第一个任务的代码在RTOS中切换
所以,taskA执行并被ISR中断,它决定另一个任务(即任务B)现在应该运行,然后上下文(寄存器文件,堆栈指针,状态寄存器)的任务B被加载,并且在退出ISR时,因为“堆栈指针”被设置在正确的位置(正好在taskB被ISR中断时保存在堆栈中的任务B的程序计数器的上方),代码将执行taskB。这是我阅读互联网迄今为止所了解的内容。
我的问题是:一切如何开始?如果这是第一次taskA被中断,那么为taskB加载了什么?在堆栈中没有任务B的程序计数器,因此没有堆栈指针要加载。如何编码?
它由bootloader作为任何其他操作系统启动。 – user0042
也许不清楚这个问题,但我正在尝试编写自己的RTOS ...并且我不知道如何编写该部分:) –
为什么要投票? –