DATA_ALIGN Pragma - Tiva

1

¿Cuál es el propósito de un pragma Data_Align en TI emb. compilador.

La explicación de la hoja de datos:

enlace

"El pragma DATA_ALIGN alinea el símbolo en C, o el siguiente símbolo declarado en C ++, con una alineación límite. El límite de alineación es el máximo del valor de alineación predeterminado del símbolo o el valor de La constante en bytes. La constante debe ser una potencia de 2. La alineación máxima es 32768. El pragma DATA_ALIGN no se puede usar para reducir la alineación natural de un objeto ".

¿Puede alguien volver a explicarlo con un método diferente? Realmente no entiendo el propósito de esta directiva de precompilación.

    
pregunta MathieuL

1 respuesta

1

DATA_ALIGN hará que el símbolo se ubique en una dirección que cumpla con el requisito de alineación especificado. Por ejemplo:

El siguiente código ubicará mybyte en una dirección par.

#pragma DATA_ALIGN(mybyte, 2)
char mybyte;

El siguiente código ubicará mybuffer en una dirección que es divisible por 1024.

#pragma DATA_ALIGN(mybuffer, 1024)
char mybuffer[256];

La mayoría de los símbolos no requieren una alineación especial más allá de la alineación predeterminada del tipo de datos, por lo que no necesitará utilizar DATA_ALIGN a menudo. Pero ocasionalmente querrá que un símbolo se ubique en un límite de dirección especial y ahí es cuando DATA_ALIGN es útil. Por ejemplo, a veces los búferes utilizados con un controlador DMA deben alinearse en un límite especial.

    
respondido por el kkrambo

Lea otras preguntas en las etiquetas