Arranque Atmel ARM desde tarjeta MicroSD

Estoy estudiando la hoja de datos ATSAME70Q19 de Atmel y estoy un poco confundido acerca del modo de operación de arranque de HSMCI.

En la página 892, "38.11 HSMCI Boot Operation Mode" hay una referencia que dice:

En el modo de operación de inicio, el procesador puede leer los datos de inicio del esclavo (dispositivo MMC) manteniendo la línea CMD baja después del encendido antes de emitir CMD1. Los datos se pueden leer desde el área de inicio o desde el área de usuario, según la configuración del registro.

  1. ¿Qué son los "datos de arranque"? ¿Archivo binario? ¿Archivo hexadecimal? ¿o algo mas?
  2. ¿Dónde está el "área de arranque" y el "área de usuario" en la tarjeta microSD?

Me doy cuenta de que necesita almacenar un archivo binario en la tarjeta microSD, pero ¿cómo? ¿En tarjeta formateada (por ejemplo, FAT) o como datos sin procesar?

porque no lo sé, agregaré esto como un comentario, así que tómalo con calma. ¿Qué son los "datos de arranque"? ¿Archivo binario? ¿Archivo hexadecimal? ¿o algo mas? Supongo que esto es similar al archivo boot.ini para Windows.
Supongo que también, pero no me gustaría adivinar, estoy buscando una referencia oficial.
Bueno, después de buscar información en el sitio web de Atmels, realmente no tienen nada al respecto. Quería poner esto como respuesta, pero simplemente no sería lo suficientemente bueno. El chip tiene 2 MB de flash incorporado, por lo que debería poder cargar cualquier código de inicialización en eso y luego cargar cualquier otra cosa que necesite de una tarjeta SD a partir de entonces. El código de arranque generalmente se coloca en el flash incorporado de todos modos, todo lo demás, como un sistema operativo, se colocaría en la tarjeta SD y se cargaría a partir de entonces. Los datos de arranque serían solo una porción de datos binarios con un encabezado adecuado colocado allí por el programador. Lo siento, no pude ayudar más
Programador como en el software y el dispositivo, no el desarrollador
Es un dato sin procesar para ser cargado en el ram.

Respuestas (1)

La documentación parece asumir que usted sabe de qué se trata este modo de operación de arranque y por qué tiene sentido estar allí desde una perspectiva funcional. Probablemente se comience a explicar y discutir en alguna capacitación de Atmel.

Esto también puede ser una característica histórica. Mire AT91SAM ARM-based Flash MCU , página 30 - muestra el mapeo de memoria, el primer bloque de código se llama "memoria de arranque". Como se describe en 9.1.4 "estrategias de arranque", el sistema siempre arranca desde la memoria de arranque, y luego la ROM de arranque puede realizar más acciones de arranque desde los dispositivos y las opciones disponibles.

En su caso, apuesto a que la tarjeta SD es solo una de las opciones para cargar datos de arranque; tenga en cuenta que la hoja de datos a la que apunta no indica el código de arranque , sino que habla de datos . Probablemente pueda hacer que los datos se conviertan en código para que MCU pueda ejecutarlos. Pero ciertamente depende del programador si usar esta función de arranque, cómo usar los datos en el dispositivo externo (tarjeta SD) y dónde se encuentra, y toda esta información debe proporcionarse a través del código de memoria de arranque que se está ejecutando en encendido (o reinicio).