Ver la versión completa : Linux, GCC y GP32
Miki-chan
01/03/2004, 13:40
Buenas.
Ya comenté hace tiempo que iba a empezar a programar para Linux y el caso es que yo no tenía disco duro suficiente para instalar Linux en mi casa así que hablé con mi profe de programación y me ha conseguido un Linux en DVD que incluye el compilador GCC completo y permite leer datos del disco duro (aunque no permite guardar cosas en el disco duro, se pueden guardar en disquetes) y me preguntaba si sería muy complicado programar para GP32 utilizando el GCC bajo Linux y cómo se haría (si se necesita archivos makefile o qué, supongo que para utilizar el SDK tendré que hacer alguna cosa para poder obtener los archivos lib.a y .h -¿copiándolos del minigp32?-).
Por cierto, ya que sale el tema de los makefile, ¿hay algún sitio en el que se explique cómo crearlos y qué deben llevar? Porque las peurbas que he hecho las he hecho con un makefile que conseguí pero me interesaría poder hacer los míos.
Lee esto: http://didaho1.free.fr/cross/lumiere_rouge.txt
You can obtain an environment :
1 by appending "deb http://didaho1.free.fr/cross unstable devel" line to your /etc/apt/sources.list file.
2 then type "apt-get update" to get package names.
3 type "apt-get install task-cross-*TARGET*" to obtain *TARGET* devkit (*TARGET*=gba,gp32,...)
Because devkit have parts incompatible (like low level funcs in libc), you cannot have two devkit
at the same time. With apt, you can easy flip one toolchain to another, so this is no a problem.
Tarballs also exist for other *nix users, but these snapshots are not frequently updated, and no
support is provided :
- http://didaho1.free.fr/cross/dists/unstable/devel/binary-i386/tarball/task-cross-gp32_tarball.tar.gz
- http://didaho1.free.fr/cross/dists/unstable/devel/binary-i386/tarball/task-cross-gba_tarball.tar.gz
GBA cross toolchain
-------------------
This toolkit is based on GCC-3.2.1, contains ASM,C,C++ support with full libc and libstdc++
ARM and THUMB of libs are provided (interwork and soft-fp enabled).
You can debug your software with GDB over the VisualBoyAdvance emulator also included.
Few samples are provided in /usr/share/doc/sample-gba/, type make in each subdirectory to obtain valid rom (.gba file).
type "apt-get install task-cross-gba" to get it.
GP32 cross toolchain
--------------------
This toolkit is based on GCC-3.2.1, contains ASM,C,C++ support with full libc and libstdc++. The SDK libs are also provided.
Libraries are ARM with interwork and soft-fp enabled.
Few samples are provided in /usr/share/doc/sample-gp32/, type make in each subdirectory to obtain valid rom (.fxe file).
type "apt-get install task-cross-gp32" to get it.
pub.deverge@webmails.com
Es el toolchain para linux; puedes bajarte ese o hacertelo tu mismo como bien explica RobBrown aqui:
http://www.cobbleware.com/gp32/gp32toolchain.html
Eso si, me pareceria increible que pudieses hacer cualquiera de las dos formas con un linux en un DVD. :confused:
cambolio
02/03/2004, 08:16
Por partes:
1) Ese linux en dvd supongo que será knoppix en el mejor de los casos, o las versiones live eval de suse en el peor de los casos. Te recomiendo que en cuanto te familiarices con linux, si te lo quieres tomar medio en serio (o si vas a programar para la facultad), te instales linux en tu disco duro. Entiendo que puedes ir justo con tu disco duro, a mí me pasaba, pero bueno, es que no es lo mismo. Con 1 giga puedes hacer una instalación de debian con entorno gráfico, y con 2 gigas cualquier distribución te cabrá. Y si no, los discos duros están ahora muy baratitos :)
2) Makefile. El fichero makefile te ahorra la labor de compilar a mano tus ficheros fuente, y además sólo recompila los ficheros fuente que se hayan modificado desde la ultima compilacion.
El fichero makefile va por "bloques" de dos líneas. En cada bloque, la primera linea contiene el nombre del objetivo , : , y los requisitos para construir este objetivo. En la segunda línea contiene un tabulado, y el comando necesario para construir el objetivo a partir de los requisitos. Parece complicado, pero te lo explicaré con un ejemplo:
Tenemos un programa separado en 4 ficheros fuente: main.c, fich1.c, fich2.c, fich3.c . Queremos compilarlo. Haremos el fichero makefile.
Opciones del gcc que tienes que conocer para entender esto:
-c -> solo compila los ficheros, no los enlaza. Es decir, gcc -c fichero.c crea un fichero llamado fichero.o , que esta ya en codigo maquina.
-o -> para decir el nombre del ejecutable que quieres crear.
Este sería el makefile:
programa: main.o fich1.o fich2.o fich3.o
gcc -o programa main.o fich1.o fich2.o fich3.o
main.o: main.c
gcc -c main.c
fich1.o: fich1.c
gcc -c fich1.c
fich2.o: fich2.c
gcc -c fich2.c
fich3.o: fich3.c
gcc -c fich3.c
clean:
rm *.o
Y ya está. el objetivo clean (sin requisitos) se pone para una vez compilado el programa, hacer un " make clean" y borrar los ficheros .o .
Para compilar esto solo tendrias que poner "make". El comando make lee la primera linea, comprueba que para compilar el objetivo no tiene listos todos los requisitos, así que se va a la linea del requisito o requisitos que todavia no están listos, y los construye.
A grandes rasgos, eso es un makefile. Si tienes alguna otra duda, pregunta.
PD: Soy nuevo aquí, hola a todos :)
Miki-chan
04/03/2004, 12:33
Gracias a los dos :)
Es que estoy pensando en comprarme un PC cuando empiece a trabajar (a ver si me saco el título y empiezo a trabajar en verano) y me estoy planteando volverme Linuxera :P o al menos tener Linux y Windows lo que ya no sé es si pondré los dos en un PC o si dejaré el que tengo ahora para Linux y el siguiente para Windows o como.
La versión que tengo es la Knoppix. Así que el entorno lo puedo montar, lo único que lo tendría que estar montando cada vez que cargase el DVD con Linux en lugar de entrar a Windows y eso suponiendo que me deje montarlo). El caso es que para familiarizarme un poco con el entorno Linux me va bien aunque claro, al programar te limita varias cosas porque programas que en clase me funcionaban, en casa al trabajar sobre la RAM no me iban.
Por cierto, cambolio, bienvenido entonces :)
P.D: A ver si en abril empiezo las FCT y puedo empezar a programar más en serio en mis ratos libres que ahora no me atrevo a meterme mucho porque luego me pasa que no me centro en C y me centro en la GP32 XDDDD.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.