Escribir una función en la ubicación de memoria específica de Flash

4

Quiero que una función vaya a la ubicación de memoria específica de Flash y no puedo resolverlo.

¿Debo realizar una modificación en el archivo de vinculador?

También tengo idea de que en GCC, usaría las directivas #pragma mediante las cuales puedo poner mi código en una sección específica, pero no sé cómo asignar esa sección a una dirección específica.

Estoy usando Keil y programando LPC2138.

    
pregunta Swanand

1 respuesta

4

Para poner una función en una sección con GCC, use un atributo de función

extern void foobar (void) __attribute__ ((section ("bar")));

Luego, declare una sección llamada bar en su script de vinculador. Por ejemplo.

MEMORY
{
  FLASH (rx): ORIGIN=0xDEADBEEF, LENGTH=0x80000000
}

SECTIONS
{
  .bar:
  {
    KEEP(*(.bar))
  } > FLASH
}
    
respondido por el Toby Jaffey

Lea otras preguntas en las etiquetas