Domanda

vedo istruzione "printf" in codici di esempio del linguaggio C per microcontrollori in particolare nel 8051. Dal momento che microcontrollori non è fisso visualizzazione di output che cosa è l'uso delle istruzioni "printf"?

È stato utile?

Soluzione

Più probabile che no, in modo da poter collegare una console di debug, sia attraverso una porta RS232, o come output virtuale da un emulatore in-circuit.

Altri suggerimenti

printf è definito allo standard output non un "esposizione uscita", stdout può essere qualsiasi dispositivo flusso. Generalmente in un sistema senza display il risultato sarà di un'interfaccia seriale (UART), in modo che un emulatore di terminale o terminale (HyperTerminal o TeraTerm per esempio) possono essere utilizzati come dispositivo di visualizzazione.

Alcuni ambienti di sviluppo implementare "semi-hosting", dove stdio, stdin e stderr, e anche in alcuni casi, un file system sono forniti dal conduttore di sviluppo attraverso l'interfaccia del debugger (JTAG ICE, SWD ecc).

In generale libreria del compilatore vi fornirà ganci o stub in modo che è possibile implementare i driver per i dispositivi flusso alternativo di I / O, così per esempio si potrebbe implementare uno in modo che l'uscita printf volontà di un display LCD se il dispositivo ha uno. Questo si chiama "retargetting".

E 'possibile interfacciare il microcontrollore alla porta seriale del PC e monitorare i dati

  

printf

utilizzando HyperTerminal. Inoltre è possibile utilizzare per scopi diagnostici

Alcuni strumenti di sviluppo consente di utilizzare printf data l'implementazione di putchar o Putch . In tali strumenti, dal momento che si dispone di questa funzione di invio caratteri per qualche dispositivo, printf mostrerà messaggi su quel dispositivo.

Non vi resta che fare l'inizializzazione dispositivo corretto, implementare putchar, Putch o tale (controllare il vostro compilatore / lib docs) e voilà! Il vostro printf si comporterà il modo in cui ci si aspetta.

PS: alcuni compilatori / librerie non implementare tutti gli identificatori di formato printf. Anche in questo caso, controllare i documenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top