Archive for April, 2008
Pigmeo 0.0.2 ya disponible
Resulta que Pigmeo 0.0.1 tenía varios fallos bastante graves y no me había dado cuenta, así que me veo obligado a publicar esta nueva versión que solo arregla esos fallos y no añade mucho más (aunque sí tiene varias cosas nuevas).
Bugs resueltos:
- La compilación no funcionaba correctamente (se requería Mono.Cecil.dll antes de iniciar la compilación, pero el script copiaba el archivo tras la compilación, por lo que daba un error de compilación)
- Pigmeo Compiler no se podía ejecutar en Windows
- La gestión de excepciones descontroladas (unhandled exceptions) no funcionaba correctamente en Windows cuando se utilizaba la interfaz de WinForms. Ahora funciona perfectamente en Windows y en Linux, además lo hace de manera más limpia
Nuevas características:
- Usando Pigmeo Compiler podemos mostrar información sobre un ejecutable de .NET (archivos .exe) antes de compilarlo, tanto desde la consola como desde la interfaz de WinForms
- Cuando salta una excepción desconocida mientras estamos ejecutando la interfaz WinForms, se genera un resumen muy detallado del error y el estado de la aplicación antes de que saltase la excepción, y se permite enviar por e-mail a los desarrolladores
- Se cambió completamente la forma de almacenar los textos de los distintos idiomas. Ahora todo puede traducirse a cualquier idioma mucho más fácilmente
- Añadido un programa de ejemplo escrito en C# y en Visual Basic .NET. El código fuente está acompañado por el .exe y el código en lenguaje ensamblador generado por Pigmeo Compiler
Página de la nueva versión: Pigmeo 0.0.2
Obteniendo información del ejecutable
Posted by Urriellu in Pigmeo Compiler on April 13th, 2008
Antes de compilar un archivo .exe para convertirlo a lenguaje ensamblador, podemos obtener información sobre el archivo, tanto desde la consola como desde la interfaz WinForms (pulsando en el botón que tiene un icono de información).
Cuando se soporten más interfaces gráficas será muy simple hacer que desde ellas también se pueda mostrar esta información.
Pigmeo 0.0.1 ya disponible
Es una versión alpha, no contiene suficientes características para ser usada para crear casi ningún programa útil.
Sólo necesitas tener instalada una máquina virtual de .NET (CLR), como Mono o Microsoft .NET, y debería funcionar en cualquier sistema operativo para el cual haya disponible un CLR de .NET. Por el momento se ha comprobado que funciona en Linux y en Windows.
Soporta las siguientes características:
- Arquitectura PIC14
- Modelo PIC16F716
- Acceder a variables estáticas definidas tanto en el propio programa como en librerías externas a las que se hace referencia
- Se soportan más de la mitad de los registros disponibles en el PIC16F716
- Forzar al compilador a que llame a ciertas variables de determinada manera, usando el Custom Attribute [AsmName()]
- Forzar al compilador a que almacene ciertas variables en posiciones determinadas de memoria, usando el Custom Attribute [Location()]
- Asignar valores constantes a variables estáticas de tipo uint8/byte
- Copiar variables estáticas de tipo uint8/byte
- Sumar dos variables de tipo uint8/byte
- Sumar dos variables de tipo uint8/byte con comprobación de desbordamiento
- Restar dos variables de tipo uint8/byte
- Bucles infinitos
- Instrucción goto
- Posibilidad de elegir qué hacer cuando el programa termina:
- Quedarse en un bucle infinito sin hacer nada
- Reiniciar el programa
- Posibilidad de elegir cómo implementar el soporte para excepciones:
- No se permiten excepciones
- Terminar el programa cuando salte cualquier excepción
- Interfaz para la línea de comandos
- Interfaz gráfica WinForms
Toda la información sobre esta versión está disponible en http://en.pigmeo.org/wiki/Pigmeo_0.0.1
Compilando desde WinForms y desde la consola
Posted by Urriellu in Pigmeo Compiler on April 6th, 2008
Compilando desde Linux usando la interfaz de WinForms:
Compilando desde la consola en Linux:
Este último vídeo también incluye algunos ejemplos de los parámetros que se le pueden pasar al compilador, y se ve cómo automáticamente detecta el idioma del sistema (que en la consola se configura mediante variables de entorno).
Compilando código escrito en Visual Basic .NET
Programa de ejemplo escrito en Visual Basic .NET
Código fuente en lenguaje ensamblador generado por Pigmeo Compiler
Y un pantallazo de Pigmeo Compiler compilando este programa desde linux, utilizando la interfaz de WinForms:
Pigmeo Compiler compilando
Posted by Urriellu in Pigmeo Compiler on April 3rd, 2008
Compilando el siguiente programa escrito en C#: ejemplo001.cs
El compilador de C# que más nos guste nos genera el .exe (que hace referencia a PIC16F716.dll) y Pigmeo Compiler lo convierte a lenguaje ensamblador: ejemplo001.asm. Podemos fijarnos en que se compiló para el PIC16F716 (sin especificarlo a la hora de utilizar Pigmeo Compiler), ya que el compilador de pigmeo automáticamente detecta la “librería de dispositivo” que se utilizó cuando el programa en C# fue compilador a .exe y sin intervención del usuario sabe para qué arquitectura y qué rama/dispositivo estamos compilando, en este caso la arquitectura es PIC14 y el dispositivo es PIC16F716.
Y con mpasm, gpasm o cualquier otro programa ensamblador (que sea compatible) para PICs de 8 bits generamos el archivo binario (.hex) que podemos grabar en nuestro microcontrolador.