STM32——FLASH(1)简单介绍、分类、读写流程及注意事项

文章目录

    • FLASH的特点
    • Nor flash和nand flash
    • flash的读写
      • flash 的存储单位
    • flash的读写过程

FLASH的特点

  1. 可擦写
  2. 数据可修改
  3. 可重写
  4. 访问速度<ROM

Nor flash和nand flash

Nor flash
1、与SDRAM相似,用户可以直接运行装载到NORFLASH里面的代码,减少SRAM的容量
2、其存储并联,可实现一次性直接寻址
3、带SRAM接口,有地址引脚
4、可进行10万次擦写
5、清除数据写1

nand flash

1、大容量,改写速度快
2、产品方向:相机、MP3、记忆卡、U盘
3、存储单元:分为块、页、byte、与硬盘的扇区相同
4、引脚用的IO口,8个引脚根据厂商不同定义而不同
5、清除数据写1
6、可进行100万次擦写

flash的读写

flash 的存储单位

flash 的存储单位是–区–块–扇–页–
F1的flash最小存储单位是页
F4的flash最小存储单位是扇
对于flash的数据,都支持1、2、4字节的写入

flash的读写过程

对于读取
用指针向对应的空间地址就可以直接取数据

data *(vu*)addr;

对于写入
过程:
1、禁止中断
2、flash解锁,禁止数据缓存
3、扇区擦除并检验
4、写入数据
5、开启数据缓存
6、打开中断

flash的读写具体过程网上很多,推荐一篇文章,比较详细:https://blog.csdn.net/qq_34430371/article/details/107093288,代码可以直接用
还有一篇介绍比较详细https://blog.csdn.net/qq_36075612/article/details/124087574?ops_request_misc=&request_id=&biz_id=102&utm_term=stm32flash%E8%AF%BB%E5%86%99%E7%A8%8B%E5%BA%8F&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-124087574.142v99pc_search_result_base1&spm=1018.2226.3001.4187
这两篇都是非常好的文章值得大家学习。

注意事项
1、在擦写的过程中可以不用关闭中断,现在的单片机中有stall行为,可以看一下手册或者搜索,在擦除的过程中,是不会进行读取FLASH 操作的,简单来说擦写是互斥的。
2、当单片机中有2个以上的FLASH bank ,中断向量表在一个bank中,擦写其他bank的时候,中断响应是不受影响的。
3、flash写入的时候的限制条件:写入时的起始地址必须是4的倍数,必须在合法的写入地址内。
4、其他注意事项在下一篇:flash(2)中提及,可以看下篇文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zoho Mail企业邮箱商业扩展第3部分:计算财务状况

在Zoho Mail商业扩展系列的压轴篇章中&#xff0c;王雪琳利用Zoho Mail的集成功能成功地完成了各项工作&#xff0c;并顺利地建立了自己的营销代理机构。让我们快速回顾一下她的成功之路。 一、使用Zoho Mail成功方法概述 首先她通过Zoho Mail为其电子邮件地址设置了自定义域…

js实现LFU算法

LFU LFU算法是最近最少使用次数算法&#xff0c;针对的是使用次数&#xff1b; 补充一点&#xff1a;对于相同使用次数应该需要加上时间戳&#xff0c;看他人实现LFU算法都没有考虑这一点。 本文通过全局nextId来表示第几次使用功能&#xff1b; class LFU {constructor(capa…

spring boot打完jar包后使用命令行启动,提示xxx.jar 中没有主清单属性

在对springBoot接口中间件开发完毕后&#xff0c;本地启动没有任何问题&#xff0c;在使用package命令打包也没异常&#xff0c;打完包后使用命令行&#xff1a;java -jar xxx.jar启动发现报异常&#xff1a;xxx.jar 中没有主清单属性&#xff0c;具体解决方法如下&#xff1a;…

TI毫米波雷达开发——High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码

TI毫米波雷达开发——串口数据接收及TLV协议解析 matlab 源码 前置基础源代码功能说明功能演示视频文件结构01.bin / 02.binParseData.mread_file_and_plot_object_location.mread_serial_port_and_plot_object_location.m函数解析configureSport(comportSnum)readUartCallback…

day06.C++排序(整理)

