STM32内存使用及分配

发布者:xi24最新更新时间:2018-05-29 来源: eefocus关键字:STM32  内存使用  分配 手机看文章 扫描二维码
随时随地手机看文章

堆空间和栈空间配置

堆栈内存大小分配

Stack Size,一般小工程0X400足够,我们综合实验才设置0X1000就够用,所以默认无需设置太大。Stack_Size的值根据你程序中局部变量最大尺寸计算, 
Heap Size,如果没有用到标准库的malloc,就是废物,纯属浪费内存,所以直接设置为0即可。Heap_Size的值如果程序中没有用到动态内存malloc就默认不用管。

编译后空间使用情况

编译输出空间大小分配 
在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: 
Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data=1636

Code :是程序中代码所占字节大小 
RO-data :程序中所定义的指令和常量大小 (个人理解 :Read Only) 
RW-data :程序中已初始化的变量大小 (个人理解”:Read/Write) 
ZI-Data :程序中未初始化的变量大小 (个人理解 :Zero Initialize)

ROM(Flash) size = Code+RO-data+RW-data; 
RAM size = RW-data+ZI-data 
可以通过.map查看占用的flash和ram大小


关键字:STM32  内存使用  分配 引用地址:STM32内存使用及分配

上一篇:基于STM32F4移植W5500官方驱动库ioLibrary_Driver
下一篇:STM32F4 按键FIFO设计

推荐阅读最新更新时间:2024-03-16 16:03

STM32 HAL库学习系列第4篇 定时器TIM--开始定时器与PWM输出配置
基本流程: 1.配置定时器 2.开启定时器 3.动态改变pwm输出,改变值 HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1); 函数总结 __HAL_TIM_SET_COMPARE() // 是设置CCRx,一般是用在PWM输出的,控制PWM占空比 __HAL_TIM_GET_COMPARE // 是用来读取CCRx的,一般用于捕获处理 PWM输出配置: 频率设置: static void MX_TIM2_Init(void) { TIM_MasterConfigTypeDef sMasterConfig; TIM_IC_InitTypeDef sConf
[单片机]
<font color='red'>STM32</font> HAL库学习系列第4篇 定时器TIM--开始定时器与PWM输出配置
STM32 keil 下编程,各种数据类型的长度
源码: void test_str2num(void) { printf( rnrnint is %d ,sizeof(int)); printf( rnlong int is %d ,sizeof(long int)); printf( rnlong long int is %d ,sizeof(long long int)); printf( rnfloat is %d ,sizeof(float)); printf( rndouble float is %d ,sizeof(double)); printf( rnchar is %d ,sizeof(char)); printf( rnsho
[单片机]
STM32+FreeRTOS+CUBEMX_学习笔记(七 )输入捕获
前言 我们可以利用输入捕获模式来测量脉冲宽度或者测量频率。 1、cube设置 2、函数详解: /** * @brief Read the captured value from Capture Compare unit 读取通道捕获值 * @param htim TIM handle. * @param Channel TIM Channels to be enabled * This parameter can be one of the following values: * @arg TIM_CHANNEL_1: TIM Channel 1 selected * @arg T
[单片机]
STM32+FreeRTOS+CUBEMX_学习笔记(七 )输入捕获
STM32关于USART的问题集锦
1、STM32103USART1死机 问:voidUSART_Receive(USART_TypeDef*USARTx) { if(USART_GetFlagStatus(USARTx,USART_FLAG_RXNE)==SET) { USART_ClearFlag(USARTx,USART_FLAG_RXNE); s =USART_ReceiveData(USART1); delay(1000); s =USART_ReceiveData(USART1); delay(1000); s =USART_ReceiveData(USART1); delay(1000); write_c
[单片机]
STM32使用J-Link下载出错解决方法
好久没玩stm32了,最近有个项目刚好要用到stm32,可是在编译正确后,始终下载不了,一会出现这个错误,一会出现这个错误。现把我遇到的几个错误及解决方法记录如下。 1.ERROR:Flash Download failed - Cortex-M3 2.Overlapping of Algorithms at Address ** 3.Flash Timeout,Reset the Target and try again. 这几个错误都被我一次性遇到了(!汗)。解决无非就是注意几点(我用的是MDK V5.16a)。截图留存。 首先是检查Device选对没有,必须和你的Target Board一致。
[单片机]
<font color='red'>STM32</font><font color='red'>使用</font>J-Link下载出错解决方法
STM32 定时器产生PWM彻底应用
这次学习STM32花了很长时间,一个礼拜多,也有颇多收获,学习过程也有颇多曲折。这次的任务是:用STM32的一个定时器在四个通道上产生四路频率可调占空比可调的PWM波。 看到这个题,我先看STM32的数据手册,把STM32的定时器手册看完就花了一天,但是看了一遍任然不知道所云,就看库函数,略有点理解,就想一哈把这个程序调出来,于是就花了一天多时间仿照网上别人的程序来写,花了一天多写出来调试,结果行不通,做了无用功,于是静下心来想想,还是一步一步的来。 我先用STM32的通用定时器用PWM模式产生四路相同占空比,不同频率的PWM波,配置如下: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,E
[单片机]
STM32平台上实现printf和scanf函数(带回显)
首先我们来看这两者之间的区别, Keil专用于嵌入式程序仿真编译书写的平台, 支持C99, 不支持标准输入输出, 不支持文件操作, 带有标准库和各类处理器的固件库. POJ专用于程序测试, 支持C99, 支持标准输入输出, 不支持文件操作, 自带C, C++标准库. 其实早在Keil开始发布的时候, 附带的ST件器例程里就有对printf函数的实现. 具体的工程如图所示: 软件仿真的运行结果: 但不管怎样, 都不能用于POJ中, 原因有以下几点: ① 在main函数中配置了系统的时钟 ② 在main函数中配置了串口 ③ 在main.c文件中包含了很多POJ上不需要的函数 ④ 必
[单片机]
在<font color='red'>STM32</font>平台上实现printf和scanf函数(带回显)
使用STM32按键控制LED亮灭
实验环境 Matlab版本 :2021b 操作系统 :Win10专业版 硬件平台 :YF-STM32-ALPHA 1R4 模型与原理图 本次实验所用到的Simulink模型如图5.1所示,实验现象: 按键按下、松开LED循环实现翻转亮灭效果,当按键按下时,产生下降沿脉冲,通过一个计数器对下降沿脉冲进行0~1循环计数,计数到最大值时产生输出信号,输出信号为0时,控制LED熄灭,输出值为1时,控制LED点亮。 按键电路采用对电源负极方式连接,按键松开状态为高电平H,即逻辑1,按键按下状态为低电平L,即逻辑0。 图5.1 按键控制LED亮灭simulink模型 图5.2 按键控制LED亮灭原理图 图5.3 按键在开发板
[单片机]
<font color='red'>使用</font><font color='red'>STM32</font>按键控制LED亮灭
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved