4 votos

¿Buscar tablas, Flash o SRAM?

Un STM32F4 utilizan la plataforma, que ha 192kBytes SRAM, que es suficiente para mí.

Estoy tratando de construir una tabla de consulta. La LUT serán utilizados en el cálculo varias veces. Y quiero ponerlo en SRAM en el proceso de cálculo, en lugar de FLASH, desde la lectura de SRAM es más rápido que la lectura de FLASH para el núcleo.

Y he leído este post mencionando a poner la LUT en flash, lo cual me confunde.. ¿Qué debo hacer para grabar los datos en flash para la primera carga y los datos se guardarán en la memoria RAM después para los siguientes cálculos?

Y si alguien sabe de CCM, es una buena idea poner la LUT en CCM durante el cálculo?

5voto

Matt McMinn Puntos 6067

Simplemente la definición de la tabla sin una palabra clave const hará que la tabla se copien de Flash a la memoria RAM cuando el programa se inicia, por ejemplo,

const short ax [] = { 1, 2, 3, 4 };      // stays in Flash
short bx [] = { 5, 6, 7, 8 };            // starts in Flash, copied to RAM

Este comportamiento se puede comprobar con las siguientes dos líneas de código:

bx[0] = ax[0];    // allowed, since you are modifying a RAM variable
ax[0] = bx[0];    // not allowed, ax is const 

He comprobado esto con el IAR compilador para el STM32F10 de la familia. No sé lo que CCM es, lo siento.

No es extraño incrustado programadores para definir a una gran inicializa la tabla, olvidando la palabra clave const, y luego se preguntan por qué se ejecuta fuera de la RAM.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X