1. 程式人生 > >ucos系統任務切換過程

ucos系統任務切換過程

1.中斷產生
2.CPU對當前的工作狀態進行儲存,做壓棧操作,注意這裡,不是每次壓棧都是將所有暫存器內容壓棧,而是中斷內容越複雜,壓棧內容
  越多!
  其中入棧時先SP+1再將內容壓入當前SP所指示的堆疊單元中,出棧則先將SP所指示的內部ram單元中內容送入直接地址定址的單元中,
  再將SP減1.
  堆疊用於響應中斷或呼叫子程式時保護斷點地址,也可通過棧操作指令(push和pop保護和恢復現場)
  問題1:堆疊是什麼?在哪裡定義的?
  回答1:堆疊在51微控制器中,就是一段RAM空間,在STARTUP.A51中定義,這也是為什麼在新建51的工程時必須要包含STARTUP.A51
         ?STACK          SEGMENT   IDATA


                         RSEG    ?STACK
                         DS      1 
         
         相當於定義了一個數組,地址由系統自動分配
3.中斷執行完後進行出棧操作
4.返回RETI