使用作業系統的岔斷處理程式,來將資料傳遞至 CPU。
通常,透過將沒有參數的靜態函數位址傳遞至作業系統作業,即可新增該函數,例如 InstallIntHdlr(作業系統相依)。
靜態函數可以是靜態內所定義的特殊單態物件或函數。此作業必須使用編譯器專屬的公用程式來取得登錄。最終,它必須返回並執行來自岔斷指令的返回。
關於這項作業
您可以使用下列方式,來將資料從岔斷處理程式傳遞至 CPU(假設岔斷處理程式需要):
- 產生事件(使用 GEN() 巨集),然後會通過作業系統移到回應物件(位於不同執行緒中)。
- 使用具有讀取/寫入切換鎖定的會合物件。岔斷處理程式會檢查鎖定是否處於寫入狀態,然後更新資料並將鎖定置於讀取狀態。讀取器(位於另一個執行緒中)會定期檢查鎖定,且僅當其處於讀取狀態時才會讀取。如果它處於該狀態中,則讀取器會讀取資料,並將鎖定更新為寫入狀態。此更新可輕鬆地延伸為佇列結構。
- 在 IBM® Rational® Rhapsody® 外部手動寫入岔斷處理程式,並將其傳送到目標執行緒的作業系統訊息佇列。通常,如果作業系統不直接支援岔斷處理程式,則您可將目前處理程式儲存到函數中,並將函數的位址寫入岔斷向量表中適當的位置上。當岔斷變為關,新函數會取代較舊岔斷處理程式(表示完成時只會返回),或鏈結到其上(呼叫原始項)。在任何事件中,當岔斷處理程式已淘汰時,您可將向量表中的向量取代為原始位址。