推荐

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang

前言

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

最后

我的网站:https://www.strongerhuang.com

我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

微信公众号

STM32F1_外部NorFlash存储程序代码相关推荐

  1. 外部NORFlash是第一个以硬件为基础的信任

    外部NORFlash是第一个以硬件为基础的信任 External NOR Flash memory is first with hardware root-of-trust 英飞凌科技公司宣布了它声称 ...

  2. AI框架外部用户贡献代码

    AI框架外部用户贡献代码 概述 飞桨是百度自主研发的一款开源的深度学习框架,是主流深度学习框架中首个完全国产化的产品,已经在农业.医疗.林业.科研.服务等领域成功应用.无论是已入职场的深度学习从业者. ...

  3. flash as3 android air 插入视频,FLASH加载外部影片as3代码

    FLASH加载外部影片as3代码 作者:小龙博客 2010年01月7日 没有评论 分类:AS3 学习 flash var loader:Loader=new Loader(); loader.load ...

  4. 5调用外部浏览器打开代码_浏览器事件循环

    浏览器运行过程中会同时面对多种任务,用户交互事件(鼠标.键盘).网络请求.页面渲染等.而这些任务不能是无序的,必须有个先来后到,浏览器内部需要一套预定的逻辑来有序处理这些任务,因此浏览器事件循环诞生了 ...

  5. [Linux Audio Driver] Android7 外部PA Speaker代码结构

    0. 背景 平台:MSM8953 kernel version: msm-3.18. 1. enable_spk_ext_pa 代码路径:LA.UM.5.6\kernel\msm-3.18\sound ...

  6. STM32F1_外部SRAM作为运行内存

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:h ...

  7. 【STM32】外部中断实验代码详解

    文章目录 main.c exit.c exit.h STM32 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32 的强大之处. STM32F103 的 19 个外部中断为: 线 0 ...

  8. KEIL设置使用外部编辑器进行代码编辑(以Sublime Text 3为例)

    准备 安装好KEIL 安装好第三方代码编辑软件,本文以Sublime Text 3为例,其他编辑器配置方法一样 操作步骤 打开KEIL,点击[Tools]→[Customize Tools Menu] ...

  9. 【STM32】 keil软件介绍--工程目标选项配置(上)

    转载至:https://blog.csdn.net/ybhuangfugui/article/details/51501781 Ⅰ.写在前面 Options for Target目标选项其完全意思是工 ...

最新文章

  1. 【译】理解Javascript函数执行—调用栈、事件循环、任务等
  2. graphpad柱状图怎么加图例_如何用Graphpad prism添加多个图例
  3. 8086汇编学习笔记10-端口
  4. 模拟人生4修改服务器,【M4分享】PS4主机版模拟人生4的作弊码
  5. SAP ABAP Netweaver容器化, 不可能完成的任务吗?
  6. SAP gateway里一个控制缓存行为的开关 User parameter /UI2/PAGE_CACHE_OFF
  7. python pyecharts 折线图_python数据大屏pyecharts库2020.8.31
  8. math.ceil带小数点_Python中带有示例的math.ceil()方法
  9. Java中的可变参数方法
  10. 计算机网络安全技术期末试题,归纳计算机网络安全技术期末复习试题 doc
  11. php 将网页转成pdf_利用PHP将HTML页面转换成PDF文件
  12. matlab怎么定义plot函数线的类型,matlabplot函数线型
  13. SSH远程登录原理学习
  14. vim的安装以及基础使用
  15. 移动端图片居多,加载过慢,使用延迟加载|懒加载( lazyload.js)
  16. 《Effective Modern C++》Item 6: Use the explicitly typed initializer idiom when auto deduces undesired
  17. 2020年中国德化陶瓷博览会暨茶具文化节隆重举行—五洲御瓷分会场精品荟萃
  18. Java中的可变类型与不可变类型
  19. 爱因斯坦的超级问题(谁养鱼)SQL解法
  20. Webpack搭建本地服务器

热门文章

  1. 复旦微FM25W128-SOB-T-G-Q1替代SPI FLASH
  2. 定制RLC防孤岛测试负载
  3. megaface 数据集组成,介绍,Identification/Verification逻辑
  4. Windows系统还原失败该怎么办?
  5. 芒果TV“一云多屏”的统一架构图景
  6. Android版本中蓝牙简介
  7. 2575: Moveable quadrangle with three edges
  8. 02高级语言及其语法描述
  9. Python02 雅克比迭代法 Gauss-Seidel迭代法 列选主元法 LU分解法(附代码)
  10. 奇瑞新能源销量回升,iCar或延续辉煌