STM32F1_ 外部SRAM作为运行内存

发布时间:2023-06-13  

前言

今天总结“STM32F103外部SRAM作为运行内存”。对于运行内存应该都知道它的意思,主要是程序运行时所使用的RAM,比如我们定义的全局变量、局部变量这些在程序运行时都会在RAM中为它们开辟一片空间,用于运行时所使用。


今天提供的工程是基于前面“TIM延时”的工程修改而来,但是今天的例子是使用ST官方提供的标准库里面“system_stm32f10x.c”文件里面现成的函数接口(使用寄存器配置),使其控制外部SRAM作为运行内存。昨天的工程使用标准库fsmc相应的函数接口来配置的FSMC,昨天工程的目的就是为了使其大家熟悉参数信息。因此,今天单独再提供一个工程”FSMC读写外部SRAM_官方配置”(就是用寄存器配置的版本),请自行下载查看和测试,效果和昨天一样只是配置FSMC的方式不同。


如何知道运行内存是使用的内部RAM还是外部RAM呢?测试方法很简单,就是定义一些全局变量或者局部变量,读出其地址就知道了。因此今天提供的例程就是使用这种方法来测试的。


今天的软件工程下载地址(360云盘):

FSMC读写外部SRAM_官方配置:

https://yunpan.cn/cSq3WajiZIcx8访问密码 30c0

外部SRAM作为运行内存:

https://yunpan.cn/cSq3n5iBTHuDc访问密码 4102

STM32F10x的资料可以在我360云盘下载:

https://yunpan.cn/crBUdUGdYKam2访问密码 ca90

内容讲解

工程概要说明: 例程定义了一个全局BUF和一个局部BUF,通过对俩BUF赋值,再打印数值和对应其地址,这样就可以检测运行内存的地址。

提供的工程以简单为原则,详细中文注释,方便自己方便大家。

关于“STM32F103 外部SRAM作为运行内存”我把重要的几点在下面分别讲述:

一、配置启动文件

我们使用官方标准库,拷贝标准库FSMC例程里面的“startup_stm32f10x_hd.s”文件(工程使用103ZE,若使用互联型芯片拷贝对应文件),替换掉我们之前工程的启动文件,如下图:

二、配置FSMC

我们使用官方标准库里面“system_stm32f10x.c”文件里面现成的函数接口(使用寄存器配置)来配置FSMC,只需要打开“system_stm32f10x.c”文件里面第122行的宏“DATA_IN_ExtSRAM”,见下图:


三、分配RAM

RAM地址的分配是由编译器完成的,因此需要对工程进行相应配置,就是使用外部RAM,见下图:


四、测试函数说明


该函数位于main.c文件下面;

这个函数主要就是对上面配置及整改工程的测试。定义一个全局变量和一个局部变量,通过串口打印出他们的地址就可以判断运行内存是使用外部还是内部。

五、打印(测试)结果


看了测试函数就知道依次打印出来的数据是什么,这里我们很明显的可以看到打印出的地址是0x6800xxxx,这里的0x6800xxxx地址数据就是外部SRAM地址(不懂的话,请看昨天的讲解),说明运行内存确实是外部SRAM.

六、今天的重点

A.实际开发中请尽量使用官方标准库里面“system_stm32f10x.c”文件里面现成的函数接口(使用寄存器配置)来配置FSMC,这样效率高一下。或者,如果你喜欢STM32CubeMX配置的代码风格也可以使用哪一种,关于STM32CubeMX的使用方法其实很简单,网上也有一些使用教程,或者后期我会增加一片关于STM32CubeMX的文章。


说明

今天提供的软件工程基于STM32F103大容量芯片,中等及小容量芯片没有FSMC功能,自然也不能使用。其实只要适当修改工程的部分配置,STM32F1有FSCM功能的芯片都适用。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    STM32F1_ 外部SRAM作为运行内存;前言 今天总结“STM32F103外部SRAM作为运行内存”。对于运行内存应该都知道它的意思,主要是程序运行时所使用的RAM,比如我们定义的全局变量、局部变量这些在程序运行......
    没花这么多钱啊” “你敢相信,我2015年买的笔记本电脑也是8G运行内存” “内存贵倒是给多点选择,硬盘颗粒现在总不贵吧。12999的电脑内存8GB起步,16999的电脑硬盘512GB起步,真的没意思......
    来看看矢量网络分析仪S11和S21是什么意思。 R&S ZVL3台式矢量网络分析仪 矢量分析仪S11和S21是什么意思? 矢量分析仪测量S参数时,经常会谈到S11、S21等。这些是什么意思? 网络......
    你很绝望。” 有的对话让人想起贾登·史密斯(Jaden Smith): “一无所有是什么意思?” “就像万事俱备。” “万事俱备又是什么意思?” 有时还会阐述阴谋论: “谁是美国总统?” “巴拉克?奥巴......
    MCU 5V tolerant capability是什么意思?;以STM32F030为例,在datasheet中可以看到一句关于IO的表述:Up to 55 I/Os with 5V......
    2017上展示的那台每帧数据高达3GB的HypeVR摄像机,就知道在VR和Tango技术下8GB的运行内存是多么的微不足道。 海力士内存颗粒 就此看来,今后智能手机想要实现更多的功能,8GB将会......
    参数(Scattering Parameters)常被简称为S参数。 二、矢量网络分析仪S11和S21是什么意思 矢量网络分析仪测量S参数时,经常会说到S11、S21等,这些是什么意思呢? 网络......
    中采用了目前存储芯片制程中最先进的1Z纳米的制程技术工艺。 然而1Z纳米技术并不是工艺的极限,在1Z纳米之后,还会有1α、1β、1γ等10纳米级制造的工艺。 那么,1Y、1Z是什么意思呢?首先,20纳米......
    矢量控制是什么意思 矢量控制的特点;  矢量控制是什么意思   矢量控制是一种具有高精度的电机控制技术,可以实现电机转矩、速度和位置的精确控制。基于......
    发动机制动是什么_发动机制动是什么原理;发动机制动是什么意思?这个问题可能很多车主朋友都说不清楚它的含义,但却知道在什么情况下应该使用发动机制动。但不能正确理解发动机制动的意思,又是......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>