当前位置: 首页 > news >正文

嵌入式:Flash的分类以及Jlink/J-flash的编程支持

相关阅读

嵌入式icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_45791458/category_12768532.html?spm=1001.2014.3001.5482


        常见的Flash大致可以分为以下大类:

  • Serial Nor Flash
  • Serial Nand Flash
  • Parallel Nor Flash
  • Parallel Nand Flash
  • Serial EEPROM

Serial Nor Flash

介绍

        Serial Nor Flash是通过串行协议通信的Flash,一般这种串行协议指的是SPI协议(包括普通SPI、 Dual-SPI、Quad-SPI和QPI)。由于拥有Nor Flash的特点,它可以像RAM那样随机数据,这就为XiP(Execute-in-Place,即直接在Flash中读取指令执行)提供了可能,但这只是必要不充分条件,还有一个条件是需要将Flash的地址空间映射到处理器的地址空间,这样的话,当处理器发出指令地址读取指令时,Flash控制器可以将其接收到的地址(可能是某几位)直接作为Flash内的地址进行读取。这对于并行协议的Flash不是什么问题,因为它们有多位宽的地址线和数据线;但对于串行协议来说,这就要求Flash控制器将其接收到的地址转化为串行数据并发送,这需要额外的硬件设计,所以一般来说只有速度较快的Quad-SPI和QPI控制器会硬件支持。

编程

        如果Flash的地址空间被映射到了处理器的地址空间(例如Quad-SPI和QPI),就可以直接使用Jlink/J-flash进行Flash编程,只需要处理器执行芯片对应相应的编程算法即可(通过Flash控制器向Flash的地址空间写数据)。

        如果Flash的地址空间没有映射到处理器的地址空间(例如普通SPI、GPIO模拟的SPI),使用Jlink/J-flash进行Flash编程时需要将地址像数据一样,通过数据总线发送给Flash控制器,这需要特殊的编程算法。

        此外,可以使用J-flash SPI对Serial Nor Flash进行直接编程(无需CPU介入,甚至可以不需要CPU),但需要特殊的引脚连接。

Serial Nand Flash

介绍

        Serial NAND Flash是基于串行协议通信的NAND Flash,一般这种串行协议指的是SPI协议(包括普通SPI、 Dual-SPI、Quad-SPI和QPI)。与Serial NOR Flash不同,NAND Flash的主要特点是较大的存储容量和较低的成本,但随机访问性能较差,这是因为NAND Flash使用的是基于块的擦写操作,其数据读写往往需要先从块级别复制到页缓冲区,再进行数据传输。Serial Nand Flash不会将Flash的地址空间映射到处理器的地址空间,自然也就不支持XiP。

编程

        由于Flash的地址空间没有映射到处理器的地址空间,使用Jlink/J-flash进行Flash编程时需要将地址像数据一样,通过数据总线发送给Flash控制器,这需要特殊的编程算法。

        此外,可以使用J-flash SPI对Serial Nand Flash进行直接编程(无需CPU介入,甚至可以不需要CPU),但需要特殊的引脚连接。

Parallel Nor Flash

介绍

        Parallel NOR Flash是基于并行协议通信的NOR Flash,这种并行协议指的是可以是CFI(Common Flash Interface)或者其他协议。处理器的片上Flash一般就是这种,而有些处理器还会提供FSMC(静态存储器控制器)以连接片外的Parallel Nor Flash。由于拥有Nor Flash的特点,它可以像RAM那样随机访问数据,并且可以很方便地将Flash的地址空间映射到处理器的地址空间,所以XiP可以被很好地支持。顺带一提,由于Serial Nor Flash开始被广泛使用,它有成为Parallel Nor Flash的替代品甚至是后继者的趋势。

编程

        由于Flash的地址空间被映射到了处理器的地址空间,可以直接使用Jlink/J-flash进行Flash编程,只需要处理器执行芯片对应相应的编程算法即可(通过Flash控制器向Flash的地址空间写数据)。

Parallel Nand Flash

        Parallel NAND Flash是基于并行协议通信的NAND Flash,这种并行协议指的是可以是ONFI(Open NAND Flash Interface)或者其他协议。有些处理器会提供FSMC(静态存储器控制器)以连接片外的Parallel Nand Flash。与Parallel Nor Flash不同,NAND Flash的主要特点是较大的存储容量和较低的成本,但随机访问性能较差,这是因为NAND Flash使用的是基于块的擦写操作,其数据读写往往需要先从块级别复制到页缓冲区,再进行数据传输。Parallel Nand Flash不会将Flash的地址空间映射到处理器的地址空间,自然也就不支持XiP。

编程

        由于Flash的地址空间没有映射到处理器的地址空间,使用Jlink/J-flash进行Flash编程时需要将地址像数据一样,通过数据总线发送给Flash控制器,这需要特殊的编程算法。

Serial EEPROM

        Serial EEPROM是基于串行协议通信的EEPROM,一般这种串行协议指的是SPI协议或IIC协议。与Flash相比,EEPROM一般容量较小,最大只有几MB。Serial EEPROM不会将其地址空间映射到处理器的地址空间,自然也就不支持XiP。

编程

        由于Serial EEPROM的地址空间没有映射到处理器的地址空间,使用Jlink/J-flash进行Flash编程时需要将地址像数据一样,通过数据总线发送给Flash控制器,这需要特殊的编程算法。

相关文章:

嵌入式:Flash的分类以及Jlink/J-flash的编程支持

相关阅读 嵌入式https://blog.csdn.net/weixin_45791458/category_12768532.html?spm1001.2014.3001.5482 常见的Flash大致可以分为以下大类: Serial Nor FlashSerial Nand FlashParallel Nor FlashParallel Nand FlashSerial EEPROM Serial Nor Flash 介绍 Se…...

【爬虫】Firecrawl对京东热卖网信息爬取(仅供学习)

