Come eseguire il file "Cat" in una baud specifica?
-
16-09-2020 - |
Domanda
Sto usando UCSIM per fare un test unitario sui progetti SDCC.
In UCSIM / S51, è possibile simulare il traffico della linea seriale di
s51 -s /dev/tty PROGRAM.ihx
.
o
s51 -S in=testdata.in,out=testdata.out PROGRAM.ihx
.
Nel corso di quest'ultimo modulo, i dati vengono immediatamente inviati al simulatore che provoca molti fotogrammi sono persi.Quindi, invece di dati i dati del test in file semplice, utilizzando il tubo invece:
s51 -S in=<(cat testdata.in),out=testdata.out PROGRAM.ihx
.
Ora, come posso controllare il baud di output dall'utilità del `Cat"?O c'è un'altra utilità che posso usare per produrre bit in una tariffa specifica?
Soluzione
Risposta 1 non è corretto.Nessuno "alimenta" il contenuto del file alla linea seriale.UCSIM legge dal file quando è necessario.La velocità di trasmissione è controllata da SFR di Timer e UART.Quando è simulato il conteggio necessario delle zecche, un byte verrà letto dal file.
Altri suggerimenti
La velocità che si nutre del file in= non è come è impostato la velocità.Il simulatore non ha modo di sapere quando la tua applicazione ha inizializzato la porta seriale ed è pronta a leggere.Probabilmente ti mancano i dati perché il simulatore alimenta la porta seriale simulata prima che il codice di inizializzazione seriale abbia eseguito.
Cosa devi fare è impostare un file FIFO con mkfifo
(consultare la pagina Man), quindi utilizzare come il tuo parametro in=.Quindi alimenta il file FIFO con i dati dopo che l'applicazione simulata è attiva e in esecuzione.