simulador microcontroladores hardware emulation microcontroller simulator

hardware - microcontroladores - iniciar un simulador/emulador de microcontrolador



simulador de arduino (6)

Me gustaría crear / iniciar un simulador para la siguiente placa de microcontroladores: http://www.sparkfun.com/commerce/product_info.php?products_id=707#

El firmware está escrito en ensamblaje, así que estoy buscando algunos indicadores sobre cómo uno podría simular las entradas que recibiría el hardware y luego el simulador respondería a las salidas del firmware. (lo que también requeriría ejecutar el firmware en el entorno simulado).

¿Alguna sugerencia sobre cómo comenzar?

Gracias Chris


¿Hay alguna razón particular para hacer un emulador / simulador, frente a solo usar el real?

El tablero es barato; Microchip ahora tiene el depurador RealICE, que es bastante más sensible que el viejo "disco de hockey" ICD2.

MPLAB de Microchip ya tiene un simulador incorporado. No simulará toda la placa por usted, pero manejará la 18F2520. Puede utilizar vectores de prueba de entrada y archivos de salida de registro, lo he hecho antes con un IC de Microchip diferente y era factible pero un poco engorroso. Yo sugeriría que tomes el enfoque de pruebas unitarias y que modularices la forma en que haces las cosas; averigüe las entradas de prueba y las salidas esperadas para una pieza manejable del sistema.



Deberá escribir un simulador PIC y luego emular la funcionalidad IO de los puertos.

Para ser sincero, parece que está diseñado como un kit de desarrollo: no me preocuparía que tu código destruya el dispositivo si te cuidas. A menos que sea un finalista para un paquete empresarial, cuestionaría seriamente el ROI al escribir un sim.


Es muy poco probable que un error en su código pueda dañar los circuitos físicos. Si eso es posible, entonces es un error en el diseño de la placa o debe estar muy claramente documentado.

Si puedo ofrecerle una sugerencia de muchos años de experiencia trabajando con estos dispositivos: no los programe en conjunto. Te volverás loco. Use C o BASIC o algún lenguaje de nivel superior. Microchip produce un compilador de C para la mayoría de sus chips (no sé nada de este) y otras compañías también los producen.

Si insiste en usar un emulador, estoy bastante seguro de que Microchip hace un emulador para casi todos sus microcontroladores (al menos uno de cada línea de productos, que probablemente sería lo suficientemente bueno). Estos emuladores no siempre son baratos, y no estoy seguro de su capacidad para aceptar entradas externas complejas.

Si todavía quieres probar a escribir el tuyo, creo que encontrarás que emular el PIC en sí mismo será bastante sencillo: el formato de todos los códigos de operación está bien documentado, así como la arquitectura de la memoria, etc. Va a emular los otros dispositivos en el tablero y las interconexiones entre ellos que te matarán. Es posible que desee estudiar la codificación de las interconexiones entre los componentes mediante una herramienta VHDL que le permitirá crear simulaciones personalizadas para los diferentes componentes.


Escribir un emulador completo va a ser un verdadero desafío. Intenté escribir un emulador ARM antes, y déjame decirte, no es un proyecto pequeño. Tendrás que emular todo el núcleo de la CPU o encontrar uno que ya esté escrito.

También necesitarás descubrir cómo funciona todo el IO. Puede haber documentos de sparkfun sobre esa placa, pero necesitará escribir un administrador de memoria si usa MMIO, etc.

El concepto de un emulador no está tan lejos de un intérprete, realmente. Necesita interpretar el código de firmware y básicamente seguir las instrucciones.

Recomendaría un buen depurador interactivo en lugar de abordar un emulador. Las posibilidades de destruir el hardware son bajas, pero en realidad, ¿preferiría comprar una nueva placa o pasar 9 meses escribiendo algo que no implementará todo el sistema?

Es probable que el PIC 18F2520 ya tenga un núcleo de emulador escrito para él, pero necesitará profundizar en todas las especificaciones de hardware para ver cómo se mapea todo el IO. Si te sientes satisfecho, sería un buen proyecto, pero consideraría usar un depurador remoto.


Es probable que el PIC 18F2520 ya tenga un núcleo de emulador escrito para él,

Un simulador multiplataforma de fuente abierta para microchip / PIC está disponible bajo el nombre de " gpsim ".