sram

STM32内部SRAM调试程序

雨燕双飞 提交于 2019-12-02 08:39:52
在stm32f407内部SRAM调试程序调试过程 目录 硬件 软件环境 调试程序介绍 RAM调试所需相关配置 1、修改代码存放地址和数据存放地址 2、更改向量表 3、更改DEBUG配置 4、取消更新flash程序 运行 目录 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 硬件 本次调试使用的硬件为正点原子STM32F4探索者开发板。 软件环境 软件使用的Keil V5.27.1.0 STM32f407使用的是LL库 调试程序介绍 为了能在FLASH运行和SRAM运行做个对比,写了两个测试程序。 在FLASH中运行的程序有两个LED灯会按照500ms的时间间隔闪烁 在SRAM中运行的程序只有一个LED灯会按照500ms的时间间隔闪烁 //主要代码如下: int main ( void ) { NVIC_SetPriorityGrouping ( NVIC_PRIORITYGROUP_4 ) ; SystemClock_Config ( ) ; LED_GPIO_Config ( ) ; while ( 1 ) { /* 在flash中运行的代码 */ LED0_Toggle ( ) ; LL_mDelay ( 500 ) ; LED1_Toggle ( )

在SRAM、FLASH中调试代码的配置方法(附详细步骤)

社会主义新天地 提交于 2019-12-01 19:59:22
因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要快得多,所以下载程序到SRAM中的速度较快。 所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。这篇笔记主要分享在 keil5 中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。 本篇笔记以STM32F103ZET6为例。其FLASH大小为512KB,SRAM的大小为64KB。FLASH基地址为0x08000000,SRAM基地址为0x20000000。在STM32F10XXX里,可以通过BOOT1、BOOT0引脚来选择三种不同的模式: 我们要在FLASH中进行硬件仿真调试还是在RAM中进行硬件仿真调试需要对这两个boot脚进行对应的设置以及程序下载的地址进行设置。 在FLASH中进行硬件仿真调试 1、硬件设置 BOOT0配置为0,BOOT1随意设置。 2、keil设置 本文以keil5为例。步骤如下: (1)点击如下按钮,修改target的名称: target的名称是可以随意更改的,我们这里改为FLASH。 (2)点击 Project->Options for Target Flash...

常见存储器:RAM,SRAM,SSRAM、DRAM,SDRAM,DDR SDRAM、ROM,PROM,EPROM,EEPROM,FLASH

对着背影说爱祢 提交于 2019-11-30 19:53:11
1、什么是存储器?存储器的分类有哪些?   存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。   按用途存储器可分为主存储器(内存)和辅助存储器(外存), 也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。   按读写功能存储器可分为只读存储器(ROM)和随机读写存储器(RAM)两种。ROM存储的内容是固定不变的,它是只能读出而不能写入的半导体存储器; RAM是既能读出又能写入的半导体存储器。当机器电源关闭时,ROM仍然可以保持数据,而存于RAM中的数据则会丢失。   在制造ROM的时候,信息(数据或程序)就被存入并永久保存。这些信息只能读出,一般不能写入,即使机器掉电,这些数据也不会丢失。ROM一般用于存放计算机的基本程序和数据,如BIOS ROM。其物理外形一般是双列直插式(DIP)的集成块。   我们通常购买或升级的内存条就是用作电脑的内存,内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板,它插在计算机中的内存插槽上

SRAM和DRAM区别

送分小仙女□ 提交于 2019-11-29 14:24:19
RAM可分为静态存储器(Static Random Access Memory,SRAM)和动态存储器(Dynamic Random Access Memory)。SRAM中的存储单元相当于一个锁存器,只有0,1两个稳态;DRAM则是利用电容存储电荷来保存0和1两种状态,因此需要定时对其进行刷新,否则随着时间的推移,电容其中存储的电荷将逐渐消失。 SRAM:读写速度快,生产成本高,多用于容量较小的高速缓冲存储器。 DRAM:读写速度较慢,集成度高,生产成本低,多用于容量较大的主存储器。 静态存储器与动态存储器主要性能比较如下表: 静态和动态存储器芯片特性比较 SRAM DRAM 存储信息 触发器 电容 破坏性读出 非 是 需要刷新 不要 需要 送行列地址 同时送 分两次送 运行速度 快 慢 集成度 低 高 发热量 大 小 存储成本 高 低 动态存储器的定期刷新:在不进行读写操作时,DRAM 存储器的各单元处于断电状态,由于漏电的存在,保存在电容CS 上的电荷会慢慢地漏掉,为此必须定时予以补充,称为刷新操作 来源: https://blog.csdn.net/qq_31433709/article/details/100830083

Keil编译过程及程序在Flash和SRAM的空间分配

偶尔善良 提交于 2019-11-28 08:17:06
1. keil编译介绍    当使用keil进行单片机的开发时,运行一段程序后,在output输出框会看到如下图的结果。 图1 keil 的output框   其中,Compiler编译器,使用的版本是 V5.06,程序会先经过编译、后链接linking生成可执行的代码,如果要下载单片机的Flash上,还需要转换成二进制(bin)或者十六进制(hex)的文件。 具体过程如下: 图2 keil的编译过程   值得注意的是,经过编译后,并不会给变量赋地址生(.o文件),只有经过链接器链接后变量才有地址,链接的作用可以看做是便于管理。经链接后 代码分为 Code、RO-data、RW-data、 ZI-data 四部分。接下来是老生常谈的问题,每个区都是干嘛的呢? CODE: 代码区,指程序中代码即函数体的大小,注意程序中未使用的函数也会算在CODE中,也即会占用FLASH空间,因此不用的函数最好删除掉,以免占用过多FLASH空间; RO-DATA: RO就是只读的意思,程序中只读的变量(也就是带Const的)和已初始化的字符串等; RW-DATA: 特指已初始化的可读可写全局/静态变量; ZI-DATA: 未初始化的可读可写全局/静态变量,注意初始化为0也算做未初始化,用到的堆空间和栈空间也会被算入这里面;   之前我一直在想的一个问题是我的局部变量存放在哪里,其实是这样的

NXP LPC外部flash IAP bootloader功能

孤者浪人 提交于 2019-11-26 06:38:55
遇到的问题: 1、spifi flash XIP启动模式。(有RAM启动和外部flash启动) 2、XIP启动后如何使用flash功能。(SPIFI操作flash需要把操作函数定位到SRAM中执行) 3、XIP启动后UART接收bin文件功能。(在外部falsh中启动,uart不能接收到数据?所有定位到SRAM中接收数据) 4、uart包接收解析。 下节详细讲解: 来源: https://blog.csdn.net/ldinvicible/article/details/98766806