STM32F1_外部NorFlash存储程序代码

发布者:快乐之源最新更新时间:2017-09-15 来源: eefocus关键字:STM32F1  外部NorFlash  存储程序代码 手机看文章 扫描二维码
随时随地手机看文章

前言

今天总结“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  外部NorFlash  存储程序代码 引用地址:STM32F1_外部NorFlash存储程序代码

上一篇:STM32F1_外部SRAM作为运行内存
下一篇:UCOS2_STM32F1移植详细过程(三)

推荐阅读最新更新时间:2024-03-16 15:37

STM32F1--串口通讯实验
串口通讯实验–通讯的基本概念 通讯的基本概念 1、串行通讯 2、并行通讯 3、异步通讯 4、同步通讯 5、单工、半双工、全双工 串口通讯实验–USART介绍 串口通讯简介 一般采用的是标准的电气标准,但是采用的协议没有标准规定,但是,我们一般都采用96N81 的标准(9600波特率, N 无校验位, 8 位数据位,1位停止位) 串口通讯一般当采用的引脚只有三个,所以 TXD RXD SGND 这三个 USART 同步异步收发器 USART的结构框图 关于波特率的相关问题 串口通讯实验–USART 的配置步骤 step1 使能串口时钟概念和对应的串口引脚 step2 初始化串口参数 停
[单片机]
STM32F1--串口通讯实验
STM32F1使用PA15做普通IO口的配置
PA15管脚默认为JTAG接口的JTDI,做普通IO口使用时需Remap,否则将出现一直输出高电平的情况。 配置代码: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关键,禁用JTAG 只使用SWD GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitS
[单片机]
<font color='red'>STM32F1</font>使用PA15做普通IO口的配置
UCOS2_STM32F1移植详细过程(一)
Ⅰ、概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。 UCOS移植相关平台: 系统平台:µC/OS-II (最新V2.92版) 硬件平台:STM32F1 (适合F1所以系列) 开发平台: Keil(MDK-ARM) V5 1.为什么是 µC/OS -II? 原因在于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。但你掌握了µC/OS-II,µC/OS-III很容易就理解了。 2.为什么是STM32F1? 硬件平台是在移植的过程中比较重要的一点,也就是说,不同的硬件平台,移植过程中的端口(uCOS-II\Ports下源文件)存在一定的
[单片机]
UCOS2_STM32F1移植详细过程(一)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved