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

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

3天内不再提示

STM32F1_ 外部NorFlash存储程序代码

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

扫码添加小助手

加入工程师交流群

前言

今天总结“STM32F103外部NorFlash存储程序代码”。今天提供的实例工程是存储程序代码到外部NorFlash,并执行外部NorFlash的代码(既然存储了程序代码,那么肯定也会运行NorFlash的程序)。对于储存在外部NorFlash的程序可以通过多种途径,今天主要使用MDK-ARM工具下载程序到外部NorFlash,但是需要“编程算法”,但这些算法官方都已经写好了的,我们只需要配置一下,直接使用就是了。

NOR FLASH是很常见的一种存储芯片,掉电不会丢失数据。 NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行。这点和NAND FLASH不一样。因此,在嵌入式系统中,NOR FLASH很适合作为程序的存储介质。 NOR FLASH的读取和RAM很类似,但不可以直接进行写操作。对NOR FLASH的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作

下载

今天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。

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

https://yunpan.cn/cSSbuXYC82jNu访问密码 8967

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

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

内容讲解

工程概要说明: 例程定义了两个函数“Nor_Fun”存储在外部NorFlash,即外部NorFlash程序,定义一个函数“Flash_Fun”储存在内部FLASH,通过执行这三个函数,再打印它们函数接口对应的地址,这样就可以检测这三个函数储存的位置了。

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

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

一、获取现成文件

我们使用官方标准库,拷贝标准库FSMC例程里面现成的算法。拷贝“编程算法”到keil安装目录x:\Keil_v5\ARM\Flash里面,拷贝“FLASH_NOR.ini”到我们自己创建的工程里面(随便一个位置,方便调用,我们工程是在“\Libraries\CMSIS\DeviceSupport\startup”下面)。


二、配置Nor地址

配置Nor地址,见下图。

注意:图中1,2不要勾上。


三、配置编程算法

拷贝了“编程算法”就可以看见算法文件。

四、初始化NOR


路径就是上面你拷贝的路劲。

五、打印(测试)结果


通过测试函数和依次打印的数据可以看得出外部Nor的地址是0x6400xxxx,而内部Flash地址的0x0800xxxx。说明外部Nor函数确实储存在外部NorFlash里面。

说明

今天提供的软件工程基于STM32F103大容量芯片,中等及小容量芯片没有FSMC功能,自然也不能使用。其实只要适当修改工程的部分配置,STM32F1有FSCM功能的芯片都适用。由于这一块的知识相对来说复杂一点,还有很多地方没有讲解到位,请根据提供的工程自行研究。

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

    关注

    13

    文章

    4940

    浏览量

    90416
  • STM32F10
    +关注

    关注

    0

    文章

    49

    浏览量

    16354
  • NORFlash
    +关注

    关注

    0

    文章

    26

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从 QuadSPI 外部闪存如何启动应用程序的正确程序

    亲爱的大家, 我写信给您是因为我在开发应用程序固件时遇到了问题,该固件使微控制器能够从外部 qspi 闪存启动应用程序代码。特别是,我正在尝试在我的定制 MK81 原型板上复制以下示例:
    发表于 05-29 06:52

    极海APM32F4xx MCU的SMC SRAM使用介绍

    。APM32F4xx SMC 内部有四个存储块,每个存储块都对应控制不同类型的存储器,通过配置 SMC 控制寄存器选择不同的存储器类型;任
    的头像 发表于 05-27 11:25 2422次阅读
    极海APM32<b class='flag-5'>F</b>4xx MCU的SMC SRAM使用介绍

    请问使用HPM6750连续读取norflash程序会跑飞,是什么原因?求解

    使用这个读norflash函数 int norflash_read(uint32_t offset, void *buf, uint32_t size_bytes) { hpm_stat_t
    发表于 04-08 23:12

    为Wi-Fi通讯和USB蓝牙通信控制设计并支持大型程序代码的指纹芯片-P1032BF1

    指纹芯片 - P1032BF1是一款基于ARM Cortex-M3的单片机,专为Wi-Fi /蓝牙通信控制而设计;能够实现指纹的图像采集、特征提取、特征比对,可应用于智能锁;支持大型程序代码和拥有大型嵌入式SRAM,也可用于一般的MCU应用。
    的头像 发表于 01-27 09:46 365次阅读
    为Wi-Fi通讯和USB蓝牙通信控制设计并支持大型<b class='flag-5'>程序代码</b>的指纹芯片-P1032BF<b class='flag-5'>1</b>

    Vivado+Vitis将程序固化的Flash的操作流程

    ZYNQ 的程序固化是指将程序代码永久存储到非易失性存储器中,使系统上电后能自动加载运行的过程。主要固化方式:QSPI Flash固化:常用方式,容量小,如启动
    的头像 发表于 01-20 16:17 1116次阅读
    Vivado+Vitis将<b class='flag-5'>程序</b>固化的Flash的操作流程

    瑞萨RA系列FSP库开发实战指南之常用存储器介绍

    存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。基本的
    的头像 发表于 01-12 06:21 7565次阅读
    瑞萨RA系列FSP库开发实战指南之常用<b class='flag-5'>存储</b>器介绍

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

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

    CW32F030片上FLASH闪存存储器物理区域的划分

    域主要用于存放应用程序代码和用户数据,用户可编程。 2、启动程序存储器,共 2.5KB,地址空间为 0x0010 0000 - 0x0010 09FF。该区域主要用于存储 BootLo
    发表于 12-23 08:28

    STM32 EEPROM存储扩展板技术解析与应用指南

    STMicroelectronics X-NUCLEO-EEICA1 I²C EEPROM存储器扩展板非常适合用于M24256E-F和M24M01E-F系列I^2^C EEPROM
    的头像 发表于 10-21 16:22 1103次阅读
    ‌<b class='flag-5'>STM32</b> EEPROM<b class='flag-5'>存储</b>扩展板技术解析与应用指南

    嵌入式系统中,FLASH 中的程序代码必须搬到 RAM 中运行吗?

    嵌入式系统里,FLASH 中的程序代码并非必须搬到 RAM 中运行,这得由硬件配置、实际性能需求和应用场景共同决定。就像很多低端单片机,无论是依赖片内 Flash 还是外挂的 SPI NOR
    的头像 发表于 08-06 10:19 1610次阅读
    嵌入式系统中,FLASH 中的<b class='flag-5'>程序代码</b>必须搬到 RAM 中运行吗?

    请问如何创建在 RAM 区域完全独立运行的闪存驱动程序代码

    我在开发闪存驱动程序代码时遇到了一个问题。我将准备好的HEX文件写入指定的RAM区域,并尝试使用指针调用,但调用失败,无法正常擦除或写入。对于flash的操作代码已经通过了单独的测试,为了使其更加
    发表于 07-25 07:33

    STM32F10xxx参考手册

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

    如何根据具体需求选择辉芒微8位MCU的型号?

    选择辉芒微 8 位 MCU 型号做产品项目开发时,需要考虑以下几个方面,捷尚微技术工程师老唐跟你来分享一下。 一、存储容量 1程序存储: 根据程序
    的头像 发表于 06-27 14:25 912次阅读

    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次下载