一.直接插入排序 void Insertsort(int *a,int n){int i,j;for( i1;i<n;i){if(a[i]<a[i-1]){int tempa[i];//哨兵for( ji-1;temp<a[j];j--){a[j1]a[j];//记录后移}a[j1]temp;//插入到正确位置}} }二.希尔排序 void Shellsort(int *a,int n){for(int dltan/2;dlta>…

Linux增删ip

Linux手动增删IP by: 铁乐猫 日期&#xff1a;2022.03.17 这里主要是记录手动临时添加和删除ip。 ifconfig方式 例&#xff0c;添加&#xff1a; ifconfig eth0:1 192.168.0.101/24移除 ifconfig eth0:1 downip addr方式 添加 ip addr add 192.168.0.102/24 dev eth0 …

(2024 了,这文也太水了)审查 GAN 的 FID 和 SID 指标

Reviewing FID and SID Metrics on Generative Adversarial Networks 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 相关工作 3. 方法 4. 实验 0. 摘要 生成对抗网络&…

深入理解Java泛型:概念、用法与优势

泛型是JDK的一个特性&#xff0c;它允许在定义类、接口和方法时使用类型参数。 例如泛型类&#xff1a;在定义类时&#xff0c;可以使用类型参数来指定类中某些字段或方法的类型 public class Box<T> { private T t; public void set(T t) { this.t t; } public T …

C++之多线程(multi-thread)

理论基础 多线程编程是C中一个重要而复杂的主题。下面是一些建议和步骤&#xff0c;帮助你入门多线程编程&#xff1a; 了解基础概念&#xff1a; 线程和进程&#xff1a; 理解线程和进程的基本概念。 并发和并行&#xff1a; 区分并发和并行的概念&#xff0c;了解它们在多线…

如何利用IP定位技术锁定网络攻击者

在当今高度互联的数字世界中&#xff0c;网络安全威胁日益猖獗。为了维护网络空间的安全与稳定&#xff0c;追踪并锁定网络攻击者成为了关键一环。而IP定位技术&#xff0c;作为一种重要的追踪手段&#xff0c;正发挥着越来越重要的作用。 IP定位技术&#xff0c;简而言之&…

Django模板(二)

标签if 标签在渲染过程中提供使用逻辑的方法,比如:if和for 标签被 {% 和 %} 包围,如下所示: 由于在模板中,没有办法通过代码缩进判断代码块,所以控制标签都需要有结束的标签 if判断标签{% if %} {% endif %} : # athlete_list 不为空 {% if athlete_list %}# 输出 ath…

vue实现购物车案例

话不多说&#xff0c;先上效果图。 安装elementui组件库&#xff0c;可直接食用。 <template><div><!-- 购物车部分 --><el-container><el-header><h1>购物车案例一条龙</h1></el-header><el-main><!-- 折叠面板…

【FPGA开发】Modelsim和Vivado的使用

本篇文章包含的内容 一、FPGA工程文件结构二、Modelsim的使用三、Vivado的使用3.1 建立工程3.2 分析 RTL ANALYSIS3.2.1 .xdc约束&#xff08;Constraints&#xff09;文件的产生 3.3 综合 SYNTHESIS3.4 执行 IMPLEMENTATION3.5 烧录程序3.6 程序固化3.6.1 SPI约束3.6.2 .bin文…

特征工程:特征提取和降维-上

目录 一、前言 二、正文 Ⅰ.主成分分析 Ⅱ.核主成分分析 三、结语 一、前言 前面介绍的特征选择方法获得的特征&#xff0c;是从原始数据中抽取出来的&#xff0c;并没有对数据进行变换。而特征提取和降维&#xff0c;则是对原始数据的特征进行相应的数据变换&#xff0c;并…

Rust开发WASM,WASM Runtime运行

安装wasm runtime curl https://wasmtime.dev/install.sh -sSf | bash 查看wasmtime的安装路径 安装target rustup target add wasm32-wasi 创建测试工程 cargo new wasm_wasi_demo 编译工程 cargo build --target wasm32-wasi 运行 wasmtime ./target/wasm32-wasi/d…

猫头虎分享已解决Bug ‍ || TypeError: Object of type ‘int64‘ is not JSON serializable

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Appium使用初体验之参数配置,简单能够运行起来

一、服务器配置 Appium Server配置与Appium Server GUI&#xff08;可视化客户端&#xff09;中的配置对应&#xff0c;尤其是二者如果不在同一台机器上&#xff0c;那么就需要配置Appium Server GUI所在机器的IP&#xff08;Appium Server GUI的HOST也需要配置本机IP&#xf…

spring boot和spring cloud项目中配置文件application和bootstrap加载顺序

在前面的文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 日志配置 logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10000000 seconds" debug…

搭建kafka测试环境

搭建kafka测试环境 启动zookeeper docker pull bitnami/zookeeperdocker run -d --name zookeeper \-e ALLOW_ANONYMOUS_LOGINyes \bitnami/zookeeper:latest启动kafka 创建网络与连接 docker network create kafka-network docker network connect kafka-network zookeepe…

【小程序】基础API之系统API接口汇总

ty.env 环境变量 属性 USER_DATA_PATH string 文件系统中的用户目录路径 (本地路径)&#xff0c;当操作文件时需使用此目录。 // 写入一个文件 const fileManager await ty.getFileSystemManager(); const fileRoot ty.env.USER_DATA_PATH; const filePath ${fileRoot}…