Ayer estuve leyendo un artículo sobre cómo portar la newlib completamente a cualquier plataforma embebida y el resultado de la lectura y posterior aplicación de ese artículo puede verse en mi página de Gameboy Advance: una implementación parcial de la entrada/salida estándar así como una implementación de las funciones de acceso a ficheros utilizando el sistema de archivos romfs.
Ahora es posible hacer printf, puts, open, close, read y demás utilizando las llamadas compatibles POSIX con algunas limitaciones:
1. No existe entrada estándar. El handle de fichero 0 no es usable aún. Lo he hecho así ya que el pad de la Gameboy Advance sólo posee 10 botones (cuatro direcciones, A, B, L, R, start y select) que se acceden leyendo bits directamente de una posición de memoria.
2. El handle 1 (salida estándar) dirije el flujo a la pantalla, mientras que el handle 2 (salida de error estándar) dirije el flujo de datos a la SRAM no volátil del cartucho flash.
3. Es posible manipular mediante las llamadas POSIX estándar open, close, read, lseek y fstat ficheros alojados en una imagen de sistema de archivos romfs contatenada a la imagen ROM de la aplicación principal (ver página sobre GBA para más detalles).
[ añadir comentario ] ( 1275 visualizaciones ) | [ 0 trackbacks ] | enlace permanente | ( 3 / 1981 )