u-boot的norflash驱动分析,以及一些调试信息

2023-11-13

Flash 存储器接口还有两个标准:CFIJEDEC

CFI为公共Flash接口[Common Flash Interface] 用来帮助程序从Flash芯片中获取操作方式信息,而不用在程序中硬编码FlashID

    JEDEC用来帮助程序读取Flash的制造商ID和设备ID,以确定Flash的大小和算法,如果芯片不支持CFI,就需使用JEDEC了。

    CFI Flash
    自从Intel公司于1988年推出了可快速擦写的非易失性存储器Flash   Memory以来,快速擦写存储器Flash Memory技术就得到了非常迅速的发展。这主要是由于Flash   Memory具有不需要存储电容器、集成度更高、制造成本低于DRAM、使用方便,读写灵活、访问速度快、断电后不丢失信息等特点。

    虽然Flash  Memory应用越来越广泛,但由于生产Flash   Memory的半导体制造商众 多,不同厂商Flash  Memory产品的操作命令集和电气参数又千差万别,这给Flash   Memory的开发设计人员和OEM制造商带来许多不便。为了对现有的Flash   Memory的产品进行升级或使用其它公司的Flash  Memory产品替换,必须对原有的程序代码和硬件结构进行修改。为解决上述原因所引发的问题,迫切需要Flash   Memory制造商提出一个公共的标准解决方案,在这样的背景下,公共闪存接口(Common Flash  Interface),简称CFI 诞生了,CFI是一个公开的标准的从Flash   Memory器件中读取数据的接口。它可以使系统软件查询已安装的Flash   Memory器件的各种参数,包括器件阵列结构参数、电气和时间参数以及器件支持的功能等。利用CFI可以不用修改系统软件就可以用新型的和改进的产品代替旧版本的产品。例如:如果新型的Flash   Memory的擦除时间只有旧版本的一半,系统软件只要通过CFI读取新器件的擦除时间等参数,修改一下定时器的时间参数即可。

JEDEC
    Joint Electron Device Engineering Council 即电子元件工业联合会。JEDEC是由生产厂商们制定的国际性协议,主要为计算机内存制定。工业标准的内存通常指的是符合JEDEC标准的一组内存。

 

u-boot-2009.03为例U-Boot本身支持CFI接口规范的闪存涉及到的文件主要包括drivers/mtd/cfi-flash.ccomrhand/cmd_flash.c

 

假设要使用两片Intel 28F128K18C的兼容CFI标准的NOR型闪存,单片容量为16MB,数据线宽度为16-bit,两片并作一个32MB容量的数据宽度为32-bitBANK来使用。在头文件include/flash.h中没有定义该芯片的相关信息,可以手动添加;这并不是必须的,如果你并不需要使用这些信息的话(例如将CFI驱动所检测到的Device Id与头文件中定义的Device ID进行比对与验证)

 

/* file : include/flash.h */

 

#define INTEL_ID_28F128K18 0x88068806 /* added by aaron */

 

#define FLASH_28F128K18 0x00BA /*Intel 28F128K18 (128M=8Mx16)*/

 

要使用U-Boot自带的CFI闪存驱动,必须要作的是在

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

u-boot的norflash驱动分析,以及一些调试信息 的相关文章

  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 使用 flash 或 java servlet 将麦克风数据从浏览器上传到服务器的教程? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 There was a question on how to get data from a microphone on a client
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • Flash ActionScript 2 的压缩和解压缩工具

    您是否知道 flash actionscript 2 的任何 zip unzip 组件或脚本 我知道这个图书馆 http ntt cc 2008 01 19 actionscript class library fzip html对于 Fl
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不

随机推荐

  • vue element的el-select下拉框赋值之后无法选择

    watch监听form applicant applyUnit里值的变化 赋值给form project disposalType 但发现下拉框不能再次选择 watch form applicant applyUnit handler va
  • 2013年9月22日星期日(准备工作:分离ddraw的math和interface)

    在之前 要进行下封装 好吧 先加个类 ddraw math类吧 顺便把ddraw引擎中的几个矩阵弄到ddraw math类中来 让接口和数学相分离开 头文件有这些 pragma once a 2D vertex typedef struct
  • 表单提交时,get,post用哪种方式,如何设定?

    一般来说 使用 HTTP 的 POST 方法来提交表单 因为 POST 方法可以将表单数据作为请求正文发送到服务器 而 GET 方法将表单数据包含在请求 URL 中 在 HTML 中 可以通过在
  • 【裸机开发】UART 串口通信(二)—— 使用 UART 收发数据

    这节其实就是在对上一篇文章涉及到的一些操作进行整理和归纳 不一定完全按照上一篇的顺序来 目录 一 UART IO 初始化 二 UART 初始化 1 打开 关闭串口 2 软件复位 3 总结 UART 初始化 三 接收数据 四 发送数据 一 U
  • 【STM32】LCD液晶显示

    作者 一只大喵咪1201 专栏 STM32学习 格言 你只管努力 剩下的交给时间 LCD显示 LCD简介 TFTLCD驱动原理 ILI9341 液晶控制器简介 液晶屏的信号线及 8080 时序 使用 STM32 的 FSMC 模拟 8080
  • C语言知识小结(七)

    共用体 共用体是一种数据结构 结构体和共用体的区别 结构体 结构体的各个成员会占用不同的内存 互相之间没有影响 结构体占用的内存大于等于所有成员占用的内存的总和 成员之间可能存在缝隙 共用体占用的内存等于最长的成员占用的内存 共用体 共用体
  • AtomicStampedReference、AtomicMarkableReference源码分析,解决cas ABA问题

    cas的ABA问题就是 假设初始值为A 线程3和线程1都获取到了初始值A 然后线程1将A改为了B 线程2将B又改回了A 这时候线程3做修改时 是感知不到这个值从A改为了B又改回了A的过程 AtomicStampedReference 本质是
  • L1-044 稳赢(Python实现) 测试点全过

    前言 color Blue 前言 前言 本系列题使用的是 PTA中的团体程序设计天梯赛 练习集 的题库 难度有L1 L2 L3三个等级 分别对应团体程序设计天梯赛的三个难度 如有需要可以直接查看对应专栏 发布个人的刷题笔记的同时 也是希望可
  • PicGo工具配置Gitee图床仓库

    PicGo工具配置Gitee图床仓库 1 图床的作用 2 用到的工具 3 各工具的下载及安装 3 1 PicGo 3 1 1 PicGo下载 3 1 2 PicGo安装 3 2 Node js 3 2 1 Node js下载 3 2 2 安
  • Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置

    Vmware 虚拟平台监控 邮件告警 企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档 官方提供了 Vmware 虚拟机监控模板 并对模板进行了解释说明 但未对相应名词做解释 如果不了解 Vmware 组件 可
  • UNITY 对话系统

    1 准备工作 创建一个画布 Canvas 画布中创建一个面板 Panel 面板中放个文本框 TEXT 和两个按钮 Button 一个用于直接关闭 另一个用于点击之后继续说下句话 和一个挂载脚本的空物体 更名为DialogManager 2
  • vscode编辑器个人性化配置,用于vue、react+eslint代码规范

    vscode是编辑器setting json配置 workbench sideBar location left editor fontSize 18 editor tabSize 2 editor formatOnSave true 每次
  • element ui 原理简单分析

    配置文件 这里大致说一下开发过程中经常用到的配置 config dev env js 这里是开发过程中需要修改的一个地方 use strict const merge require webpack merge const prodEnv
  • es备份数据和恢复数据

    1 fs方式 备份到本地挂载的硬盘 1 创建一个仓库 PUT snapshot my backup type fs settings location mount my backup 上面代码创建一个名为 my backup 的备份 存放在
  • 15款最好的Windows安全检测工具

    2006 05 09 13 29 Kevin Beaver TechTarget 你想测试你的Widnows系统的安全性吗 如果你选对了工具 其实这是一件非常有趣的工作 如果你正为挑选合适的工具而苦恼 那就让本文给你一些帮助吧 关于安全测试
  • URL中的+,空格,/,?,%,#,&,= 及转义处理

    URL出现了有 空格 等特殊符号的时候 可能在服务器端无法获得正确的参数值 如何是好 解决办法 将这些字符转化成服务器可以识别的字符 对应关系如下 URL中的特殊字符 有些符号在URL中是不能直接传递的 如果要在URL中传递这些特殊符号 那
  • nginx 之优雅的关闭worker进程

    1 设置定时器 worker shutdown timeout 2 关闭监听句柄 3 关闭空闲连接 4 在循环中等待全部连接关闭 5 退出进程
  • Java比较两个对象是否相同并获得不同的字段

    在使用数据库以及做详细的权限控制的时候 遇到要比较两个对象的情况 获得两个对象是否相同以及有那些字段被修改了 以判断用户是否有权限修改对象 apache commons提供的只有collections的对比 因此 本文利用jackson将对
  • KaTeX使用

    前言 在 KaTeX KaTeX KATE X官网 有两张支持表 这里搬运过来以便于大家能够正确使用指令 这张表应该涵盖了纯 KaTeX KaTeX KATE X所有的功能 当然
  • u-boot的norflash驱动分析,以及一些调试信息

    Flash 存储器接口还有两个标准 CFI和JEDEC CFI为公共Flash接口 Common Flash Interface 用来帮助程序从Flash芯片中获取操作方式信息 而不用在程序中硬编码Flash的ID JEDEC用来帮助程序读