Autor Tema: [proy] CocusCore: Emulador de PIC16 para PIC18 (C18)  (Leído 3630 veces)

0 Usuarios y 1 Visitante están viendo este tema.

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
[proy] CocusCore: Emulador de PIC16 para PIC18 (C18)
« en: Enero 21, 2011, 10:37:30 pm »
Buenas, les traigo mi ultimo proyecto. Esta vez esta mas organizado, y esta en un SVN!.
Se trata de un "core" emulador que ejecuta opcodes de Assembler PIC16. Por ahora no esta completo, porque no estan implementados todos los opcodes, pero ya los voy a terminar.
La idea, aunque suene estupida, es usar un PIC18F4550 como un procesador (en algun futuro mezclar el Core con algun RTOS). Usando una SD, una memoria I2C/SPI o una FLASH, se puede cargar un .hex comun y corriente, compilado tanto sea por el MPASM o por cualquier otro como el CCS, mikroBasic, etc. Yo tengo pensado implementar 2 o 3 interrupciones, y algunas reutilizadas para otros funciones (I/O con el "core", lectura de archivos en SD, etc). La interrupcion que seguro va a estar es la del RXIF y TXIF para poder enviar bytes directamente por el USART del PIC18 (emulador). Tambien se puede leer la memoria ram del dispositivo emulado y con eso hacer una interfaz "transparente" con los PORTs.

Para dar mas detalles tecnicos, cada dispositivo es una variable. Dicha variable esta definida por una estructura que determina la cantidad de RAM (Dev1k, Dev2k, etc). Al tener administrado los dispositivos asi, uno puede hacer una emulacion de mas de un dispositivo a la vez (arreglatelas vos con los I/O). Y para darle el toque final, con un RTOS se pueden dividir tiempos de forma no uniforme para dar prioridades a cada dispositivos emulado.

Les dejo la URL del GoogleCode donde pueden encontrar alguna info (en mi ingles asqueroso :P) y los codigos fuentes. Necesitas un cliente SVN para bajarlos, para Windows usa el TortoiseSVN, para linux usen el GIT y para MAC no tengo idea.

http://code.google.com/p/cocuscore

Saludos!
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion