硬汉嵌入式论坛

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

[客户分享] STM32F407的CCM下的RAM空间使用方法汇总

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107023
QQ
发表于 2014-8-21 18:27:16 | 显示全部楼层 |阅读模式
个人认为CCM下的RAM空间非常适合用于RTOS的任务堆栈,但切勿用于DMA。这个RAM空间不支持DMA操作。

**********************************************************************************************************************
方法一:
直接在MDK编译器上面设置:
1.jpg

**********************************************************************************************************************
方法二:
直接通过指针变量指向这个空间即可。
uint16_t  *usPtr;
usPtr = (uint16_t *)0x10000000;

**********************************************************************************************************************
方法三:

像使用内部SRAM一样定义使用SDRAM和CCM RAM,可以随意定义到指定的RAM区域且无需具体地址
http://www.armbbs.cn/forum.php?mod=viewthread&tid=89275
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2014-8-26 20:56:44 | 显示全部楼层
STM32F103ZE有木有这个CCM??如果把RTOS堆栈安排到这个空间,具体怎么做??请指教。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107023
QQ
 楼主| 发表于 2014-8-26 21:18:52 | 显示全部楼层

回 天马行空 的帖子

天马行空:STM32F103ZE有木有这个CCM??如果把RTOS堆栈安排到这个空间,具体怎么做??请指教。。。。 (2014-08-26 20:56) 
F1没有这个RAM空间
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2014-8-27 16:48:36 | 显示全部楼层
两个同时打勾系统会怎么分配?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107023
QQ
 楼主| 发表于 2014-8-27 16:52:37 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:两个同时打勾系统会怎么分配? (2014-08-27 16:48) 
这个得看下编译器生成的.map文件
回复

使用道具 举报

3

主题

13

回帖

22

积分

新手上路

积分
22
发表于 2018-6-11 08:48:23 | 显示全部楼层
MARK 一下, 就是不知道有没有IAR  环境使用方法
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
发表于 2018-6-11 09:44:39 | 显示全部楼层
IAR 下在icf文件中定义一个ram1空间,然后把堆栈都放到这个空间即可
  1. define symbol __region_RAM1_start__ = 0x10000000;
  2. define symbol __region_RAM1_end__   = 0x1000FFFF;

  3. define region RAM1_region  = mem:[from __region_RAM1_start__   to __region_RAM1_end__];

  4. place in RAM1_region  { block CSTACK, block HEAP };
复制代码


回复

使用道具 举报

27

主题

91

回帖

172

积分

初级会员

积分
172
发表于 2018-6-11 14:55:23 | 显示全部楼层
分散加载方法:

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x08000000 0x00100000  {    ; load region size_region
  ER_IROM1 0x08000000 0x00100000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000000 0x00020000  {  ; RW data
   .ANY (+RW +ZI)
  }
CCM_IRAM 0x10000000 0x00010000  {  ; RW data
        cpu_core.o (+RW +ZI)
        os_core.o (+RW +ZI)
        os_cpu_c.o (+RW +ZI)
        mem.o (+RW +ZI)
        memp.o (+RW +ZI)

  }
}

颜色部分是UCOS变量放置在CCM中,对应MAP:    Execution Region CCM_IRAM (Exec base: 0x10000000, Load base: 0x08006f1c, Size: 0x00006e3c, Max: 0x00010000, ABSOLUTE)

    Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object

    0x10000000   0x08006f1c   0x0000001c   Data   RW         5781    .data               cpu_core.o
    0x1000001c   0x08006f38   0x0000004c   Data   RW         6482    .data               os_core.o
    0x10000068   0x08006f84   0x00000004   Data   RW         7225    .data               os_cpu_c.o
    0x1000006c   0x08006f88   0x0000000c   Data   RW         7660    .data               mem.o
    0x10000078        -       0x00000010   Zero   RW         5779    .bss                cpu_core.o
    0x10000088        -       0x00000a80   Zero   RW         6480    .bss                os_core.o
    0x10000b08        -       0x00000200   Zero   RW         7224    .bss                os_cpu_c.o
    0x10000d08        -       0x00002814   Zero   RW         7659    .bss                mem.o
    0x1000351c        -       0x0000391f   Zero   RW         7701    .bss                memp.o

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107023
QQ
 楼主| 发表于 2018-6-11 15:17:57 | 显示全部楼层
borrow1988 发表于 2018-6-11 14:55
分散加载方法:

; *************************************************************

如果是分散加载设置的话,这种方式太麻烦了,看此贴即可:

http://www.armbbs.cn/forum.php?m ... &extra=page%3D3
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107023
QQ
 楼主| 发表于 2018-6-11 15:18:34 | 显示全部楼层
tianyukobe 发表于 2018-6-11 08:48
MARK 一下, 就是不知道有没有IAR  环境使用方法

IAR一样的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 10:45 , Processed in 0.327729 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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