Instalación de un cargador de arranque en un microcontrolador ARM

4

He comprado este LPC1788FBD144,551 MCU y este LPC1313FBD48 / 01,15 MCU y quiero instalar un gestor de arranque en el ensamblaje que pueda activar una función en C. ¿Cómo puedo instalar el gestor de arranque en ARM MCU? ¿Lo instalaría directamente en la MCU o en un componente separado (si es así, puede mostrarme qué parte del sitio web de Newark)?

    
pregunta Coder404

2 respuestas

3

Ambos dispositivos tienen cargadores de arranque en el chip que siempre se ejecutarán. Con el LPC17xx, puede escribir un cargador de arranque secundario para ejecutar un código personalizado que se ejecutará directamente después. Simplemente debe indicar a su IDE que coloque el código en la ubicación 0x00.

En la página de documentación , eche un vistazo a AN11257 y AN11258. Estos tratan sobre la creación de cargadores de arranque secundarios (SBL) para cargar código desde SPI o I2C respectivamente. Esto podría recuperar el código de una PC o un dispositivo de memoria externo.

Desde AN11257:

  

En estas MCU, el cargador de arranque primario reside en el bloque de arranque. los   el cargador de arranque se ejecuta cada vez que la pieza se enciende o se reinicia.   Puede ejecutar el controlador de comandos ISP o el código de aplicación del usuario,   que se almacena en el sector 0 de la memoria flash interna.

     

La SBL en   este proyecto se refiere a una aplicación definida por el usuario que proporciona la   usuario con una opción para actualizar el firmware de la aplicación de usuario o   Ejecutar el firmware de aplicación de usuario previamente programado. Es   colocado desde la dirección 0x00 para que cuando el cargador de arranque primario   ejecuta la aplicación de usuario, se ejecuta primero.

No pude encontrar documentación similar en el LPC13xx. Pero su gestor de arranque principal tiene un poco más de funcionalidad incorporada. Específicamente la posibilidad de cargar nuevos programas a través de UART. Su versión carece de la funcionalidad USB de la que hablan en la Guía del usuario :

  

El código del cargador de arranque se ejecuta cada vez que se enciende la parte o   reinicio (ver Figura 63). El cargador puede ejecutar el comando ISP   controlador o el código de la aplicación de usuario, o puede obtener la imagen de arranque   como un dispositivo MSC conectado a través de USB. Un nivel BAJO durante el reinicio en   El pin PIO0_1 se considera una solicitud de hardware externo para iniciar   el controlador de comandos ISP o la enumeración de dispositivos USB sin   Comprobando primero un código de usuario válido. El estado de PIO0_3 determina   si se utilizará la interfaz UART o USB:

     

• Si PIO0_3 se muestrea ALTO, el cargador de arranque conecta el LPC134x como un   Dispositivo USB MSC a un host de PC. El espacio de memoria flash LPC134x es   representado como una unidad en el sistema operativo Windows del host.

     

• Si se muestrea PIO0_3 LOW, el cargador de arranque configura la serie UART   puerto y llama al controlador de comando ISP.

     

Observación: en las partes LPC131x (sin USB), el estado del pin PIO0_3 sí lo hace   no importa.

Aún puede hacer que las primeras instrucciones ejecutadas después de que el gestor de arranque primario actúe como un gestor de arranque secundario personalizado. Solo necesitas localizar ese código en la dirección correcta. Cómo se hace esto depende en gran medida de su IDE. Consulte la documentación de su IDE sobre cómo controlar correctamente la colocación del código en los sectores deseados.

    
respondido por el embedded.kyle
0

Diría que todo lo que necesitas ya lo proporciona NXP.

Es el mismo principio para todos los microcontroladores LPC1700, así que use la herramienta Flashmagic o llame a las funciones IAP (Programación en la aplicación) para proporcionar su propio cargador de arranque personalizado. Por lo general, debe hacerlo si necesita que el cargador de arranque se ejecute a través de Ethernet o USB, y no a través del RS232. Sin embargo, tiene sentido llamar a las funciones IAP para la programación de Flash y no hacerlo usted mismo.

Compruebe este hilo , las respuestas proporcionadas por Zero y Rob68 son siempre de alta calidad directamente al problema.

Descargue la Flashmagic tool , y estudie el manual del usuario (proporcionado en PDF). Sus dispositivos son compatibles.

Consulte también este enlace donde se analizaron algunos problemas más específicos.

    
respondido por el Drazen Cika

Lea otras preguntas en las etiquetas