STM32F407使用CCM(64K)区域

1、前提:项目中比较大,使用RAM空间大于128K时出现问题;查看手册发现,F407把ARM区域分成了几块;如下图:(最后一步讲解keil加载.sct文件的方式)

 共被分为三个区域,SRAM可以直接使用;CCM只有内核能访问,DMA等数据不能访问;

2、错误使用:刚开始使用的时候,直接勾选keil中的内存区,结果发现程序无法运行,如下图:

 3、正确使用:使用.sct文件加载内存区域;由于我使用的是FreeRTOS系统,所有优先把系统相关资源都放在CCM区域了,多出来的资源方一些其他的文件(不能方含DMA相关的)。.sct文件源码如下所示:

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

LR_IROM1 0x08004000 0x00100000  {    ; load region size_region
  ER_IROM1 0x08004000 0x00100000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20000000 0x00020000  {  ; RW data
   .ANY (+RW +ZI)
  }
 RW_IRAM2 0x10000000 0x00010000  {
 ;加载FreeRTOS系统相关文件
  control_task.o   (+RW +ZI)
;  event_groups.o (+RW +ZI)
;  list.o (+RW +ZI)
;  queue.o (+RW +ZI)
;  stream_buffer.o
;  tasks.o (+RW +ZI)
;  timers.o (+RW +ZI)
  heap_4.o (+RW +ZI)
  port.o (+RW +ZI)

;加载用户相关文件 注意F407的第二存储空间只有64K
  mid_share_data.o(+RW +ZI)
  mid_param.o(+RW +ZI)
  }

}

注意:在RW_IRAM2 0x10000000 0x00010000  上面部分的是keil之前生成的;可以在keil工程下找到原有的.sct文件,然后在这个文件上加RW_IRAM2 0x10000000 0x00010000相关内容;

加载后.map跟内存分配相关的,如下图所示:

Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0801d42c, Size: 0x0000f5e8, Max: 0x00020000, ABSOLUTE, COMPRESSED[0x0000017c])

Execution Region RW_IRAM2 (Exec base: 0x10000000, Load base: 0x0801d5a8, Size: 0x0000cf84, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x0000012c])

4、加载.sct文件方式

