Thread View: es.comp.os.linux.programacion
3 messages
3 total messages
Started by orlando balbuena
Thu, 02 Mar 2006 19:58
hola a todos, soy nuevo y traigo dudas
Author: orlando balbuena
Date: Thu, 02 Mar 2006 19:58
Date: Thu, 02 Mar 2006 19:58
22 lines
1980 bytes
1980 bytes
Hola amigos del grupo, lo que me trae a escribir es una duda sobre el acceso amemoria en linux el tema es que realice un programa en c bajo windows (tc++ 3.0) para acceder a escribir directamete sobre la ram de video, la instruccion es la siguiente: . char far *ini_pant=(char far *)0xB8000000; /* puntero al inicio de pantalla */ . anda perfecto ya que luego de los calculos para la posicion del caracter, solo hago *ini_pant=caracter;. Pero no puedo hacer lo mismo en linux ya que no me reconoce el far *, viendo alguna info vi que no es ANSI-C por lo que lo elimine, compilo sin problema pero al ejecutar me aparece el error Segmentation Fault(coredump) , En que estoy fallando? acaso es la forma de direccionar la RAM, o la direccion de video es otra? Estare agradecido cualquier ayuda. gracias Orlando
Re: hola a todos, soy nuevo y traigo dudas
Author: Leto Atreides
Date: Fri, 03 Mar 2006 09:28
Date: Fri, 03 Mar 2006 09:28
32 lines
2660 bytes
2660 bytes
orlando balbuena escribi�: > Hola amigos del grupo, lo que me trae a escribir es una duda sobre el > acceso amemoria en linux el tema es que realice un programa en c bajo > windows (tc++ 3.0) para acceder a escribir directamete sobre la ram de > video, la instruccion es la siguiente: > . > char far *ini_pant=(char far *)0xB8000000; /* puntero al inicio de > pantalla */ > . > > anda perfecto ya que luego de los calculos para la posicion del > caracter, solo hago *ini_pant=caracter;. > > Pero no puedo hacer lo mismo en linux ya que no me reconoce el far *, > viendo alguna info vi que no es ANSI-C por lo que lo elimine, compilo > sin problema pero al ejecutar me aparece el error Segmentation > Fault(coredump) , > En que estoy fallando? acaso es la forma de direccionar la RAM, o la > direccion de video es otra? Estare agradecido cualquier ayuda. > Tu problema es que Linux protege los diferentes dispositivos y sus respectivas zonas de memoria. En MS-DOS no habia ningun control al respecto y podias acceder directamente a la zona de memoria reservada para la tarjeta de video. Asi que, tu no puedes acceder a ninguna zona de memoria (como la 0xB8000000) si que la hayas reservado primero. El problema es que no creo que puedas reservar esa zona de memoria porque pertenece al sistema y puedes vulnerar la estabilidad de este. Pero si no me equivoco, existe una libreria en linux que te permite trabajar con la tarjeta de video en modo texto (creo que es la aalib-devel pero no estoy nada seguro).
Re: hola a todos, soy nuevo y traigo dudas
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Fri, 03 Mar 2006 11:00
Date: Fri, 03 Mar 2006 11:00
33 lines
2593 bytes
2593 bytes
Hola "orlando balbuena" <orlandobalbuena@gmail.com> el 2 Mar 2006 11:58:44 -0800 escribiste: > Hola amigos del grupo, lo que me trae a escribir es una duda sobre el > acceso amemoria en linux el tema es que realice un programa en c bajo > windows (tc++ 3.0) para acceder a escribir directamete sobre la ram de > video, la instruccion es la siguiente: > . > char far *ini_pant=(char far *)0xB8000000; /* puntero al inicio de > pantalla */ > . > > anda perfecto ya que luego de los calculos para la posicion del > caracter, solo hago *ini_pant=caracter;. > > Pero no puedo hacer lo mismo en linux ya que no me reconoce el far *, > viendo alguna info vi que no es ANSI-C por lo que lo elimine, compilo > sin problema pero al ejecutar me aparece el error Segmentation > Fault(coredump) , > En que estoy fallando? acaso es la forma de direccionar la RAM, o la > direccion de video es otra? Estare agradecido cualquier ayuda. Creo que lo que quieres hacer es posible, pero primero tendrás que pedirle al kernel que te mappee la memoria de vídeo (que puede ser cualquier dirección) al espacio de direcciones de tu programa, y te pase un puntero. ¿Cómo se hace eso de manera portable? No sé, pero me suenan dos cosas que te pueden servir: svgalib y frame buffers. -- Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es> PGP key 2861C704 --- F206 5671 6789 425D 111C 1302 214F 1934 2861 C704
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads