theNestruo
11/03/2005, 03:20
Bueno, como acabo de empezar a compilar y me ha costado un poquito hacerlo, aquí os dejo un pequeño tutorial de cómo comenzar a compilar con DevKitARM y el SDK oficial. Incluyo una herramienta ("Make.bat - teh meik suppliar") que he hecho para facilitar(me) el trabajo.
Descargas necesarias:
- Desde la página devkit.tk (http://www.devkit.tk) tenemos acceso, en la sección de descargas, a DevKitARM (http://sourceforge.net/projects/devkitpro) (en el momento de escribir este tutorial, la release 11) y a GamePark SDK for GCC (http://homepage.ntlworld.com/wintermute2002/gamepark_sdk.zip).
- Desde la sección developers (http://www.gp32eu.com/dev.php) de GP32 EU (http://www.gp32eu.com/), descargamos GeePee32 0.40 (http://www.cgos.net/phpmyvisites/sessions/sessions.php?folder=dev&file=geepee32_windx040.zip).
Instalación:
- Instalamos DevKitARM en la carpeta C:\DevKitARM.
- Descomprimimos el SDK de GamePark para GCC en la carpeta C:\DevKitARM\arm-elf. Se creará un archivo gpstart.c en esa carpeta y las carpetas include y lib se completarán con los archivos adecuados del SDK.
- Instalamos el emulador GeePee32 en la carpeta C:\DevKitARM\Emulator. Lo configuramos adecuadamente (el firmware, los controles, etc.).
- Añadimos el compilador a la ruta de acceso. Esto se hace accediendo a las propiedades del sistema (botón derecho en Mi PC o icono Sistema en el Panel de Control), pestaña "Avanzado", botón "Variables de entorno...", doble click en la variable "Path", en la zona de "variables del sistema". Añadimos al final un punto y coma y la ruta "C:\DevKitARM\bin" (sin las comillas).
- Descomprimimos el archivo Make.bat (el archivo adjunto a este mensaje) en la carpeta C:\DevKitARM\bin.
Cómo compilar:
Ya es posible compilar, desde el símbolo del sistema, cualquier aplicación que hagamos con sólo teclear make. Más concretamente:
make: Compila el código, enlaza, construye y ejecuta en el emulador.
make clean: borra los archivos intermedios (*.o, *.elf, *.gxb)
make compile: únicamente compila y enlaza; resulta en el archivo output.elf
make build: únicamente construye el archivo output.fxe a partir del output.elf
make run: únicamente ejecuta el archivo output.fxe
Es conveniente configurar la ventana del símbolo del sistema adecuadamente para poder revisar los errores que se puedan producir. Menú "propiedades", pestaña "diseño", "tamaño del búfer de pantalla" 80x500 y "tamaño de la ventana" 80x50 son valores bastante cómodos.
Qué compilar:
Si no sabemos cómo empezar, podemos descargar GP32 SDK all-in-one version (http://www.cgos.net/phpmyvisites/sessions/sessions.php?folder=dev&file=work_en.zip) de la sección developers (http://www.gp32eu.com/dev.php) de GP32 EU (http://www.gp32eu.com/). La carpeta "examples" contiene múltiples ejemplos, dentro de las carpetas "common". Hay que modificar los #includes para que usen las cabeceras del sistema ( <.h> ) en vez de las locales ( ".h" ).
Lo nuevo que se aprende en cada ejemplo está descrito en el archivo "readme-e.txt".
Notas acerca del archivo make.bat:
Utiliza las rutas descritas en este mensaje. Si se han instalado en diferentes carpetas, será necesario modificarlo.
Utiliza los parámetros de compilación -Wall (todos los warnings habituales), -O3 (máxima optimización) y -march=armv4t (creo que para indicar la arquitectura para la que compilamos). Puede ser necesario en determinados casos modificar estos parámetros y/o añadir otros.
Enlaza con las bibliotecas c, g, gpfont, gpg_ex01, gpgraphic, gpmem, gpos, gpsound, gpstdio, gpstdlib, iberty, m y nosys. Puede ser necesario en determinados casos añadir otras.
El nombre original del archivo era "meik.bat" para evitar conflictos con "make.exe", pero dado que en mi ordenador no tengo configurado ningún make.exe en la ruta de acceso y que escribo casi automáticamente el "make", pues lo renombré a "make.bat". Si hay conflictos, cambiar el nombre ("makeeasy.bat", "meik.bat", etc...) y solucionado.
Ya no teneis excusa para empezar a programar para la GP32... ¿a qué estais esperando?
Descargas necesarias:
- Desde la página devkit.tk (http://www.devkit.tk) tenemos acceso, en la sección de descargas, a DevKitARM (http://sourceforge.net/projects/devkitpro) (en el momento de escribir este tutorial, la release 11) y a GamePark SDK for GCC (http://homepage.ntlworld.com/wintermute2002/gamepark_sdk.zip).
- Desde la sección developers (http://www.gp32eu.com/dev.php) de GP32 EU (http://www.gp32eu.com/), descargamos GeePee32 0.40 (http://www.cgos.net/phpmyvisites/sessions/sessions.php?folder=dev&file=geepee32_windx040.zip).
Instalación:
- Instalamos DevKitARM en la carpeta C:\DevKitARM.
- Descomprimimos el SDK de GamePark para GCC en la carpeta C:\DevKitARM\arm-elf. Se creará un archivo gpstart.c en esa carpeta y las carpetas include y lib se completarán con los archivos adecuados del SDK.
- Instalamos el emulador GeePee32 en la carpeta C:\DevKitARM\Emulator. Lo configuramos adecuadamente (el firmware, los controles, etc.).
- Añadimos el compilador a la ruta de acceso. Esto se hace accediendo a las propiedades del sistema (botón derecho en Mi PC o icono Sistema en el Panel de Control), pestaña "Avanzado", botón "Variables de entorno...", doble click en la variable "Path", en la zona de "variables del sistema". Añadimos al final un punto y coma y la ruta "C:\DevKitARM\bin" (sin las comillas).
- Descomprimimos el archivo Make.bat (el archivo adjunto a este mensaje) en la carpeta C:\DevKitARM\bin.
Cómo compilar:
Ya es posible compilar, desde el símbolo del sistema, cualquier aplicación que hagamos con sólo teclear make. Más concretamente:
make: Compila el código, enlaza, construye y ejecuta en el emulador.
make clean: borra los archivos intermedios (*.o, *.elf, *.gxb)
make compile: únicamente compila y enlaza; resulta en el archivo output.elf
make build: únicamente construye el archivo output.fxe a partir del output.elf
make run: únicamente ejecuta el archivo output.fxe
Es conveniente configurar la ventana del símbolo del sistema adecuadamente para poder revisar los errores que se puedan producir. Menú "propiedades", pestaña "diseño", "tamaño del búfer de pantalla" 80x500 y "tamaño de la ventana" 80x50 son valores bastante cómodos.
Qué compilar:
Si no sabemos cómo empezar, podemos descargar GP32 SDK all-in-one version (http://www.cgos.net/phpmyvisites/sessions/sessions.php?folder=dev&file=work_en.zip) de la sección developers (http://www.gp32eu.com/dev.php) de GP32 EU (http://www.gp32eu.com/). La carpeta "examples" contiene múltiples ejemplos, dentro de las carpetas "common". Hay que modificar los #includes para que usen las cabeceras del sistema ( <.h> ) en vez de las locales ( ".h" ).
Lo nuevo que se aprende en cada ejemplo está descrito en el archivo "readme-e.txt".
Notas acerca del archivo make.bat:
Utiliza las rutas descritas en este mensaje. Si se han instalado en diferentes carpetas, será necesario modificarlo.
Utiliza los parámetros de compilación -Wall (todos los warnings habituales), -O3 (máxima optimización) y -march=armv4t (creo que para indicar la arquitectura para la que compilamos). Puede ser necesario en determinados casos modificar estos parámetros y/o añadir otros.
Enlaza con las bibliotecas c, g, gpfont, gpg_ex01, gpgraphic, gpmem, gpos, gpsound, gpstdio, gpstdlib, iberty, m y nosys. Puede ser necesario en determinados casos añadir otras.
El nombre original del archivo era "meik.bat" para evitar conflictos con "make.exe", pero dado que en mi ordenador no tengo configurado ningún make.exe en la ruta de acceso y que escribo casi automáticamente el "make", pues lo renombré a "make.bat". Si hay conflictos, cambiar el nombre ("makeeasy.bat", "meik.bat", etc...) y solucionado.
Ya no teneis excusa para empezar a programar para la GP32... ¿a qué estais esperando?