0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F1_ 外部SRAM作为运行内存

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-04-08 10:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

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

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

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

下载

今天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,官方配置工程是和昨天做对比(FSMC配置方式不一样)。

今天的软件工程下载地址(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功能的芯片都适用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • sram
    +关注

    关注

    6

    文章

    843

    浏览量

    117776
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1404

    浏览量

    121207
  • STM32F10
    +关注

    关注

    0

    文章

    49

    浏览量

    16347
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    同步SRAM和异步SRAM有哪些区别

    在高速存储器件中,SRAM一直以读写速度快著称,常被用于CPU的一级、二级缓存这类对响应时间极其严苛的场合。只要供电不断,SRAM内的数据就能稳定保存,无需像DRAM那样定期刷新,这是由它采用锁存器作为存储单元决定的。
    的头像 发表于 05-07 15:08 200次阅读

    EMI高性能同步SRAM内存方案

    在嵌入式系统与高速通信设备中,SRAM存储器选型直接影响整体性能。比传统异步SRAM,同步SRAM与系统时钟严格同步,所有地址、数据输入及控制信号的传输均在时钟上升沿或下降沿触发启动,从而显著提升读写效率。
    的头像 发表于 04-16 14:45 177次阅读

    LuatOS的内存分配机制

    不同 LuatOS 硬件平台在内存布局上存在差异,Lua 运行内存、系统内存与 PSRAM 扩展内存的分配方式各有区别。部分型号将系统与脚本内存
    的头像 发表于 04-16 12:37 223次阅读
    LuatOS的<b class='flag-5'>内存</b>分配机制

    STM32N6 在 PSRAM 上运行代码的调试

    1. 引言STM32N6 项目中,用户代码可能会比较大,此时仅用内部 SRAM 并不能满足用代码运行需求。那么,将代码放置到 PSRAM 上运行
    发表于 04-15 16:02 0次下载

    STM32F427xx/STM32F429xx微控制器:高性能与多功能的完美结合

    STM32F429IIT6.pdf 一、概述 STM32F427xx和STM32F429xx系列基于高性能的32位Arm® Cortex® - M4内核,运行频率最高可达180 M
    的头像 发表于 03-31 16:35 264次阅读

    STM32F042x4/STM32F042x6微控制器深度解析:特性、应用与设计要点

    STM32F042x4/STM32F042x6系列微控制器集成了高性能的ARM® Cortex® - M0 32位RISC内核,最高运行频率可达48 MHz。它拥有高速嵌入
    的头像 发表于 03-19 17:15 808次阅读

    LAT1621_STM32N6 在 PSRAM 上运行代码的调试

    STM32N6 项目中,用户代码可能会比较大,此时仅用内部 SRAM 并不能满足用代码运行需求。那么,将代码放置到 PSRAM 上运行也是个不错的选择。 客户在开发其产品过程中,使用了
    发表于 03-11 10:44 0次下载

    AT32F011 SRAM应用指南

    上手。 支持型号:AT32F011 系列 1 SRAM 奇校验检测简介 AT32F011 系列内置最高可达 9K 字节的片上 SRAM,起始
    发表于 03-02 11:39

    LAT1171+STM32F745 USART1 Bootloader 失败原因分析与解决

    使用 STM32F745 进行产品开发的时候,出现了使用 STM32CubeProgramer 无法通过 USART1 Bootloader 进行程序升级的问题。为了解决客户的问题,我在 NUCLEO-
    发表于 01-11 17:33 0次下载

    AT32F系列 使用DMA将数据从FLASH传输到SRAM

    IAR6/7,keil4/5)进行简单修改即可。 1.3 示例使用 1) 打开 flash_to_sram 源程序,编译后下载到实验板 2) 实验使用AT-START-F403A V1.0 开发板,故选择 AT32
    发表于 12-03 16:26

    STM32WBA65I-DK1探索套件技术解析

    STMicroelectronics STM32WBA65I-DK1探索套件采用STM32WBA65RI微控制器作为完整的演示和开发平台。该套件包括Arm^^®^^ Cortex^®^ -M33芯体(带ARM TrustZone
    的头像 发表于 10-16 09:51 975次阅读
    <b class='flag-5'>STM32WBA65I-DK1</b>探索套件技术解析

    制作STM32F1开发板的BSP失败的原因?

    stm32f1xx_hal_sram.c... \"no source\": Error:#5: cannot open source input file \"..\\libraries
    发表于 08-29 07:42

    STM32F10xxx参考手册

    STM32F1XX数据手册中文版
    发表于 07-10 16:09 10次下载

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料免费下载
    发表于 06-06 17:06 17次下载

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 8次下载