硬汉嵌入式论坛

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

[MDK] Keil 分散加载问题:L6314W

[复制链接]

13

主题

196

回帖

235

积分

高级会员

积分
235
发表于 2024-6-2 18:45:46 | 显示全部楼层 |阅读模式
参考硬汉的内存分配例程“基于STM32H7的TCM,SRAM,SDRAM等六块内存区的动态内存分配”,

第一种写法:



/* D2域, 128KB SRAM1(0x30000000) + 128KB SRAM2(0x30020000) + 32KB SRAM3(0x30040000)  */
static uint64_t memory_d2[MD_D2_SIZE / 8]__attribute__((section(".ARM.__at_0x30000000")));
/* D3域, SRAM4, 地址: 0x3800 0000, 大小64KB */
static uint64_t memory_d3[MD_D3_SIZE / 8]__attribute__((section(".ARM.__at_0x38000000")));

问题:在某些情况会出现
Error: L6077E: Region table entry for region RW_IRAM4 is missing.


第二种写法:(仅修改memory_d3的定义方式,其余不变)

/* D2域, 128KB SRAM1(0x30000000) + 128KB SRAM2(0x30020000) + 32KB SRAM3(0x30040000)  */
static uint64_t memory_d2[MD_D2_SIZE / 8]__attribute__((section(".ARM.__at_0x30000000")));
/* D3域, SRAM4, 地址: 0x3800 0000, 大小64KB */
static uint64_t memory_d3[MD_D3_SIZE / 8]__attribute__((section(".RAM_D3")));
现象:不报错,并且map文件中meory_d3也在 0x38000000


请教各位:1)上面两种写法,哪种是AC6下正确的方式;2)为什么有时第一种写法会报错。谢谢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115488
QQ
发表于 2024-6-3 09:03:29 | 显示全部楼层
你这个是Option定义里面使用这个地址空间了,你这里attribute at也使用这个空间,冲突了。
回复

使用道具 举报

13

主题

196

回帖

235

积分

高级会员

积分
235
 楼主| 发表于 2024-6-3 10:39:28 | 显示全部楼层
我用的sct文件的方式,这样跟option里面怎么设置的没关系了吧?
  ; SRAM1 128KB (0x3000 0000) + SRAM2 128KB(0x3002 0000) + SRAM3 32KB(0x3004 0000)
  RW_IRAM3 0x30000000 0x00048000  {
   .ANY (+RW +ZI)
   *(.RAM_D2)
  }

  ; SRAM4 64KB(0x3800 0000)
  RW_IRAM4 0x38000000 0x00010000  {  
   .ANY (+RW +ZI)
   *(.RAM_D3)
  }
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115488
QQ
发表于 2024-6-3 11:01:58 | 显示全部楼层
gallop020142 发表于 2024-6-3 10:39
我用的sct文件的方式,这样跟option里面怎么设置的没关系了吧?
  ; SRAM1 128KB (0x3000 0000) + SRAM2 1 ...

如果你这里*(.RAM_D2)和*(.RAM_D3),那么你的C代码里面建议也用这个,别使用section(".ARM.__at_")));了,冲突了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-28 16:32 , Processed in 0.237951 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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