¿Cuándo se necesitan GAS ELF las directivas .type, .thumb, .size y .section?

Estoy trabajando en un programa de ensamblaje para un microcontrolador basado en ARM Cortex-M3 (conjunto de instrucciones Thumb 2), usando GNU como.

En algún código de ejemplo, encuentro directivas como.size, .section y.type que entiendo son las directivas ELF. Como ejemplo:

    .section    .text.Reset_Handler
    .weak       Reset_Handler
    .type       Reset_Handler, %function  
Reset_Handler:
    bl      main
    b       Infinite_Loop    
    .size   Reset_Handler, .-Reset_Handler


los.type Se dice que la directiva establece el tipo de un símbolo, generalmente ya sea en% object (que significa datos) o en% function. No sé qué diferencia hace. No siempre se incluye, por lo que no estoy seguro de cuándo debe usarse.

También relacionado con esto es el.thumb_func directiva. Por lo que he leído, parece quepodría ser equivalente a:

.thumb 
.type Symbol_Name, %function

O es algo completamente diferente?


.size supuestamente establece el tamaño asociado con un símbolo. Cuando esto es necesario, no tengo idea. ¿Se calcula esto de forma predeterminada, pero se puede anular con esta directiva? Si es así, ¿cuándo desea anular?


.section es más fácil encontrar documentos, y creo que tengo una idea clara de lo quehace, pero todavía estoy un poco inseguro sobre el uso. Según tengo entendido, cambia entre diferentes secciones ELF (text para el código,data para datos grabables,bss para datos no inicializados,rodata para constantes y otros), y define otros nuevos cuando se desee. Supongo que cambiaría entre estos dependiendo de si define código, datos, datos no inicializados, etc. Pero, ¿por qué crearía una subsección para una función, como en el ejemplo anterior?

Cualquier ayuda con esto es apreciado. Si puede encontrar enlaces a tutoriales o documentos que explican esto con mayor detalle, preferiblemente comprensible para un novato, estaría muy agradecido.

Hasta ahora, elUsando como El manual ha sido de alguna ayuda, tal vez puedas sacarle más provecho que yo, con más conocimiento.

Respuestas a la pregunta(3)

Su respuesta a la pregunta