miércoles, 15 de agosto de 2012

HP-GCC para Windows hpgcc2.0 hp50g

Este video muestra como compilar codigo en lenguaje C de una manera rapida con
HP-GCC para Windows .



En esta oportunidad seguiremos conociendo el entorno de programación, y crearemos el clasico "Hola mundo" para nuestra calculadora hecho en lenguaje C, Empezemos entonces! 
ARM Toolbox
Esta sera otra herramienta crucial, quizas ya se hayan preguntado ¿como ejecutar un programa en C en la calculadora?, bueno la respuesta es esta libreria para nuestra calculadora el cual convertira nuestro pograma en un ejecutable nativo de la calculadora y lo ejecutaremos desde la pila como cualquier otro programa.
Encontrarla no sera ningun problema ya que afortunadamente ya la hemos descargado junto con el HPGCC. Abrimos alguna ventana y nos dirigiremos al siguiente directorio: C:\cygwin\home\Administrador\hpgcc\2.0SP2\sources\ARMToolbox, recuerden Admistrador sera el nombre la sesion de su equipo y solo existira este directorio si instalamos todo por defecto (Next Next como indicamos antes) de otro modo tendremos que buscar en el directorio donde decimos instalar el Cygwin. Bueno siguiendo, dentro de este directorio encontraremos el archivo Setup.bin, este archivo debemos copiarlo en la 50g (por la SD o USB), y haremos lo siguiente:
Pondremos un 2 en la pila

Luego podremos en la pila SETUP.BIN usando cambio derecho(Flecha naranja) y F1(o la tecla donde este el SETUP), y tendremos lo siguiente:

Presionamos EVAL y luego hacemos Reset en la calculadora con ON+F3.
Ahora vereficaremos que la libreria haya sido instalada con exito, presionamos Cambio derecho y 2, alli debe estar nuestra nueva libreria ARMTo, con ella podremos hacer la conversion que le habia dicho antes.
Hola Mundo
Para empezar necesitaremos 2 cosas, una terminal XWIN y nuestro editor HPGCC (la direccion esta en el primer post, si gustan haganse un acceso directo del pn.exe en el escritorio), en el HPGCC escribiremos el codigo de nuestro progama, que es el siguiente
#include <hpgcc49.h>

int main()
{
clear_screen();
printf("Hola mundo\n");
WAIT_CANCEL;
return(0);
}
La primera linea incluye a nuestro programa la libreria estandar, la hpgcc49.h, esta sera nuestra tradicional stdio.h que usabamos en el C normalmente. seguidamente el cuerpo de nuestro programa
clear_screen(); limpiara la pantalla; luego printf que no necesita presentacion, escribira la cadena en la pantalla, luego WAIT_CANCEL espera la tecla CANCEL antes de continuar la ejecución, luego return(0) retorna un 0 para que el compilador sepa que todo fue bien(recuerden que declaramos int main() en la tercera linea).
ahora haremos click en el boton guardar creamos una nueva carpeta en la dirección donde esta el hpgcc con el nombre "prueba", guardaremos nuestro codigo con el nombre "hola.c", muy importnte colocar la extensión .c, y bueno hasta el momento tendremos algo como esto
Ahora necesitaremos crear un Makefile, y que es un Makefile?¿ aun no estoy muy seguro, mientras vaya aprendiendo ire posteando y si alguien domina bien el C y sabe lo que es exactamente por favor compartalo aqui. Por el momento reseñaremos algunas cosas sobre el, El Makefile es un archivo de texto plano el cual contedra las instrucciones que necesita el compilador para crear nuestro programa, dichas instruciones se ejecutaran al llamar el comado make para hacer algo en nuestra terminal. creemos el archivo, hagamos click en Nuevo, tendremos un nuevo editor de textos y pegaremos el siguiente codigo:

