Escribiendo el programa del cargador de arranque en ATmega32A

4

Necesito programar un código de cargador de arranque escrito en C en la sección de arranque de AVR ATmega32A usando un programador serial. No puedo escribir el código directamente en la sección de arranque del estudio Atmel. Por lo tanto, estoy buscando una manera aquí. Además, ¿hay alguna buena manera de combinar el código de la aplicación y el código de inicio y escribirlos en las secciones respectivas utilizando el programa C?

    
pregunta gzix

1 respuesta

3

La Hoja de datos de ATmega32A en la página 245 muestra lo siguiente tabla donde comienza el área del cargador de arranque dependiendo de cómo se configuran los fusibles BOOTSZ :

Entonces,asumiendoquetienesBOOTSZ0yBOOTSZ1estándesactivadosparalasecciónmásgrandedelgestordearranque,comenzaráen0x3800.Enladocumentaciónde memory puede ver que el código va al segmento .text linker y la dirección se puede cambiar yendo a Propiedades del proyecto | Toolchain | AVR / GNU Linker | Configuración de memoria y agregar .text=0x3800 en la sección del segmento FLASH:

Normalmente, si quiero que el cargador de arranque combinado con el firmware de la aplicación para la programación de producción, use el cargador de arranque para cargar el firmware principal y luego vuelva a leer el resultado de FLASH. Debería ser técnicamente posible combinarlos utilizando segmentos de vinculador personalizados, pero tendría que ser muy cuidadoso con el lugar en el que se colocaron las funciones de biblioteca estándar, por lo que el método anterior es probablemente más fácil y seguro.

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas