Tag: semihosting

  • ARM Semihosting 簡介與範例

    前言 – What is semihosting? Semihosting 是 ARM 中的一個機制,使得 ARM target 可以藉由運行 debugger 的 host computer 的 Input/Output 裝置來進行溝通。 Semihost 的實作是透過使用定義好的軟體中斷 (SVCs),使程式在執行過程中產生中斷。一旦目標系統上的程式呼叫到對應的指令 (semihosting call),便產生軟體中斷,接著 Debug Agent 就會負責處理此中斷,進行與主機的溝通。[1] Semihosting Interface Semihosting 透過 SVC 指令來調用相關的命令, 以下為三種不同的使用方式: SVC 0x123456 In ARM state for all architectures. SVC 0xAB In ARM state and Thumb state, excluding ARMv6-M and ARMv7-M. This behavior…