项目地址 GitHub - mendableai/firecrawl: 🔥 Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API. Firecrawl更多是使用在LLM大模型知识库的构建,是大模型数据准备中的一环(在…...

遗传算法(Genetic Algorithm, GA)

简介 遗传算法(Genetic Algorithm, GA)是一种基于自然选择和遗传机制的优化算法,由 John Holland 于20世纪70年代提出。它是一种模拟生物进化过程的启发式搜索算法,被广泛应用于函数优化、机器学习、调度问题等领域。 代码说明 …...

【二分答案+倍增快速幂】课堂练习

P1678 烦恼的高考志愿 #include<bits/stdc.h> using namespace std; const int N1e55; int n,m,a[N];long long bs(int x){int l1,rn;while(l<r){int midlr>>1;if(a[mid]x) return 0;if(a[mid]>x) rmid-1;else lmid1;}//根据前驱后继返回最小差值//printf(&…...

LeetCode 力扣 热题 100道(九)反转链表(C++)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 方法一&#xff1a;迭代法 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNod…...

Linux之网络基础

网络发展 网络的发展可以从人与人之间的工作模式开始谈起, 人与人的工作模式反应了机器与机器的工作模式: 1. 独立模式: 在网络发展的早期计算机间处于独立模式, 计算机之间相互独立 最开始计算机之间是独立运行的, 数据之间的交互需要人用软盘等存储介质拷贝过去, 一般涉及…...

Oracle收缩表空间的简单方法

在Oracle数据库中&#xff0c;收缩表空间是一种常见的维护操作&#xff0c;可以回收未使用的空间&#xff0c;减少表空间的碎片&#xff0c;提高性能。以下是一些步骤和方法&#xff1a; 1. 识别未使用的空间 首先&#xff0c;需要识别表空间中未使用的空间。可以通过查询 DB…...

C++设计模式行为模式———中介者模式

文章目录 一、引言二、中介者模式三、总结 一、引言 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 中介者模式可以减少对象之间混乱无序的依赖关系&…...

YB2503HV:高效率降压IC,助力电动车、太阳能设备等领域的能源转换

今天我要向大家介绍一款引人注目的产品—— YB2503HV 100V 3A SOP8内置MOS 高效率降压IC。这款单片集成芯片具备可设定输出电流的开关型降压恒压驱动器功能&#xff0c;可广泛应用于电动车、太阳能设备、电子电池充电等领域。让我们一起来看看它的特点和应用吧&#xff01; 首先…...

如何使用Jest测试你的React组件

在本文中&#xff0c;我们将了解如何使用Jest&#xff08;Facebook 维护的一个测试框架&#xff09;来测试我们的React组件。我们将首先了解如何在纯 JavaScript 函数上使用 Jest&#xff0c;然后再了解它提供的一些开箱即用的功能&#xff0c;这些功能专门用于使测试 React 应…...

微网能量管理研究

微网能量管理研究的重点 微网系统的建模 建立分布式能源单元模型以及微网系统的整体运行、协调控制和优化配置等方面的模型 分布式电源控制策略 微网内分布式电源及储能系统运行依赖于电力电子接口技术&#xff0c;需要相应的充放电控制策略 再生能源发电预测 准确预测太阳能…...

Java基础面试题02:简述什么是值传递和引用传递?

面试题&#xff1a;简述什么是值传递和引用传递&#xff1f; 什么是值传递&#xff1f; 值传递&#xff08;pass by value&#xff09;是指在调用函数时&#xff0c;把实际参数的值复制一份传递给函数。换句话说&#xff0c;函数内部对参数的任何修改&#xff0c;都不会影响到…...

【STL】10.set与map的模拟实现

一、源码及框架分析 SGI-STL30版本源代码&#xff0c;map和set的源代码在map/set/stl_map.h/stl_set.h/stl_tree.h等及个头文件中。 map和set的实现结构框架核心部分截取出来如下&#xff1a; // set #ifndef __SGI_STL_INTERNAL_TREE_H #include <stl_tree.h> #endif …...

Playwright(Java版) - 8: Playwright 元素交互的高级应用

在自动化测试中&#xff0c;处理复杂的页面交互是常见的需求。例如&#xff0c;应对动态加载的元素、处理弹窗与对话框、模拟拖放操作&#xff0c;甚至在绘图板上进行绘图操作。 1 动态元素与弹窗处理 1.1 动态元素的加载与等待 动态页面可能会导致元素在操作时尚未完全加载&…...

播放器开发之ffmpeg 硬件解码方案

硬件编解码的概念 硬件编解码是⾮CPU通过烧写运⾏视频加速功能对⾼清视频流进⾏编解码&#xff0c;其中⾮CPU可包括GPU、FPGA或者 ASIC等独⽴硬件模块&#xff0c;把CPU⾼使⽤率的视频解码⼯作从CPU⾥分离出来&#xff0c;降低CPU的使⽤负荷&#xff0c;使得平台能 ⾼效且流畅…...

n、nvm、nrm、pnpm、yarn各种指令大全

n mac的版本管理工具&#xff08;可能与nvm冲突&#xff09; 安装 # 使用 npm / yarn npm i -g n yarn global add n # 使用 brew brew install n环境变量 export PATH"/usr/local/n/versions/node:$PATH"命令详解 版本查看 # 查看 n 版本 n --version/-V # 查…...

数据库管理-根据日期字段进行数据筛选更新数据

项目场景 数据插入、更新、查询 数据库中一张审计表格用来记录数据的操作包括数据的id&#xff0c;数据名称sjmc&#xff0c;数据状态sjzt&#xff0c;数据创建时间createtime&#xff0c;数据更新时间updatetime。 具体需求如下&#xff1a; 根据数据名称更新sjzt和update…...

03. 运算符

一、运算符与表达式 运算符 就是对字面量或者变量进行操作的符号&#xff1b;表达式 是指用运算符把字面量或者变量连接起来&#xff0c;符合 Python 语法的式子。不同运算符连接的表达式体现的是不同类型的表达式&#xff1b;Python 中的运算符主要包括 算术运算符、赋值运算符…...

【最优清零方案——贪心+滑动窗口+线段树】

题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e6 10; int a[N]; struct node {int l, r;int m, p, lazy; } tr[4 * N]; void pushup(node &u, node &l, node &r) {if (l.m r.m){u.m l.m;u.p max(l.p, r.…...

一个点绕任意点旋转后的点的坐标

在平面坐标上&#xff0c;任意点P(x1,y1)&#xff0c;绕一个坐标点Q(x2,y2)逆时针旋转θ角度后,新的坐标设为(x, y)的计算公式&#xff1a; x (x1 - x2)*cos(θ) - (y1 - y2)*sin(θ) x2 ; y (x1 - x2)*sin(θ) (y1 - y2)*cos(θ) y2 ; 另一个场景应用&#xff0c;坐标轴绕…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...