datasheet

STM32内存之四(CCM)

2019-06-14来源: eefocus关键字:STM32  内存  CCM

CCM(Core Coupled Memory)是给F4内核专用的全速64KB RAM, 它们没有经过总线矩阵, F4内核与之直接相连, 地址空间在0x1000_0000 ~ 0x1000_FFFF.

由于其地址空间和常规的SRAM不连续, 加之DMA和外设也无法直接使用它们, 就使得一般的用户程序完全视而不见这64KB全速RAM, 罪过啊CCM <wbr>- <wbr>极致发挥STM32F4性能的利器...

 

言归正传, 既然是全速又专用的SRAM, 可以这么使用来充分发挥F4性能:

1. 作堆栈.

   修改链接脚本, 找到 CCMRAM_region, block CSTACK 和 block HEAP 关键词.

   把原先 place in RAM_region {...} 的命令改为如下2句:

     place in RAM_region { readwrite };

     place in CCMRAM_region { block CSTACK, block HEAP };

   搞定!CCM <wbr>- <wbr>极致发挥STM32F4性能的利器

   特别是运行RTOS的时候, 此类堆栈可以作为特权资源进行管理, 安全和性能得到同步提升.

 

2. 做高速运算缓冲

   对于运算密集型的应用, 同样可以通过定制链接脚本, 在CCM中划分出专用的全速运算缓冲区.

   比如: FOC模型解耦, 网络SSL, JPEG编码/解码...

   这时的F4内核才真正能够发挥出最高的运算性能.CCM <wbr>- <wbr>极致发挥STM32F4性能的利器

 

先聊这些吧...


关键字:STM32  内存  CCM

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/ic464650.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32F4的CCM内存之一
下一篇:keil+stm32+JTAG利用swd方式进行printf输出

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

用于stm32Discovery的图像转代码取模小工具

最近拿着st的官方板子在开发图形界面,看了下代码是直接把整个像素32bit拷贝到控制器中Graphic RAM(就是一块SDRAM)中的,所以以往遇到的生成器都不能用,在内部则又是转换费时费力,占用内存所以针对stm32的discovery lcd显示写了个图像代码生成的程序,可以直接生成32bit的ARGB格式代码等后面发一个成熟点的版本,目前还是有些容易遇到的bug
发表于 2019-06-15
用于stm32Discovery的图像转代码取模小工具

STM32L0xx_HAL_Driver库的使用——UART

单片机型号:STM32L051C8T6开发环境MDK5.12库版本:STM32L0xx_HAL_Driver V1.1.0主机环境:Windows XP之前一直使用的STM32F030C8T6单片机来做开发,因需求更改更换了一个新型号STM32L051C8T6,主要是用到了其低功耗特性,本以为直接把代码拷贝一下就可以使用了,结果是太天真了,STM32F030C8T6使用的库是STM32F0_StdPeriph_Lib而STM32L051C8T6使用的库是STM32L0xx_HAL_Driver两者的差别还是很大的,而且官方也推荐使用后者,没办法,重新学习一下吧。。。参考其例程磕磕绊绊的勉强可以写一个工程了,这里写一下有关UART
发表于 2019-06-15

STM32CubeMx之串行通信

前言我的板子是:STM32ZGT6配置1.打开STM32CubeMX新建工程,选择STM32ZGT62.配置外部高速时钟RCC设置,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator(晶振/陶瓷谐振器),我的开发板外部时钟是25MHZ。 3.配置串行通信选择Asynchronous异步通信。  串口配置设置波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1.其他参数默认。 生成报告以及代码,编译程序(最好单独生成.c和.h文件)。在usart.c文件中可看到串口1的初始化函数MX_USART1_UART_Init(void
发表于 2019-06-15

stm32 不断进入串口中断的bug解决方法

在使用stm32的时候,发现usart会莫名的卡在串口中断里,然而串口初始化只配置了RXNE中断,打断点发现不断进入中断却没不是RXNE中断引起的,经过查找资料发现是ORE的问题,2篇博文解决方案如下:http://bbs.21ic.com/icview-160999-1-1.html及http://blog.csdn.net/origin333/article/details/49992383大致原因为开启了RXNE中断之后 ORE也开启了,但是使用USART_GetITStatus却无法读取到ORE的标志位(未使能ERR时),这样也无法消除中断申请,自然一直进入串口中断,如果要消除ORE需要
发表于 2019-06-15

STM32串口USART用法的进阶(HAL库版本)

句话是绑定DMA,来源数USART1,目的是数组,定义好的。第二句是打开空闲中断it.c里面找到void USART1_IRQHandler(void){ UsartReceive_IDLE(&huart1);//自己添加一个函数,这就是中断,搬完以后,空闲中断 自己完成它  HAL_UART_IRQHandler(&huart1);}void UsartReceive_IDLE(UART_HandleTypeDef *huart)  {      uint32_t temp;      if
发表于 2019-06-15

STM32CubeMX学习教程之五:PWM实现呼吸灯效果

软件:STM32CubeMX V4.25.0  System Workbench V2.4固件库版本:STM32Cube FW_F1 V1.6.1硬件:OneNet 麒麟座V2.3在STM32CubeMX中新建项目,选择正确的MCU型号 首先设置RCC和SYS,如下图 然后根据板子实际情况设置时钟(麒麟座外部晶振是12M,STM32F103x的最高主频是72M),如下图设置PC7 管脚为TIM3_CH2, 即定时器TIM3的Channel2然后设置TIM3的Channel2为PWM Generation CH2 从上一篇博文我们知道TIM3是挂在APB1总线上的,看时钟树我们知道
发表于 2019-06-15
STM32CubeMX学习教程之五:PWM实现呼吸灯效果

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved