¿Cómo puedo usar avrsim para simular Arduino?

7

Descubrí que el emulador avr de código abierto variaba ( enlace ). Puesto que hay una emulación de uart implementada, puede simular Arduino.

Hay un ejemplo de board_simduino, pero tengo algunos problemas con él. Conecté leds virtuales al puerto B (pines 8-13) - y funcionan.

Pero la conexión serial se ve rota. Puedo cargar el boceto (agregué ,link=/dev/ttyUSB0 al comando socat para eso), pero después de eso la comunicación deja de funcionar. Por ejemplo, puedo subir el boceto del "píxel físico" pero no puedo encender los leds. Intenté conectarme usando un monitor en serie en el IDE y desde pySerial. Parece que los elogios están siendo ignorados.

También en el boceto "intermitente" I en el bucle principal:

void loop()
{
 digitalWrite(ledPin, HIGH);   // set the LED on
 delay(1000);                  // wait for a second
 digitalWrite(ledPin, LOW);    // set the LED off
 delay(1000);                  // wait for a second
}"

Tengo que eliminar el comando delay(1000); porque cuelgan el emulador.

Apreciaré cualquier ayuda. Lo más importante para mí por ahora es el arreglo de uart (ejecute el boceto del "píxel físico").

    
pregunta Maciek Sawicki

1 respuesta

2

Aunque no he usado un simulador de hardware por un tiempo, creo que lo que sucede es algo como esto.

Se simula cada ciclo de reloj del AVR, lo que lleva múltiples ciclos de reloj en la PC host. Por lo tanto, el tiempo en el AVR simulado se ejecuta más lento que el tiempo real. Esto podría explicar por qué el bucle de retardo parece colgar el simulador AVR.

Un caso similar podría ser el caso con el puerto serie.

Personalmente, no estoy seguro de que la simulación de los procesadores modernos con memoria flash sea productiva, ya que es más rápido cargar el programa en el sistema y "dejarlo funcionar" para ver qué sucede.

    
respondido por el geo_melb

Lea otras preguntas en las etiquetas