我最近在閱讀有關微控制器(特別是AVR)中的實時操作系統的內容,我正在嘗試爲(AVR)編寫一個簡單的操作系統。我的問題是關於上下文切換...第一個任務的代碼在RTOS中切換
所以,taskA執行並被ISR中斷,它決定另一個任務(即任務B)現在應該運行,然後上下文(寄存器文件,堆棧指針,狀態寄存器)的任務B被加載,並且在退出ISR時,因爲「堆棧指針」被設置在正確的位置(正好在taskB被ISR中斷時保存在堆棧中的任務B的程序計數器的上方),代碼將執行taskB。這是我閱讀互聯網迄今爲止所瞭解的內容。
我的問題是:一切如何開始?如果這是第一次taskA被中斷,那麼爲taskB加載了什麼?在堆棧中沒有任務B的程序計數器,因此沒有堆棧指針要加載。如何編碼?
它由bootloader作爲任何其他操作系統啓動。 – user0042
也許不清楚這個問題,但我正在嘗試編寫自己的RTOS ...並且我不知道如何編寫該部分:) –
爲什麼要投票? –