选择   魔法棒 -> Linker  如下图配置:

 

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2021 第五届STM32中国峰会PPT汇总,共58份。 2021第五届STM32峰会围绕“工业与安全、人工智能与传感技术、云接入与连接、生态与创新”四大应用方向。在为期两天的峰会中,通过高端主题论坛、分论坛及技术研讨会, 与会者不仅可以面对面近距离参观体验,还能亲身动手操作,深入了解到基于ST及合作伙伴最新的嵌入式技术、产品设计工具、多样化实例和全方位物联网应用解决方案。 一、主会场 第五届STM32峰会主题演讲 传感器连接世界 STM32生态系统,加速你的创造力 STM32产品路线,激发你的创造力 ST目标市场及终端市场战略 二、云接入与连接研讨会 STM32WL 低功耗,广域网无线通信技术助力物联世界 STM32WB 项目设计技巧 使用Azure RTOS简化物联网应用开发_微软 让万物互联更简单之 LoRa & ST篇_利尔达 广和通无线通信模组助力物联网连接_广和通 固件云交付 & 安全烧录_创芯工坊 三、云接入与连接分会场 STM32WL长距离无线SoC STM32WB新一代无线芯片BLE应用介绍 ST60 非接触式连接激发产品创新 IO link主站,集线器和从站传感器方案 身份验证和物联网安全解决方案 快速搭建LoRa终端产品_瑞科慧联 5力全开 广和通无线通信模组推动5G互联_广和通 四、生态与创新研讨会 TouchGFX遇到STM32G0,快速实现高性价比人机交互应用解决方案 STM32CubeMX+X-Cube-TouchGFX:一站式GUI开发平台,为嵌入式产品人机交互应用升级插上翅膀 意法半导体汽车MCU的创新与生态 深入探索ULP benchmarks,理解STM32U5系列超低功耗设计创新 人工智能物联网智能家居系统_艾睿电子 工欲善其事 必先利其器 -- STM32CubeMX新特性介绍V6 工欲善其事 必先利其器 -- STM32强大调试工具集介绍 五、生态与创新分会场 STM32U5一款新的低功耗旗舰产品系列 STM32是如何引领穿戴市场 STM32 生态系统迎来重量级玩家 AzureRTOS Azure IoT 简介 Arm Cassini 项目 - 为边缘网关提供安全的云原生体验_安谋 新一代超低功耗明星产品STM32U5 之 ULP 基准解读 汽车级处理器 六、人工智能与传感技术研讨会 Wendy_Li_机器学习算法生成设计指导 STM32 在计算机视觉上的应用 ST MEMS开发平台介绍 ST MEMS传感器FSM介绍 基于STM32G474的数字通信电源(8KW)方案实现分享_文晔 基于 STM32 的 ST ToF 激光测距开发工具介绍与演示 七、人工智能与传感技术分会场 STM32 GUI应用方案分享_文晔 ST ToF 激光测距方案推动智能生活 ST IO-Link方案为工业4.0解锁_艾睿电子 RT-Thread AI套件助力AI算法快速落地_睿赛德电子科技 OpenFOTA,无代码方式实现基于ST MCU的差分OTA升级_艾拉比智能科技 八、工业与安全研讨会 STSAFE-A 生态系统介绍及工具演示 STM32MP1“最后一公里解决方案”:如何成功启动自研MP1项目开发板_V1 STM32MP1 应用技巧加速产品开发 STM32G4&H7数字能源以及工业自动化应用分享 STM32信息安全应用技巧:助力代码保护和数据安全 米尔核心板加速基于STM32MP1的产品开发_米尔电子 基于ST芯片的全栈式嵌入式培训_单片机_RTOS_Linux_百问网 活用X-CUBE-MCSDK —— 从例程到产品 九、工业与安全分会场 STM32Trust 助力新产品设计提升安全性 STM32 重塑工业控制 ST风机驱动器解决方案 ST25 NFC&RFID 产品及工业应用 硅基和宽禁带材料功率器件在工业器件的应用 赋能工业智造,构建端云融合新生态_中移物联 5G 通信电源&CCM图腾柱PFC中STM32G4 的数字电源解决方案
STM32F407ZGT6GK原理图 STM32F407ZGT6 :ARM Cortex-M4 32位 MCU+FPU,210DMIPS,高达1 MB Flash/192 + 4KB RAM,USB OTG HS/FS,以太网,17 个TIM,3个ADC,15 个通信接口、摄像头。 特性: 1、内核:带有 FPU 的 ARM® 32 位 Cortex®-M4CPU、在 Flash 存储器中实现零等待状态运行性能的自适应实时加速器 (ART 加速器 ™)、主频高达 168MHz, MPU,能够实现高达210 DMIPS/1.25DMIPS/MHz (Dhrystone 2.1)的性能,具有 DSP 指令集。 2、存储器 – 高达1 MB Flash – 高达 192+4 KB的SRAM, 包括64-KB的CCM(内核耦合存储器)数据 RAM – 具有高达 32 位数据总线的灵活外部存储控制器: SRAM、 PSRAM、 NOR/NAND存储器 3、 LCD 并行接口,兼容 8080/6800 模式 4、 时钟、复位和电源管理 – 1.8 V 到 3.6 V 供电和 I/O – POR、 PDR、 PVD 和 BOR – 4 至 26 MHz 晶振 – 内置经工厂调校的 16 MHz RC 振荡器( 1% 精度) – 带校准功能的 32 kHz RTC 振荡器 – 内置带校准功能的 32 kHz RC 振荡器 5、低功耗 – 睡眠、停机和待机模式 – VBAT 可为 RTC、 20×32 位备份寄存器 + 可选的 4 KB 备份 SRAM 供电 6、3 个 12 位、 2.4 MSPS ADC:多达 24 通道,三重交叉模式下的性能高达 7.2 MSPS 7、2 个 12 位 D/A 转换器 8、通用DMA:具有FIFO和突发支持的16路DMA控制器 9、多达17个定时器: 12个16位定时器,和2个频率高达 168 MHz 的 32 位定时器,每个定时器都带有 4 个输入捕获 / 输出比较 /PWM,或脉冲计数器与正交 ( 增量 ) 编码器输入 10、调试模式 – SWD & JTAG 接口 – Cortex-M4 跟踪宏单元 ™ 11、多达 140 个具有中断功能的 I/O 端口 –高达 136 个快速 I/O,最高 84 MHz – 高达 138 个可耐 5 V 的 I/O 12、多达 15 个通信接口 – 多达 3 个 I2C 接口 (SMBus/PMBus) – 高达 4 个 USART/4 个 UART( 10.5 Mbit/s、ISO7816接口、 LIN、 IrDA、 调制解调器控制) – 高达 3 个 SPI ( 42 Mbits/s), 2 个具有复用的全双工 I2S, 通过内部音频 PLL 或外部时钟达到 音频级精度 – 2 个 CAN ( 2.0B 主动)以及 SDIO 接口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值