硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1083|回复: 2
收起左侧

[STM32H7] 分散加载内存编译器如何自动分配内存?

[复制链接]

98

主题

340

回帖

634

积分

金牌会员

积分
634
发表于 2021-11-17 11:51:47 | 显示全部楼层 |阅读模式
请教硬汉哥,H743分散加载的方式,有办法让编译器自动分配内存吗?比如,SRAM1空间满了自动分配到SRAM2空间中?而不用每次定义数组的时候都要指定到那个内存空间实测SRAM1满了之后编译器就会提示no space
Dingtalk_20211117115026.jpg

回复

使用道具 举报

3

主题

337

回帖

346

积分

高级会员

积分
346
发表于 2021-11-17 12:43:58 | 显示全部楼层
可以的,.ANY1(+RW +ZI), .ANY2(+RW +ZI), ...这样指定段优先级;具体看chm文档,你会学到很多。
回复

使用道具 举报

3

主题

337

回帖

346

积分

高级会员

积分
346
发表于 2021-11-17 12:46:44 | 显示全部楼层
以前我某个项目就这么用的,很方便供参考:
  1. ;******************************************************************
  2. ;***  Scatter - Loading Description File generated by uVision  ****
  3. ;******************************************************************

  4. LR_IMAGE 0x08000000 0x00080000 {    ; load region size_region
  5.   ER_RESET +0 FIXED 0x300 {         ; load address = execution address
  6.     *(RESET, +FIRST)
  7.   }
  8.   ER_SUMMARY 0x08000300 FIXED {     ; 镜像文件摘要区域
  9.     *(SUMMARY, +FIRST)
  10.   }
  11.   ER_CODE +0 FIXED {                ; 代码和常数区域
  12.     *(InRoot$$Sections)
  13.     .ANY(+RO)
  14.   }
  15.   RW_CCRAM 0x10000000 0x10000 {     ; core coupled memory
  16.     .ANY3(CPUONLY)
  17.     .ANY3(STACK)
  18.   }
  19.   RW_SRAM1 0x20000000 0x1C000 {     ; 变量区域(CPU和外设都可访问)
  20.     .ANY1(HARDWARE)                 ; .ANYx的x值越大,优先级越高!
  21.     .ANY2(+RW, +ZI)                 ; 通过ANY优先把RW和ZI放在该段
  22.     .ANY2(CPUONLY)
  23.     .ANY2(STACK)
  24.     *(RAMFUNC)                      ; 放在RAM中的可执行代码
  25.   }
  26.   RW_SRAM2 0x2001C000 0x4000 {      ; 无法I-bus和D-bus访问
  27.     .ANY2(HARDWARE)                 ; .ANYx的x值越大,优先级越高!
  28.     .ANY1(+RW, +ZI)                 ; 若RW_SRAM1已满则RW和ZI放在该段
  29.     .ANY1(CPUONLY)
  30.     .ANY1(STACK)
  31.   }
  32. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-10 04:59 , Processed in 0.158161 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表