Video Tutorial de Programación en C con cpc-dev-tool-chain

Noticias relacionadas con el mundo del Spectrum en general y este foro en particular. Presentación de nuevos usuarios.

Moderador: Sir Cilve Sinclair

Video Tutorial de Programación en C con cpc-dev-tool-chain

Notapor ronaldo el Mar Sep 23, 2014 12:46 am

Hola a todos!

Acabamos de publicar nuestro primer video-tutorial para programar en C para Amstrad CPC en Windows 7. El framework que introducimos y explicamos en el vídeo (cpc-dev-tool-chain) está basado en Makefiles y funciona sobre SDCC y Z88DK, además de utilizar herramientas como hex2bin, iDSK, 2CDT y otras. La versatilidad que tiene este framework creemos que es muy grande y que puede ser adaptado para producir software para distintos sistemas basados en Z80 (Spectrum y MSX, sobre todo). Ya hemos hablado también con algunos chicos de la escena MSX y lo ven interesante.

En el vídeo explicamos cómo instalar y configurar el framework en Windows 7 para:
  • Compilar programas y generar DSKs y CDTs (que seguro fácilmente se pueden convertir en TZX, teniendo en cuenta que son casi iguales).
  • Crear videojuegos con la CPCRSLib de Artaburu
  • Ubicar vuestros programas en memoria
  • Ver e identificar el código ensamblador generado por el compilador.

Además, en el post del vídeo hemos recopilado todos los links que aparecen en él y varios más que os pueden ser de utilidad.

Aunque el vídeo esté orientado a Amstrad CPC, me gustaría conocer vuestras opiniones sobre las posibilidades de adaptar el framework para otros sistemas. Estaría muy bien poder tener un framework integrado y poder desarrollar multiplataforma. Todos vuestros comentarios, críticas, abrazos y zapatillas a la cabeza se agradecen enormemente :)

Un saludo!

LINKS
Nota para los admin: he intentado postear esto en el foro de programación, pero me salía que no tengo permiso para acceder a posting.php. ¿Podríais moverlo al foro adecuado? Gracias :).
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor pacomix el Jue Sep 25, 2014 1:53 pm

Muy buena iniciativa pero un poco complicadete para echarlo a andar. ¿Qué necesidad hay de usar cygwin y makefiles? ¿No sería mejor tenerlo todo implementado en scripts de python/lua (convertidos a .exe) haciendo llamadas al compilador/ensamblador/linker de SDCC y pasar de ese rollo?
pacomix
Herbert
 
Mensajes: 62
Registrado: Sab Abr 17, 2010 5:54 pm

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor ronaldo el Jue Sep 25, 2014 4:45 pm

Hola @pacomix,

Obviamente, también es muy sencillo hacerse un fichero .bat en Windows y tirar millas. Hay mucha gente que lo hace y funciona bien. Con python y lua puedes hacer lo mismo. Lo que pasa es que todo eso, cuando quieras añadir librerías, cuando quieras hacer dependencias de compilación con distintos módulos y demás, te lo tienes que montar todo tú para la ocasion. Este framework ya lo trae todo integrado, y los makefiles son lo que te da la potencia para poder hacer la compilación por dependencias y condicional.

Cygwin se usa en este caso porque el framework está hecho para Linux, por lo que necesitas un terminal de Linux en Windows, y eso te lo da Cygwin. De todas formas, usar cygwin como sustitución del terminal de Windows es lo más normal, porque el terminal de Windows te deja hacer pocas cosas.

En el vídeo lo que hacemos es ayudar a poner todo esto en funcionamiento en Windows que, aunque no es complicado, son unos cuandos pasos. Una vez lo tienes en marcha, crear proyectos, añadir librerías y trabajar con el sistema es muy fácil. De todas formas, siempre tienes la opción de instalártelo todo por separado (SDCC, CPCRSLib, iDSK, 2CDT, hex2bin,...) e integrarlo tú con tus propios scripts. Mucha gente lo hace. Es cuestión de gustos :).

Personalmente, después de haber usado casi de todo, este framework es el que me parece mejor y más cómodo para trabajar. Pero bueno, esto siempre es opinable :)

Un saludo :)
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor pacomix el Jue Sep 25, 2014 7:29 pm

Lo del cygwin o consola de comandos ya es cuestión de gustos y con respecto a los .bat se puede hacer también de todo. Si es porque ya estaba todo hecho en linux está bien pero si se hace en python o cualquier lenguaje de script soportado en las dos plataformas ya tienes dos pájaros matados de un tiro.

