没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32 CCM RAM 的使用介绍
STM32 CCM RAM 的使用介绍
需积分: 50 39 下载量 20 浏览量
更新于2023-03-16
评论 3
收藏 812KB PDF 举报
本应用笔记的目的在于介绍适用于STM32F303xB/xC和STM32F358xC微控制器的内核耦合 存储区(CCM) RAM,并描述利用不同的工具链从该存储区域执行部分应用程序代码所需的 操作。 本应用笔记分为四个部分:第一部分是 STM32F3 CCM RAM 的概述,第二部分描述了利用 以下工具链执行部分应用程序代码的步骤: • IAR EWARM • KEIL MDK-ARM™ • RIDE 和 Atollic 基于 GNU 的工具链 本文档通篇所述的步骤均适用于其它 RAM 区域,比如某些 F4 设备中的 CCM 数据 RAM 或外 部 SRAM。
资源详情
资源评论
资源推荐
2014 年 5 月 DocID024590 Rev 2 1/25
AN4296
应用笔记
以 IAR EWARM、 Keil MDK-ARM 和基于 GNU 的工具链来使用
STM32F303/358xx CCM RAM 的概述与技巧
前言
本应用笔记的目的在于介绍适用于 STM32F303xB/xC和STM32F358xC 微控制器的内核耦合
存储区(CCM)RAM,并描述利用不同的工具链从该存储区域执行部分应用程序代码所需的
操作。
本应用笔记分为四个部分:第一部分是 STM32F3 CCM RAM 的概述,第二部分描述了利用
以下工具链执行部分应用程序代码的步骤:
• IAR EWARM
• KEIL MDK-ARM
™
• RIDE 和 Atollic 基于 GNU 的工具链
本文档通篇所述的步骤均适用于其它 RAM 区域,比如某些 F4 设备中的 CCM 数据 RAM 或外
部 SRAM。
关于微控制器嵌入式 CCM RAM 的列表,请参考
表
1。
表 1. 适用产品
产品系列 产品编号或产品类别
微控制器 STM32F303xB, STM32F303xC, STM32F358xC
www.st.com
目录 AN4296
2/25 DocID024590 Rev 2
目录
1 STM32F303xB/C 与 STM32F358xC CCM RAM 的概述 . . . . . . . . . . . . . . 5
1.1 目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 STM32F303xB/C 与 STM32F358xC CCM RAM 的特性 . . . . . . . . . . . . . . 6
1.2.1 CCM RAM 映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 CCM RAM 重映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 CCM RAM 写保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.4 CCM RAM 奇偶校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 从 CCM RAM 执行应用程序代码
(使用 IAR EWARM 工具链) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 从 CCM RAM 执行简单代码 (中断处理程序除外) . . . . . . . . . . . . . . . . . . 8
2.1.1 从 CCM RAM 执行源文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 从 CCM RAM 执行一个或多个函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 从 CCM RAM 执行中断处理程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2.2.1 更新链接器文件 (.icf) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 更新启动文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 将中断处理程序放入 CCM RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.4 将向量表重新映射至 CCM RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 从 CCM RAM 执行库 (.a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 从 CCM RAM 执行应用程序代码
(使用 KEIL MDK-ARM 工具链) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1 从 CCM RAM 执行函数或中断处理程序 . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 从 CCM RAM 执行源文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 从 CCM RAM 执行库或库模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 从 CCM RAM 执行应用程序代码
(使用基于 GNU 的工具链) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 从 CCM RAM 执行函数或中断处理程序 . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 从 CCM RAM 执行文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 从 CCM RAM 执行库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
DocID024590 Rev 2 3/25
AN4296 表格索引
表格索引
表 1. 适用产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
表 2. CCM RAM 组织. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
表 3. 文档修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
图片索引 AN4296
4/25 DocID024590 Rev 2
图片索引
图 1. STM32F303xB/xC 与 STM32F358xC 系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
图 2. EWARM 链接器更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
图 3. EWARM 文件的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
图 4. EWARM 函数的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
图 5. 适用于中断处理程序的 EWARM 链接器更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
图 6. 适用于中断处理程序的 EWARM 启动文件更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
图 7. CCM RAM 区域定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
图 8. EWARM 区段初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
图 9. EWARM 库的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
图 10. EWARM 库模块的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
图 11. MDK-ARM 分散文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
图 12. MDK-ARM 选项菜单 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
图 13. MDK-ARM 函数的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
图 14. MDK-ARM 目标内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
图 15. MDK-ARM 文件的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
图 16. MDK-ARM 库的放置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
图 17. GNU 链接器更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
图 18. GNU 链接器区段定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
图 19. GNU 函数的放置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
图 20. GNU 文件的放置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
图 21. GNU 库的放置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
DocID024590 Rev 2 5/25
AN4296 STM32F303xB/C 与 STM32F358xC CCM RAM 的概述
1 STM32F303xB/C 与 STM32F358xC CCM RAM 的概述
1.1 目的
STM32F303xB/C 和 STM32F358xC CCM RAM 与 Cortex™ 内核紧密结合。这主要为了以最
高的系统时钟频率 (72 MHz)来执行代码,同时避免出现等待状态。因此,与闪存的代码执
行情况相比,该器件大大减少了关键任务的执行时间。
CCM RAM 一般用于实时的计算密集型程序,比如:
• 数字电源转换的控制环 (开关电源,照明)
• 矢量 3 相电机控制
• 实时 DSP 任务
当代码位于 CCM RAM 且数据保存在普通 SRAM 当中时,Cortex-M4 内核便处于最优的哈佛
配置。专用的零等待状态存储器与所有 I 总线及 D 总线连接(请参考
图
1: STM32F303xB/xC
与
STM32F358xC
系统架构
),由 此 可 实 现 1.25DMIPS/MHz 的执行速度,频率可达 72 MHz,
最终性能可达 90 DMIPS。如果中断服务程序处于 CCM RAM 当中,这还确保了最短的延迟
时间。
示例
STM32F103xx 与 STM32F303xx 微控制器之间的基准(使用意法半导体电机库 V3.4)表 明 ,
对于采用 3 电阻算法的单电机控制, STM32F303xx 的 FOC 总执行时间为 16.97 µs,而
STMF103xx 的总执行时间为 21.3 µs (参考以下注释); STM32F303xx 中的 FOC 算法和
无传感器算法环均从 CCM RAM 上运行。这意味着,得益于 CCM RAM, STM32F303xx 比
STM32F103xx 快 20.33%。
注
:FOC
程序以结构化的
C
语言编写,因此以上数值并不代表
STM32F103xx
和
STM32F303xx
的最快执行时间。此外,执行时间还受到所使用的编译器及其版本的影响。
如果 CCM RAM 没有用来存储代码,可以像额外 SRAM 内存那样保存数据。然而,它无法通
过 DMA 被访问。不建议将代码和数据一起放在 CCM 中,因为这样 Cortex 内核将不得不从
同一个内存中获取代码和数据,有可能发生冲突。这样,内核会变为冯 · 诺依曼配置,性能从
1.25DMIPS/MHz 下降至 1DMIPS/MHz 以下。
剩余24页未读,继续阅读
藏年
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0