Flash Magic para el volcado de código (LPC1778)

0

Estaba leyendo un libro llamado "Guía interna para los microcontroladores basados en Phillips ARM7". Allí dice "La forma más fácil de programar el Flash es mediante el gestor de arranque incorporado que permite que el código se descargue a través de UART 0 en la RAM y luego se programe en FLASH". En Flash magic, cuando volcamos el archivo .hex a través del puerto COMM de la PC al puerto UART LPC1778, ¿el archivo .hex entra en la RAM y luego el cargador de arranque coloca el código en el flash? Si es así, la memoria RAM de un chip es de 64K y el tamaño del flash es de 512k. ¿Qué pasa si el tamaño del archivo .hex que quiero volcar es mayor que el tamaño de la RAM?

    

1 respuesta

2

En general, las imágenes de firmware no se transfieren a través de UART textualmente; en su lugar, se comunica con un gestor de arranque que proporciona funcionalidad de programación en el sistema (ISP).

La sección 37 de manual del usuario de LPC1778 trata sobre los comandos y la funcionalidad del ISP.

Una herramienta como Flash Magic envía comandos al gestor de arranque para reprogramar el chip de manera incremental. El algoritmo en particular variará, pero probablemente se vea algo como:

  1. Transfiera la cantidad de datos de un sector al búfer de LPC1778 en la RAM.
  2. Borre el siguiente sector de flash para ser reprogramado.
  3. Copia el búfer de la memoria RAM a flash
  4. Calcular la suma de comprobación del sector flash recién escrito
  5. Calcular la suma de comprobación de los datos en la RAM para verificar
  6. Repita hasta que se haya escrito la imagen de firmware completa.

En consecuencia, la cantidad de RAM disponible no limita la capacidad del cargador de arranque para reprogramar el flash, aunque tener más memoria RAM disponible puede acelerar el proceso al reducir la cantidad de datos transferidos entre el cargador de arranque y la PC. / p>     

respondido por el Devan

Lea otras preguntas en las etiquetas