Sram en la corteza ARM m3

1

Carga un proyecto en el chip STM32f103ZC cuyo sram interno es de 48 kBytes, también hay un sram externo de 2 MBytes en el tablero. Pero cuando descargo y depuro el proyecto, el archivo de mapa indica que se ha utilizado la memoria de lectura y escritura de 52 KB. ¿Significa el carnero? Creo que no existe un error tal vez porque el archivo de comando del vinculador genera 64KBytes para el ram como la hoja de datos como se muestra a continuación, pero ¿dónde están los datos adicionales? ¿Se almacena automáticamente en el sram externo? Uso el IAR en Windows en lenguaje C.

    
pregunta nan zhang

1 respuesta

0

Ya que su microcontrolador tiene un controlador de memoria externo, imagino que la SRAM se asignaría directamente al espacio de direcciones principal. El mapa de memoria en la hoja de datos muestra que 0x60000000 a 0x6fffffff está reservado para SRAM externa (busque "FSMC" que es el nombre de ST para su controlador de memoria). Esto significa que una vez configurada correctamente, la MCU puede acceder a la SRAM externa como cualquier otra memoria.

Puede indicar al vinculador dónde ubicar las variables y los datos mediante un archivo de configuración. En IAR, dicho archivo terminaría en .icf y a menudo se encuentra en el directorio del proyecto. Si está utilizando una placa de desarrollo y el proyecto que está cargando es un ejemplo para esa placa en particular, es posible que el archivo del vinculador ya esté configurado para colocar datos de lectura / escritura en la SRAM externa.

    
respondido por el Tony K

Lea otras preguntas en las etiquetas