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

    文章

    4353

    浏览量

    86113
  • STM32F10
    +关注

    关注

    0

    文章

    45

    浏览量

    15645
  • NORFlash
    +关注

    关注

    0

    文章

    24

    浏览量

    9269
收藏 人收藏

    评论

    相关推荐

    关于cc2541程序代码样例

    CC2541哪里有cc2541的模数转换模块和蓝牙模块的程序代码样例呀?初学不懂
    发表于 01-20 07:14

    STM32F103×8/STM32F103×B MCU手册

    1. Q: STM32F103C8T6如何正确配置时钟系统?A: STM32F103C8T6的时钟系统配置通常涉及HSE(高速外部时钟)、HSI(高速内部时钟)、PLL(相位锁定环)等
    发表于 11-18 15:14 0次下载

    单片机的存储空间不够用了,有哪些解决办法?

    当单片机的存储空间不足时,可以考虑几种解决方法。一种是优化程序代码,删除不必要的代码和变量,提高代码的效率和紧凑性;可以采用外部
    发表于 10-15 22:33

    外部存储器有哪些

    外部存储器是指用于存储数据的独立设备,它们通常与计算机或其他电子设备连接,并提供额外的存储空间,允许用户在不改变主设备内部存储的情况下保存和
    的头像 发表于 09-05 10:42 2951次阅读

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过一定的方式传输到单片机的存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器或者编程器等设备,通过一定的接口与单片机进行通信。 单片机
    的头像 发表于 09-02 09:54 599次阅读

    TMS320C6657 + MSMC通过MPAX进行内存映射 + 使用norflash存储程序

    MSMC一开启MPAX的内存映射,就会影响norFLASH的读写,我自己检查了下,写或读norflash使用的是DDR3的内存,不明白操作MSMC的内存映射对这个为什么有影响
    发表于 08-14 10:36

    外部存储器是ROM还是RAM

    外部存储器通常指的是计算机系统中除了主存(RAM)以外的存储设备,如硬盘、固态硬盘(SSD)、USB闪存驱动器、光盘等。它们主要用于长期存储数据和
    的头像 发表于 08-06 09:13 1860次阅读

    自制一款兼容STM32F1/F4芯片的飞控板

    自己制作的一款兼容STM32F1/F4芯片的飞控板。
    发表于 07-04 14:07 0次下载

    STM32F103xC,STM32F103xD,STM32F103xE中文资料

    电子发烧友网站提供《STM32F103xC,STM32F103xD,STM32F103xE中文资料.pdf》资料免费下载
    发表于 06-17 14:12 4次下载

    求助,关于STM32F746G-EVAL开发板上NorFlash的问题求解

    STM32F746G-EVAL开发板上外接PC28F128M29EWLA的NorFlash芯片,根据官方的原理图F7管脚(/BYTE)接上拉电阻,BYTE#根据手册定义Byte/wor
    发表于 05-13 08:47

    求助,关于NorFlash DQ6Toggle bit的问题求解

    在使用STM32746G-EVAL进行NORFlash测试时,发现在禁止异步等待的情况下,调用HAL_NOR_GetStatus的时候,来判断NORFLAHS的忙闲状态,连续读取Nor Flash
    发表于 05-11 08:17

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

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

    STM32f103触发外部中断后再检测断开异常的原因?怎么解决?

    判定IO口状态时,检测到信号端口值为1,偶尔出现为0的情况,目前很费解,明明下降沿中断已经进来了,但是读取端口的状态确和预想的不一样,下面是初始化和检测部分的代码 IO端口初始化程序 外部
    发表于 03-25 08:08

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

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

    用USB转TTL线怎么把程序烧写到stm32f103C8T6中

    用USB转TTL线怎么把程序烧写到stm32f103C8T6中  将程序烧写到STM32F103C8T6芯片中需要使用USB转TTL线连接计算机和开发板,并使用适当的软件来进行编程和烧
    的头像 发表于 01-31 15:46 7534次阅读