jueves, 1 de enero de 2015

Code Blocks y 8051. Conseguir un HEX.

Hay una gran variedad de microcontroladores basados en el núcleo de los clásicos 8051. El juego de instrucciones de esta familia ha sido implementada por muchas casas incluso en dispositivos actuales.
El problema que nos tropezamos los desarrolladores libres y modestos es que los compiladores suelen ser muy caros y no nos podemos permitir el lujo de pagarlos hasta tener una empresa que amorticen dichas inversiones.
Por tanto tenemos que recurrir a herramientas de software libre que aunque potentes, no disponen de suficiente soporte y/o documentación y es por ello que los comentarios como éste se hacen importantes a la hora de solucionar problemas.
Todo surge cuando me propongo a realizar una aplicación para un micricontrolador específico basado en el 8051 y recurro a Code Blocks  (IDE para compilar) y el compilador SDCC.
En las pruebas compruebo que el compilador genera el archivo objeto .o pero no genera el .hex que luego "quemo" en el microcontrolador.
Descubro que SDCC en su última versión ha sustituido los .o por .rel, luego el problema está en que los .o son archivos no soportados por SDCC.
No olvidemos descartar la opción debug del proyecto.

Para activar Code Blocks con la nueva extensión he seguido los siguientes pasos:

Primero Setting->Compiler y elegimos el compilador SDCC.


Picamos en la pestaña que queda oculta en la parte derecha de las ventanas (other settings). Podemos dejarla clara si pinchamos en las flechas que quedan a la derecha de la pestaña.


Picamos en las Opciones Avanzadas...

El siguiente paso no estoy seguro si se puede omitir pero lo dejo por si las moscas, es añadir la extensión rl.


Por último y LO MÁS IMPORTANTE....


La extensión por defecto es o cambiamos a rel...

Miramos en el directorio bin del proyecto y... ¡et voila! tenemos el .hex.






3 comentarios:

  1. el formato que me genera es .ihx es me parece para dispositivos intel como lo puedo cambiar para que genere .hex tu post me ayudo a generar el .ihx

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. Si sigues los pasos del post y miras en el directorio /bin/release se generan 5 archivos. Puedes encontrar .ihx pero también .hex al lado. Por la forma de escribir parece que no hablas español. Si quieres podemos seguir la conversación en inglés.

      If you follow the indicated steps in my blog you should get a /bin/release directory. If you look for inside you should find the .hex file near the .ihx file.

      Good luck!

      Eliminar