Yo lo que hago lo tengo hecho en python y mediante un pequegno ficherito de configuración de proyecto (algo parecido a un makefile supongo... bueno ni eso) se establecen todas las dependencias. En el fondo será casi lo mismo pero con cosas diferentes. La única diferencia es que no hace falta enredar con cygwin ni makefiles que suelen ser un infierno, aunque bueno... en pequegnos proyectos para un amstrad no deberían ser problema alguno.

Ahora mismo ando enfrascado programando un plugin de integración de SDCC para el Visual Studio... a ver si lo termino. Eso sí que sería cómodo.
pacomix
Herbert
 
Mensajes: 62
Registrado: Sab Abr 17, 2010 5:54 pm

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor ronaldo el Jue Sep 25, 2014 9:21 pm

Aunque opino diferente respecto a los makefiles, aprecio mucho tu opinión y visión al respecto :). Sería interesante ver algún framework parecido a este implementado con lenguajes de scripting para comprobar hasta dónde se puede llegar.

Integrar SDCC con Visual Studio está muy bien (juraría haber leído a los programadores de SDCC decir que se podía, o que estaba preparado para ello o algo así). Lo que me pregunto es si no has pensado antes en integrarlo en algún IDE de software libre donde sea más fácil y rápido, tipo NetBeans o Eclipse. Lo digo, más que nada, porque si la integración es para que el IDE te ayude a gestionar el proyecto y compilar, no veo que Visual Studio vaya a ser mejor que cualquier otro (salvo comodidad personal). La ventaja que le vería a Visual Studio sería poder usar el depurador, pero para eso habría que currarse un emulador completo integrado con Visual, que permitiera esa depuración.

Por ponerte un ejemplo, tanto NetBeans como Eclipse o incluso Kate (que es lo que uso actualmente) permiten integrar la compilación por makefiles con una línea. Una vez configurado el proyecto, ya sólo tienes que editar tus archivos y darle al botón. Incluso lo puedes poner para que te lance el emulador con el disquette cargado. También es verdad que yo uso Linux, por lo que estoy más acostumbrado a estas cosas, y eso también hace que tenga otras preferencias :).
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor pacomix el Vie Sep 26, 2014 10:57 am

Sí... como ya dije es cuestión de gustos y a lo que uno esté más acostumbrado. Eclipse/NetBeans... ¡no por favor!

Ya hice una petición al programador del WinApe para que liberase el código o hiciese una pequeña interfaz de comunicación para la depuración... pero se resiste.

Si... la cosa de la integración con makefiles es muy bonita. Al final todo se resume en seguir una serie de pasos. Lo coñazo de eso es estar editando ficheritos a mano. Con la de visual studio personalizas las propiedades de la plataforma/compilador hasta donde quieras. No es tan críptico aunque como dices es cuestión de gustos y a lo que estés acostumbrado.

¿Puedes darme todas las "features" del framework? Llegar pues... hasta donde uno quiera personalizarlo... ¿o hay cosas que ignoro y no se pueden hacer?
pacomix
Herbert
 
Mensajes: 62
Registrado: Sab Abr 17, 2010 5:54 pm

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor ronaldo el Vie Sep 26, 2014 1:55 pm

Casi es mejor que busques otros emuladores de código abierto (CPCEMU, WinCPC, etc) si quieres intentar una interfaz de depuración. De todas formas, hacer eso para que opere con el debugger de Visual se me antoja un proyecto largo y duro. Si lo consiguieras sería una pasada, sin duda.

En realidad, los ficheros siempre existen: si no los editas tú a mano, cambias opciones en un IDE que los edita por ti. El que sea más o menos críptico es una cuestión de costumbre. Cuando estás acostumbrado a tocar los ficheros, es cómodo disponer de ellos por si quieres hacerlo.

