Semihosting
En ARM-mekanism där firmware lånar värddatorns tangentbord, skärm och filsystem via felsökningsproben, så att printf fungerar på ett chip utan skärm.
Programmet lägger en operationskod och en pekare i två register och kör en särskild brytpunktsinstruktion (BKPT 0xAB på Cortex-M). Debuggern stoppar kärnan, läser vad som efterfrågas — skriv den här strängen, öppna den här filen — utför det på PC:n, lägger svaret i ett register och släpper processorn igen. Ingen UART, inga extra pinnar.
Det är också extremt långsamt, eftersom varje anrop stoppar processorn, och det har en berömd fälla: utan ansluten debugger finns ingen som fångar brytpunkten, och den blir en HardFault. Den som glömmer att bygga om utan semihosting får en produkt som bara fungerar på skrivbordet. ITM över SWO och Seggers RTT gör samma jobb utan att stoppa kärnan.