Article View: es.comp.os.linux.programacion
Article #1139Re: hola a todos, soy nuevo y traigo dudas
From: Azdo
Date: Sat, 18 Mar 2006 12:49
Date: Sat, 18 Mar 2006 12:49
49 lines
3410 bytes
3410 bytes
Leto Atreides wrote: > 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). Para controlar la pantalla en modo texto, la librería es ncurses. AAlib sería para representar gráficos de pixel en una pantalla de texto. Si lo que quieres es pintar imágenes en la pantalla o sprites, lo más aconsejable sería usar la librería SDL. Todas ellas tienen documentación y son bastante sencillas de usar. Ten en cuenta que hoy por hoy, ningún SO te deja acceder directamente a la memoria de vídeo a través de un puntero si no es tras alguna clase de emulación de MSDOS. El uso de "far" está descartado desde hace mucho tiempo, desde que empezaron a aparecer los ordenadores de 32bit y los modos de memoria en modo protegido (linux, win95,etc) Ahora en cualquier SO puedes considerar la memoria como completamente lineal, sin segmentos ni desplazamientos. Un saludo.
Technical Details
Message-ID:
<dvgvl3$8to$1@news.ya.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!news.ya.com!yacom!not-for-mailReferences:
<1141329524.471313.126870@p10g2000cwp.googlegroups.com> <du9299$443$1@electra.cc.upv.es>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,e8f7a00236e63b04 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,UTF8 Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!news.ya.com!yacom!not-for-mail From: Azdo <azdo_bremoveme@yahoo.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: hola a todos, soy nuevo y traigo dudas Date: Sat, 18 Mar 2006 13:49:44 +0100 Organization: ya.com internet factory Lines: 49 Message-ID: <dvgvl3$8to$1@news.ya.com> References: <1141329524.471313.126870@p10g2000cwp.googlegroups.com> <du9299$443$1@electra.cc.upv.es> Reply-To: azdo_bremoveme@yahoo.es NNTP-Posting-Host: 211.red-83-52-52.dynamicip.rima-tde.net Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8Bit X-Trace: news.ya.com 1142686179 9144 83.52.52.211 (18 Mar 2006 12:49:39 GMT) X-Complaints-To: newsmaster@ya.com NNTP-Posting-Date: Sat, 18 Mar 2006 12:49:39 +0000 (UTC) User-Agent: KNode/0.9.2