前言
今天总结“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 外部NorFlash存储程序代码” 我把重要的几点在下面分别讲述:
一、获取现成文件
我们使用官方标准库,拷贝标准库FSMC例程里面现成的算法。拷贝“编程算法”到keil安装目录x:\Keil_v5\ARM\Flash里面,拷贝“FLASH_NOR.ini”到我们自己创建的工程里面(随便一个位置,方便调用,我们工程是在“\Libraries\CMSIS\DeviceSupport\startup”下面)。
二、配置Nor地址
配置Nor地址,见下图。
注意:图中1,2不要勾上。
三、配置编程算法
拷贝了“编程算法”就可以看见算法文件。
四、初始化NOR
路径就是上面你拷贝的路劲。
五、配置需要储存外部Nor的代码
六、打印(测试)结果
通过测试函数和依次打印的数据可以看得出外部Nor的地址是0x6400xxxx,而内部Flash地址的0x0800xxxx。说明外部Nor函数确实储存在外部NorFlash里面。
七、今天的重点
A.有人觉得很奇怪,不是程序存储在外部Nor吗? 为什么还是有程序存储在内部Flash呢? 答案是:内部FLASH必须要有一部分程序来配置FSMC,这样才能使用FSMC控制读取外部Nor程序。
说明
今天提供的软件工程基于STM32F103大容量芯片,中等及小容量芯片没有FSMC功能,自然也不能使用。其实只要适当修改工程的部分配置,STM32F1有FSCM功能的芯片都适用。由于这一块的知识相对来说复杂一点,还有很多地方没有讲解到位,请根据提供的工程自行研究。
上一篇:STM32F1_外部SRAM作为运行内存
下一篇:UCOS2_STM32F1移植详细过程(三)
推荐阅读最新更新时间:2024-03-16 15:37
设计资源 培训 开发板 精华推荐
- 【中秋佳节话中秋】吃吃月饼聊聊天,还有抢楼好礼送给你!
- 了解设计完整AC-DC系统的快速低风险方法,轻松答题赢好礼
- “慧眼”识PCIe——阅读《PCIe要了解的十件事》和泰克OPEN-DAY的培训资料 抽奖、分享赢好礼!
- 免费申请|兆易创新GD32L233尝鲜体验,开启节能“芯”时代!
- 领跑2021,你准备好了么?领取下载积分,点燃学习小宇宙!
- 看展闯关赢好礼|MPS 芯云展厅与您不见不散!
- 全新吉时利4200A SCS参数分析仪震撼上市,邀您参与翻盖有礼!
- 赛灵思网络通信专题有奖问答
- 拆招有礼:洞悉电子产品中的大数据,招招解决测量难题!Keysight DAQ970系列活动
- Littelfuse第3期:新型SSA系列双端超低分流电阻器