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功能的芯片都适用。由于这一块的知识相对来说复杂一点,还有很多地方没有讲解到位,请根据提供的工程自行研究。

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

    关注

    12

    文章

    3854

    浏览量

    84650
  • STM32F10
    +关注

    关注

    0

    文章

    43

    浏览量

    15520
  • NORFlash
    +关注

    关注

    0

    文章

    21

    浏览量

    9167
收藏 人收藏

    评论

    相关推荐

    H745调试外部norflash遇到的疑问求解

    问题如下: 1.使用stm32cube,配置生成的工程,在读写norflash时,在固定位置出现写入数据错误(大部分正确,小部分错误)。然而在直接
    发表于 04-11 07:09

    使用STM32CubeMX初始化STM32F103程序代码默认打开了哪些中断?是否可以暂时性关闭?

    使用STM32CubeMX初始化STM32F103程序代码,在不使用任何外设中断的情况下,系统会默认打开哪些中断?这些中断又可以怎样暂时性关闭?
    发表于 03-11 07:22

    stm32 外部晶振不振 程序能运行吗

    由STMicroelectronics公司设计的32位ARM Cortex-M微控制器,广泛应用于各种嵌入式应用。当外部晶振无法振荡时,可能会影响STM32的正常工作。本文将探讨在外部晶振不振的情况下,
    的头像 发表于 01-04 09:33 674次阅读

    如何对norflash存储进行划分?

    请教大佬们一个问题,开发板上带的片外norflash,我想人为把它划分为几个区域,专门存放特殊的内容,例如,划一片4K区域存放各种参数、系数、常数,再划一片区域专门存放事件记录等,这些区域是不能
    发表于 12-19 10:31

    STM32移植而引发的两个小疑问

    STM32用户将基于STM32F0芯片的代码移植到STM32F4系列时遇到了些麻烦。其中有个问题跟中断处理有关。有个中断服务程序代码
    的头像 发表于 11-18 14:12 512次阅读
    因<b class='flag-5'>STM32</b>移植而引发的两个小疑问

    一分钟带你了解TSMaster小程序编辑代码智能提示功能

    本文给大家带来TSMaster小程序编辑的新功能,其中主要包含:代码编辑智能提示功能、可用外部代码编辑器编辑小程序代码并同步。本文关键字:C
    的头像 发表于 10-28 08:22 1216次阅读
    一分钟带你了解TSMaster小<b class='flag-5'>程序</b>编辑<b class='flag-5'>代码</b>智能提示功能

    STM32如何配置外部中断?STM32外部中断配置步骤

    STM32如何配置外部中断?STM32外部中断配置步骤  作为一款现代化的微控制器,STM32系列芯片在各种应用场合中广泛应用。其中最常见的
    的头像 发表于 10-26 17:47 2059次阅读

    使用大容量STM32F10xxx的FSMC驱动外部存储

    电子发烧友网站提供《使用大容量STM32F10xxx的FSMC驱动外部存储器.pdf》资料免费下载
    发表于 09-21 10:03 0次下载
    使用大容量<b class='flag-5'>STM32</b>F10xxx的FSMC驱动<b class='flag-5'>外部</b>的<b class='flag-5'>存储</b>器

    STM32F2的存储器和总线架构

    系统架构  多层AHB总线矩阵  存储空间  存储器映射  片上SRAM  位带操作  片上闪存  自适应闪存加速器(STM32F2新增)  启动模式  代码空间的动
    发表于 09-13 06:20

    CAN公交车的应用程序代码分享

    应用程序: 这个示例是 CAN 公交车的应用程序代码, 描述当公交车在设备节点发生时如何回收并让设备重新进入公交车, 以便进行包件传输和接收 。 BSP 版本:M480系列BSP CMSIS
    发表于 08-29 07:18

    西门子博途SCL:REGION:构建程序代码的步骤

    可以使用指令“构建程序代码”,在 SCL 块中构建程序代码并将其分为几个不同区域。
    的头像 发表于 07-31 09:09 4125次阅读

    NorFlash与NandFlash对比分析哪个好?

    4Mbyte的AM29lv320 NorFlash零售价在20元左右,而一片128MByte的k9f1g08 NandFlash零售价在30元左右。 NandFlash生产过程更为简单,NAND结构可以在给
    发表于 06-26 08:13

    Cortex-M0/M4芯片是否支持代码保护用户的程序代码吗?

    NuMicro™ Cortex-M0/M4芯片是否支持代码保护用户的程序代码吗?如何解开LOCK位上的用户配置字?
    发表于 06-19 06:02

    基于STM32单片机外部中断实验使用库文件设计源代码

    基于STM32单片机外部中断实验使用库文件设计源代码
    发表于 04-26 14:35 1次下载

    使用的S32K312芯片要解开程序代码中的DEBUG密码,如何实现这个功能?

    项目中使用的S32K312芯片要解开程序代码中的DEBUG密码(ADKP)。 如何实现这个功能?
    发表于 04-26 08:03