Contenido>Indice>Intro CursoC51

PUNTEROS A DIRECCIONES ABSOLUTAS


En muchas aplicaciones con el 8051, la ROM, la RAM y los periféricos se encuentran en direcciones fijas. En consecuencia, se plantea la necesidad de hacer que un puntero apunte a una dirección absoluta, en lugar de apuntar a variables cuya dirección de memoria es desconocida y la mayoría de las veces irrelevante.

El método más sencillo es asignar la dirección durante la compilación:

char *abs_ptr = 0x8000 ;  // Define un puntero a char que apunta
                          // a la dirección 0x8000

Sin embargo si la dirección a donde debe apuntar el puntero no es conocida durante la compilación, pero si durante la ejecución del programa, el procedimiento anterior no sirve. En este caso se declara un puntero, y más tarde se le asigna una dirección:

char *abs_ptr ;  // Declara un puntero

abs_ptr = (char *) 0x8000 ;  // Apunta a la dirección 0x8000
*abs_ptr = 0xff ;            // Escribe 0xff en dirección 0x8000
*abs_ptr++ ;                 // Apunta a la dirección 0x8001

   Contenido>Indice>Intro CursoC51