STM32
直播中

算一挂

8年用户 890经验值
私信 关注
[问答]

如何把外部SRAM像内部RAM一样分配变量?

各位大神,外部SRAM怎样配置才能像内部SRAM一样分配变量,要编译器分配。我使用的是GCC,SRAM现在可以读写,但是就是不知道怎么修改链接脚本和启动文件。

回帖(1)

曹雪

2024-4-8 16:12:01
找到工程中的.ld文件,添加类似下面的代码


  • MEMORY
  • {
  • RAM (xrw)      : ORIGIN = 0x20010000, LENGTH = 240K
  • DMARAM (rw)    : ORIGIN = 0x2004C000, LENGTH = 16K
  • FLASH (rx)     : ORIGIN = 0x8000000,  LENGTH = 1024K
  • }


  • SECTIONS
  • {
  •   /* DMA RAM SECTION */
  •   .dmasec :
  •   {
  •     . = ALIGN(4);
  •     *(.dmarss)
  •     . = ALIGN(4);
  •   } >DMARAM AT> FLASH
  • }



定义变量的时候加后缀 __attribute__((section(".dmarss"))),这样就可以把变量定义在指定内存地址里。
初始化要修改.s文件,比较麻烦,我都是自己写个Init函数解决的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分