¿Cómo usar un archivo Linker con Keil uVision5 ARM?

Estoy tratando de seguir un tutorial que implementa un cargador de arranque personalizado en un STM32F072 (ARM M0 Core), que requiere reasignar áreas de memoria al compilar tanto para la aplicación de 'carga de arranque' como para la 'aplicación principal', que luego se programa en la sección siguiente el espacio de 'carga de arranque' en FLASH.

El tutorial tiene un archivo bootload.ld que ya hace esto por mí, pero no puedo encontrar cómo decirle a Keil que use este archivo bootload.ld al vincular.

Solo puedo cargar un "Archivo de dispersión", pero eso no parece ser lo mismo, después de leer un poco en los foros de Keil.

¿Cómo puedo importar este script del enlazador o qué tengo que hacer?

Estas son las únicas opciones en Linker:Opciones del enlazador Keil uVision5

"Archivo de dispersión" es el formato de secuencia de comandos del enlazador para la cadena de herramientas armcc . Es diferente de GNU ld . Por lo tanto, debe usar el archivo adecuado según su cadena de herramientas.

Respuestas (2)

En el cuadro de diálogo Opciones para destino, ficha Vinculador, la opción Usar diseño de memoria del cuadro de diálogo de destino determina si se utiliza su archivo de dispersión personalizado. Cuando se marca Usar diseño de memoria desde el diálogo de destino, el enlazador usa información de las opciones de memoria seleccionadas en la pestaña Destino. (La cadena de herramientas usa la configuración de la pestaña Destino para generar automáticamente un archivo de dispersión, que se alimenta al vinculador). Debe desmarcar Usar diseño de memoria desde el cuadro de diálogo de destino para usar un archivo de dispersión personalizado especificado en la pestaña Vinculador.

Creo que los archivos dispersos suelen tener una extensión .sct. ¿Se escribió bootload.ld para la cadena de herramientas de Keil o para otra? Si se escribió para otra cadena de herramientas, entonces probablemente no funcionará con la cadena de herramientas de Keil a menos que lo reescriba para usar la sintaxis adecuada del archivo de dispersión de Keil.

Para ver un archivo de dispersión de ejemplo, mire el archivo .sct que generó automáticamente la cadena de herramientas cuando creó con la opción Usar diseño de memoria desde el cuadro de diálogo de destino marcada. Y por supuesto leer el manual .

Gracias, el script del enlazador fue escrito para Eclipse. No lo he descifrado por completo, pero esto me ha ayudado mucho: navyuginfo.com/custom-bootloader-for-stm32f072rb

Desmarque 'Usar diseño de memoria del cuadro de diálogo de destino' y seleccione el archivo de dispersión apropiado o edítelo. No estoy seguro de cuán diferente es el enlazador de armcc de armcc del enlazador de armcc. Pero el archivo de dispersión se usa para generar diferentes secciones en la memoria y también es bastante simple. Puede seguir las instrucciones desde Ver > Libros > (cualquiera que sea el documento del enlace presente)