En cuanto a las features que tiene el framework de cpcitor, yo las resumiría así:
  • La interfaz es estandar. Sólo hay que tener make y la consola. Funciona con cualquier IDE (y lo puedes integrar, si quieres).
  • Está automatizada la descarga, compilación y configuración de todas las herramientas necesarias
    • El framwork descarga SDCC o Z88DK, lo compila y te lo configura, cuando lo necesitas.
    • Lo mismo para crear DSKs: te descarga, instala y configura iDSK. Con sólo poner make dsk, el framwork lo hace todo.
    • Igual con CDTs: para esto utiliza 2CDT. En este caso, con make cdt.
    • También tiene PlayTZX integrado: se lo descarga, instala, configura y usa para crearte TZX de Spectrum.
    • También te baja y configura HEX2BIN: él sólito te crea el binario Amsdos a partir del IHX de intel que genera SDCC.
    • Tiene scripts preparados para crear proyectos con un sólo comando y empezar a trabajar directamente.
    • También tiene integradas librerías como CPCRSLib, CDTC_Studio o CFWI, para hacer videojuegos o aplicaciones de cualquier tipo sin tener que configurar nada (todo automatizado).
  • No tienes ni que configurar las opciones de linkado de las librerías: explora tus includes y te autoenlaza las librerías que necesitas.
  • Funciona multiplataforma, pero con base UNIX/Linux. (Esta última parte para mi es una ventaja, porque las herramientas disponibles en Linux me resultan muy potentes, estándar y cómodas).
  • Al ser estándar y venir todo el código en makefiles, se puede tunear y configurar por completo, para poner todo lo que uno quiera (cosa que hemos hecho ya en nuestras producciones).
Obviamente, como decimos, cualquier ventaja es discutible según la comodidad o no que le resulte a cada uno. Hasta la fecha, de todos los frameworks que he probado, para mi es el mejor y más cómodo. Estuve un tiempo trabajando con el IDE de NoRecess (Phactory) y no me resultó la mitad de cómodo y versatil, pese a tener un montón de cosas que este framework no tiene.

Como poder llegar, se puede llegar hasta dónde uno quiera, ya que tienes los fuentes completos. Ya depende de lo cómdo que uno se sienta con este sistema y las ganas que tenga de hacer cosas con él. Limitaciones, ninguna :).
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor nicalejo el Mar Oct 07, 2014 7:27 pm

He intentado hacer la instalación en una raspbery pi y al final me ha producido errores que no he sabido subsanar (estoy viejuno) ¿Alguien lo ha conseguido en procesadores ARM?
Avatar de Usuario
nicalejo
rst 0
 
Mensajes: 33
Registrado: Vie May 14, 2010 12:52 pm
Ubicación: Valencia

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor ronaldo el Mar Oct 07, 2014 10:34 pm

No he probado a compilarlo en ARM pero, si te ha dado errores de compilación, cópiamelos aquí porque puede que te los pueda resolver. En Linux también da un par de errores de compilación la 3.4.0 de SDCC, pero se resuelven muy fácilmente. Si son los mismos (dado que más que por ser ARM, será por la versión de GCC) quizá pueda ayudarte a resolverlos.
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor nicalejo el Mar Oct 07, 2014 11:52 pm

OK, pero ya tendrá que ser la semana que viene, salgo de viaje. Nos vemos
Avatar de Usuario
nicalejo
rst 0
 
Mensajes: 33
Registrado: Vie May 14, 2010 12:52 pm
Ubicación: Valencia

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor nicalejo el Mar Oct 14, 2014 7:21 pm

Superado todo excepto la creación de cpcrslib. El error es este:

pi@raspberrypi ~/cpc-dev-tool-chain $ make cpcrslib
LC_ALL=C make -C cpclib/cpcrslib
make[1]: Entering directory '/home/pi/cpc-dev-tool-chain/cpclib/cpcrslib'
************************************************************************
**************** Building in : cpcrslib_SDCC.buildtree target .built
************************************************************************
( set -e ; \
mkdir -p cpcrslib_SDCC.buildtree ; \
LC_ALL=C make --print-directory -f ../cpcrslib_SDCC_SDCC.Makefile -C cpcrslib_SDCC.buildtree CPCRSLIB_SRCTREE=../cpcrslib_SDCC/SDCC ; \
touch "cpcrslib_SDCC.buildtree/.built" ; \
)
make[2]: Entering directory '/home/pi/cpc-dev-tool-chain/cpclib/cpcrslib/cpcrslib_SDCC.buildtree'
make[2]: *** No rule to make target 'cpcrslib.rel', needed by 'cpcrslib.lib'. Stop.
make[2]: Leaving directory '/home/pi/cpc-dev-tool-chain/cpclib/cpcrslib/cpcrslib_SDCC.buildtree'
Makefile:36: recipe for target 'cpcrslib_SDCC.buildtree/.built' failed
make[1]: *** [cpcrslib_SDCC.buildtree/.built] Error 1
make[1]: Leaving directory '/home/pi/cpc-dev-tool-chain/cpclib/cpcrslib'
Makefile:20: recipe for target 'cpcrslib' failed
make: *** [cpcrslib] Error 2
Avatar de Usuario
nicalejo
rst 0
 
Mensajes: 33
Registrado: Vie May 14, 2010 12:52 pm
Ubicación: Valencia

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor ronaldo el Mar Oct 14, 2014 11:09 pm

¿Es la primera vez que lo intentas compilar o ya lo habías intentado antes?
¿Tienes instalado unrar?
¿Puedes entrar al directorio /home/pi/cpc-dev-tool-chain/cpclib/cpcrslib' y poner un "tree" a ver que ficheros y estructura de carpetas tienes ahí?
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor nicalejo el Mie Oct 15, 2014 6:42 pm

Ya descomoprimi el rar en la carpeta cpcrslib_SDCC, ahí al ver que no compilaba borré el .lib pensando que asi make lo reharía.

pi@raspberrypi ~/cpc-dev-tool-chain/cpclib/cpcrslib $ ls -lR
.:
total 140
drwxr-xr-x 2 pi pi 4096 oct 14 19:17 cpcrslib_SDCC
-rw-r--r-- 1 pi pi 119291 nov 3 2012 cpcrslib_SDCC_11.03.2012.rar
drwxr-xr-x 2 pi pi 4096 oct 14 19:06 cpcrslib_SDCC.buildtree
-rw-r--r-- 1 pi pi 1532 oct 13 21:17 cpcrslib_SDCC_SDCC.Makefile
-rw-r--r-- 1 pi pi 5620 oct 13 21:17 Makefile

./cpcrslib_SDCC:
total 156
-rwxrw-rw- 1 pi pi 3875 oct 24 2012 cpcrslib.h
-rwxrw-rw- 1 pi pi 6876 oct 22 2012 cpcrslib.s
-rwxrw-rw- 1 pi pi 553 may 13 2012 cpcwyzlib.h
-rwxrw-rw- 1 pi pi 19686 oct 16 2012 GphStr.s
-rwxrw-rw- 1 pi pi 9190 abr 29 2012 GphStrStd.s
-rwxrw-rw- 1 pi pi 7121 sep 3 2012 Keyboard.s
-rwxrw-rw- 1 pi pi 455 may 12 2012 make.bat
-rwxrw-rw- 1 pi pi 11237 oct 24 2012 Sprites.s
-rwxrw-rw- 1 pi pi 12238 nov 3 2012 TileMap.h
-rwxrw-rw- 1 pi pi 22811 sep 14 2012 TileMap.s
-rwxrw-rw- 1 pi pi 6077 jun 20 2012 Uncrunch.s
-rwxrw-rw- 1 pi pi 3523 jun 20 2012 UnExoOpt.s
-rwxrw-rw- 1 pi pi 32789 ago 30 2012 Wyz.s

./cpcrslib_SDCC.buildtree:
total 0
Avatar de Usuario
nicalejo
rst 0
 
Mensajes: 33
Registrado: Vie May 14, 2010 12:52 pm
Ubicación: Valencia

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor ronaldo el Mie Oct 15, 2014 7:58 pm

Técnicamente, si quieres que recompile tienes que borrar el .buildtree y el .installtree. Borrando esos dos directorios provocas que recompile.

Estoy tratando de ver qué te puede fallar. Parece que fuera un tema de rutras.

¿Has creado el fichero cpcrslib_SDCC/.unpacked? Si extraes a mano tienes que crearlo. Supongo que ya lo has tenido en cuenta.
¿Has probado a hacer "make" dentro del directorio cpclib/cpcrslib a ver si te da lo mismo?
¿Puedes hacer un cat del fichero tool/sdcc/build_config.inc?
Avatar de Usuario
ronaldo
rst 0
 
Mensajes: 16
Registrado: Lun Ago 11, 2014 9:14 am

Re: Video Tutorial de Programación en C con cpc-dev-tool-cha

Notapor nicalejo el Mie Oct 15, 2014 8:01 pm

He probado todo lo que dices. Luego te pondre el contenido del fichero
Avatar de Usuario
nicalejo
rst 0
 
Mensajes: 33
Registrado: Vie May 14, 2010 12:52 pm
Ubicación: Valencia

Siguiente

Volver a Noticias, eventos y presentaciones

¿Quién está conectado?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 1 invitado