返回> 网站首页 

Keil RAM配置 - STM32 CCM内存

yoours2021-11-18 17:38:15 阅读 3147

简介一边听听音乐,一边写写文章。

1. STM32F40x的keil工程配置

All STM32F40xxx products embed:

Up to 192 Kbytes of system SRAM including 64 Kbytes of CCM (core coupled memory) data RAM

STM32F407有192K RAM,其中192K被分成了128K IRAM1和64K IRAM2。

RAM分为: SRAM1(112kbyte) + SRAM2(16kbyte) + CCM (16kbyte) = 192kbyte

2. CCM

    CCM共64KB,是直接挂在D-bus上的,除了CPU(即Cortex-M核)之外,谁都无法访问。此外,由于CCM不属于BusMatrix的一部分,所有也就不能被其他组件访问,例如DMA控制器。

  对于CCM,CPU能以最大的系统时钟和最小的等待时间从CCM中读取数据或者代码。官方文档说明了使用CCM的一些优势:比如将频繁读取的数据放到CCM,将中断函数放到CCM,这都能加快程序的执行速度。

3. 使用CCM

    // 0x10000000 为CCM地址区间

    uint8_t BUF[LEN] __attribute__ ((at(0x10000000)));

    UINT32 EventNum __attribute__((at(0x10000000))) = 0;

4. 分散加载文件(.sct)进行分配

    第一步:

                

        打钩后编译,打钩后Keil后自动优先使用ccram。

    第二步:

                

第三步:

            修改sct文件

                

第四步:

    // 变量

    u8 test __attribute__((section("ccmram")));

    #define CCMRAM  __attribute__((section("ccmram")))

    //数组

    CCMRAM const char buf[10] = "\r\n!";

    //函数

    CCMRAM void LED_Init(void)

    {

    }


微信小程序扫码登陆

文章评论

3147人参与,0条评论