INCLUDE_PATH = $(HPGCC)/include
LIBS_PATH = $(HPGCC)/lib
HPAPINE = $(HPAPINEROOT)
export CUR_DIR = $(shell pwd)
export CC = arm-elf-gcc
export C_FLAGS = -mtune=arm920t -mcpu=arm920t \
 -mlittle-endian -fomit-frame-pointer -msoft-float -Wall \
 -Os -I$(INCLUDE_PATH) -L$(LIBS_PATH) -mthumb-interwork -mthumb 
export LD = arm-elf-ld
export LD_FLAGS = -L$(LIBS_PATH) -T VCld.script $(LIBS_PATH)/crt0.o 
export LIBS = -lhpg -lhplib -lgcc
export AR = arm-elf-ar
export RANLIB = arm-elf-ranlib
export ELF2HP = elf2hp

SRC = $(shell echo *.c)

OBJ = $(SRC:%.c=%.o)

EXE = $(SRC:%.c=%.exe)

HP = $(SRC:%.c=%.hp)

all: $(HP)

install: all

clean:
 -rm -f *.o
 -rm -f *.hp
 -rm -f *.exe

%.o: %.c
 $(CC) $(C_FLAGS) -c $<

%.exe: %.o
 $(LD) $(LD_FLAGS) $< $(LIBS) -o $@

%.hp: %.exe
 $(ELF2HP) $< $@

%_local: %.c
 gcc -Wall -g -o $@ $< -DHPGCC -I $(HPAPINE)/include/ \
 -DHPAPINE -L $(HPAPINE)/lib/ -lhpapine \
 $(shell pkg-config --libs gdk-2.0 gthread-2.0)

Y lo guardaremos sin extensión en donde guardamos hola.c. Por el momento no se explicara que significa cada cosa (no lo se a ciencia cierta), pero si dire que aqui estan las instrucciones basicas para hacer nuestro proyecto con la libreria default del HPGCC, a medida que vayamos introduciendo mas librerias alteraremos este Makefile por lo tanto este sera nuestro patron!
con esto ya tenemos todo el codigo necesario para nuestro primer programa, ahora vamos a la terminal, en ella escribiremos lo siguiente:
cd hpgcc (trabajaremos en el directorio del hpgcc)
. hpgccenv (copienlo tal cual se ve PUNTO ESPACIO hpgccenv, con ello cargaremos el hpgcc en nuestra terminal, esto debe hacerse en cada en cada terminal que usemos)
cd prueba (Idem pero con el directorio prueba)
make clean (esto removera los ejecutables que pudieran estar en la carpeta de trabajo)
make hola.hp (creara nuestro programa)
la terminal se vera asi al terminar:


ya podemos buscar en el directorio prueba nuestro hola.hp el cual copiaremos a la calculadora, una vez alli lo pondremos en la pila con la tecla de cambio derecho y saldran un monton de garabatos mas o menos asi:

convirtamoslo ahora en un ejecutable con la ayuda de nuestro ARM toolbox, presionamos cambio derecho(CD) y 2, y veremos las librerias disponibles le damos a ARMTo, y buscamos entre las opciones la que ponga S->EXE y presionamos la tecla correspondiente, ahora el monton de garabatos se convertiran en External code y lo tendremos en la pila, lo guardaremos en la misma variable donde estaban los garabatos para ahorrar espacio presionando la tecla VAR, luego cambio izquierdo y la tecla que corresponda a hola.hp, y listo tendremos un ejecutable, si volvemos a presionar sobre hola.hp obtendremos algo mas o menos asi:

Este es nuestro primer programa en C, si le ha parecido mucho trabajo es por que lo ha sido, luego con algunas herramientas que construiremos nos saltaremos algunas partes.
Asi que suerte! posteen sus dudas y sugerencias! Y asi este proyecto continuara con buenos resultados.

1 comentario:

  1. Hola, no consigo instalar el armtoolbox, me podriasayudar porfavor, copio el setup.bin en el directorio home, escribo el 2, pero luego no se llevar el setup.bin al stack 2.

    Un saludo.

    ResponderEliminar

deja tus comentarios, los responderé lo más rápido que pueda....