STM32F4xx Ancho de memoria flash

0

Acabo de actualizar una MCU de STM32F407VG a STM32F429VI o de 1MB a 2MB Cuando miré la secuencia de comandos del vinculador, encontré que asignaron 512 K para el programa. Para mí eso significa acceso de 16 bits a la memoria; 1MB de palabras de 32 bits / 2 = 512K. Pero, ¡todo lo que veo muestra 1 MB de acceso de 32 bits para el F407VG! He mirado en el manual de referencia y no dice el tamaño de la ruta de acceso solo que una instrucción es de 32 bits y se ejecuta en un ciclo. ¿Si la memoria se mide mediante BYTE y tiene 1 MB / 4 para 127 KB? ¿Se accede a las ubicaciones de memoria ARM de 4 bytes a la vez? ¿Como en 0, luego 4 y luego 8 para tres palabras dobles de 32 bits?

Por favor haga referencia a cualquier documentación, lo busqué en Google hasta la muerte.

    
pregunta user263384

2 respuestas

1

El ancho del bus no afecta la forma en que se mide la cantidad de memoria. 1 MB es 1 MB, ya sea que se acceda por bits, bytes o palabras.

Si los autores anteriores de su aplicación solo asignaron 512 KB para el programa, eso significa que solo estaban usando la mitad de la memoria disponible. Esto podría ser porque estaban reservando la otra mitad para otra cosa, o porque estaban migrando de una parte más pequeña. De cualquier manera, no implica nada sobre cómo está organizada la memoria.

Ahora, en la práctica, el STM32F4 accede a la memoria flash a través de un bus de 128 bits, que se adapta a un par de buses de datos e instrucciones de 32 bits. Sin embargo, una vez más, esto no afecta la forma en que se calcula la capacidad. Es puramente un detalle de implementación.

    
respondido por el duskwuff
0

Probablemente usaron una variante de pieza diferente con la configuración del proyecto.

    
respondido por el Jeroen3

Lea otras preguntas en las etiquetas