文章目录1. STM32内存简述1.1. STM32寻址范围1.2. 存储器功能划分2. SRAM、ROM位置3. 程序占用内存大小3.1. 查看程序大小3.2. 占用内存分析4. text、data、bss 最近学到了 内存池、IAP 相关的知识,虽然明白大致的过程,但是对于具体的很多数字还是有些似懂非懂,因此又回来稍微细致的总结一下,方便理解。1. STM32内存简述1.1. STM32寻址
书接上文,在上一篇()中将程序运行在了外部SRAM中,网上看到一篇文章,将外部的SRAM作为内存来使用,自己试着配置了一下,使用的还是上一篇中的工程,但是程序运行到main函数中的 LCD_Init(); 有的时候程序出错运行到了 HardFault_Handler() 经跟踪程序汇编,发现有的时候会导致在SRAM中的堆栈被破坏掉,想到 LCD 和 外部SRAM都使用的是FSMC总线,在配置LCD
延时是一个很重要的概念,尤其是在利用单片机做项目的时候,比如利用IIC协议驱动EEPROM时,需要用到精准延时,延时时间太短或者延时时间太长都会影响到数据的写入和读出。因此正确写好延时对我们在学习单片机和利用单片机做项目时会有事半功倍的效果。 本文中实现延时用的是stm32f407系列单片机的定时器3,但不仅仅是定时器3,Syst
QSPI协议QSPI是Queued SPI(队列串行外围接口)的缩写,是由摩托罗拉公司推出的SPI协议的一个扩展,比SPI应用更加广泛,现在的FLASH、SRAM等存储器大多支持QSPI协议——QSPI是一种专用的通信接口,可连接单、双或四线SPI存储器QSPI在SPI协议的基础上增加了队列传输机制。STM32将Queued SPI协议接口实现为QUADSPI接口。QSPI的实现和SPI基本相似,
STM32cubemx教程 简介 STM32CubeMX 是 ST 意法半导体近些年力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、
转载
2024-09-30 09:37:29
201阅读
文章目录:目录一、FLASH的相关背景知识二、FLASH的相关操作。三、项目中遇到的关于FLASH操作的问题。 一、FLASH的相关背景知识STM32的存储器分为RAM 和 ROM。RAM为常说的内存。比如手机的内存2G 4G等等。是程序跑起来时占用的存储空间。特点是掉电数据易丢失。ROM为常说的硬盘。比如手机的128G存储空间。特点是掉电数据不容易丢失。在STM32中FLASH 和 E
转载
2024-10-17 09:21:27
263阅读
1 、简介256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道
转载
2024-07-09 18:09:14
113阅读
tip:如有错误,希望指出,非常感谢! 目录一、前言二、STM32CubeMX使用步骤1.环境搭建2.工程搭建流程2.1 新建工程2.2配置时钟2.3 SYS配置,调试模式2.4 GPIO配置2.5生成代码2.6小结3.工程内容3.1生成工程内容框架3.2 注意事项三、总结附录|参考 一、前言STM32CubeMX是ST意法半导体的主动原创工具,集成了一个全面的软件平台,支持STM32每一个系列的
STM32--DMA一、DMA简介二、DMA功能框图工作模式 基于平台:stm32f407ZGT6开发板 STM32–DMA一、DMA简介DMA是什么DMA,全称为:Direct Memory Access,即直接存储器访问。其主要功能作用是用于数据传输并且不占用CPU。DMA传输数据功能很强、很高效。为什么说DMA传输数据是高效的呢?这是因为DMA在传输实现高速数据移动过程无需任何 CPU 操
要 运行 LWIP 不光 要实现 OS 的 一些 接口 ,还要 有 硬件 数据 接口 移植 ,即 网线上 来的 数据 怎么个形式 传递给 LWIP ,去解析 做出相应的 应答 ,2017年8月11日14:45:16 LWIP 官网 介绍 这个硬件数据 接口 即 要 填满 网卡 这个
1 ;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000
2 ;然后在RAM中分配变量使用的堆
3 ;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x0800_0000,该中断向量表就从这个起始地址开始分配
4 ;分配完成后,再定义和实现相应的中断函数,
5 ;所有的中断函数全部带有[weak]特性,即弱定义,如果编译器发
CubeIDE编译器堆栈大小在工程目录列表xxx_FLASH.ld文件中,_Min_Heap_Size = 0x200 ; /* required amount of heap */
_Min_Stack_Size = 0x400 ; /* required amount of stack */MDK编译器堆栈大小在startup_stm32f103xb.s文件中,Stack_Size EQU
转载
2024-10-15 15:44:41
227阅读
前言博文基于STM32F103ZET6芯片,标准固件库3.5.0和MDK5编写;博文并不讨论PWM的基础知识,而是直接去谈对PWM灵活的控制问题;想全面了解的可以看看我写的专门针对PWM的博客: 如有不足之处还行多多指教;PWM的两个重要参数占空比:0~100%;信号周期:PWM信号里一个高电平和一个低电平的时间和; 对这两个参数的设置是配置PWM输出的核心也是今天要讨论的主要任务;是什么决定上面
stm32L151开发心得(一)前言STM32低功耗的三种模式低功耗的硬件设计 前言最近结束了一个STM32L151的项目,项目基本条件就是电池供电、物联化,还有一堆通讯式的外设。我以前主要以榨干单片机性能的项目为主,这个项目刚好相反,要求低功耗,而且STM32L151我也是第一次使用,写几篇文章纪念一下。 这个项目在启动之初,照旧还是各路神仙争夺硬件配置制高点的批斗大会。对于单片机的选型,要么
战舰STM32F103ZET6开发板ZET6芯片 该芯片内部自带了64k字节的SRAM,以及512K的内部FLASHIROM1=0x80000=512K 和IRAM1=0X10000=64k的大小同时开发板外置了1M字节外部SRAM芯片(IS62WV51216)1M字节(即512K*16位)其中512K是由19根地址线决定,219=512K; 16位是由16根数据线决定的64k字节内部S
转载
2024-03-27 21:07:05
318阅读
摘自stm32F4参考手册、数据手册、内核权威指南Cortex M3 M4存储器映射: 地址空间可以通过一种方式分为8个512MB的空间:STM32F4xx寄存器边界地址: STM32F4xx内存和Flash地址:  
学习stm32有2年的时间了,但是也只是有些基础的了解。为了深入的学习stm32应用,从新拿起原子写的《stm32开发指南》来深入的学习,所以这里太基本的东西不讲。文中有可能会搬一些原子大神的东西。另外这个系列只作为我自己的不完整笔记,毕竟原子大神写的很完整了!已经本人用的是神舟三号开发板。 首先先无耻的把原子的笔记粘过来一大堆。内存管理,是指软件运行时对计
内存管理
1.内存管理简介STM32F103ZET6内部有64KB的SRAM内存,加上外扩的128KB容量的SRAM后,可使用的内存还是比较多的。本例程将介绍一种简单的内存管理方式(即分块内存管理)来有效管理这些内存,类似于C语言中通过malloc函数和free函数来申请和释放内存内存管理是指软件运行时对计算机内存资源的分配和使用的技术,其最主要的目的是如何高效、快速的分配,并且在适当的时候释放
原创
2022-01-04 11:38:54
1009阅读
STM32CubeMX 真的不要太好用由于工作内容的变动,我已经很久没有正经的玩过单片机了,近期又要用它做个小玩意了,还是选 stm32 吧,外设库开发不要太方便,哈哈哈先去 stm32 社区逛了逛,发现了一个新字眼 STM32CubeMX,简单看了下,大概明白是个 ST 公司新推出的一个配置工具,直接由图形界面简单配置下,生成初始化代码,并对外设做了进一步的抽象,让开发人员更只专注应用的开发,挺
转载
2024-06-19 19:44:29
461阅读
在使用STM32单片机输出PWM波形的时候,通常可以直接使用定时器提供的PWM模式。可以通过自动重装载寄存器(TIMx_ARR)来设置定时器的输出频率,然后通过捕获/ 比较寄存器 1(TIMx_CCRx)来设置占空比。一个定时器只有一个自动重装载寄存器(TIMx_ARR),但是有4个通道的捕获/ 比较寄存器 1(TIMx_CCR1、TIMx_CCR2、TIMx_CCR3、TIMx_CCR4)。
转载
2024-09-12 00:52:56
1495阅读