| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 嵌入式linux学习笔记 1-15 Nor FLash原理即硬件操作 -> 正文阅读 |
|
[系统运维]嵌入式linux学习笔记 1-15 Nor FLash原理即硬件操作 |
目录 ?2.3 Nor Flash的两种规范,jedec, cfi(common flash interface) 1. NorFlash与NandFlash的特点
因此根据他们的这些特点,当为了系统的稳定,一些关键性的程序,如BIOS,bootloader会存储在Nor Flash中;NandFlash会存储一些海量数据,如视频监控等。 2. 使用U-boot体验Nor Flash操作2.1 读数据????????使用“md.b +地址 +指令”指令来读取数据。如下图所示,读取0地址的数据,实际与我们烧写的U-boot.bin中的二进制数据一致。 2.2 读ID??????? 如下表所示,往555H写AAH,往2AAH写55H,往555H写90H(这段操作称为解锁),最后读0地址得到厂家ID,读1地址得到设备ID。
??????? 写数据的指令为“mw.w + 地址 + 指令”。eg. mw.w aaa aa ??????? 输入以下指令。 ? ?2.3 Nor Flash的两种规范,jedec, cfi(common flash interface)????????一种是 jedec 探测,就是在内核里面事先定义一个数组,该数组里面放有不同厂家各个芯片的一些参数,探测的时候将 flash 的 ID 和数组里面的 ID 一一比较,如果发现相同的,就使用该数组的参数。jedec 探测的优点就是简单,缺点是如果内核要支持的 flash 种类很多,这个数组就会很庞大。内核里面用 jedec 探测一个芯片时,是先通过发命令来获取 flash 的 ID,然后和数组比较,但是 flash.c 中连 ID 都是自己通过宏配置的。 ????????一种是 CFI(common flash interface)探测,就是直接发各种命令来读取芯片的信息,比如 ID、容量等,芯片本身就包含了电压有多大,容量有有多少等信息。
注:若进入cfi模式但是不退出的话,会影响之后芯片对指令的响应。所以一定要记得退出cfi模式,也就是reset。 2.4 NorFlash写数据??????? 之前介绍NorFlash并不能随意写。根据手册,norflash也要经过解锁以后才能往地址写入数据, 而且解锁之前还需要擦除地址上的数据才能写入成功。
?????????2440的A1接到NOR的A0,所以2440发出(555h<<1), NOR才能收到555h这个地址
???????? 3.硬件知识??????? 一个NorFlash含有1个或多个region,一个region内含有一个或多个block(扇区)。如下图所示,通过访问0x2C地址可以看到共有4个扇区。 ???????? 关于扇区内的信息内容,表中提示我们要按照CFI pubulication 100来理解,以下截自CFI pubulication 100,来源:https://wenku.baidu.com/view/cd1c1e22482fb4daa58d4b42.html ??????? 规则是低两字节加一代表扇区的个数,高两字节乘256代表扇区的大小。 4. 编程中注意事项1. 编译程序时加上: -march=armv4 2. 把timer中断去掉 3. 关于地址 ??????? 由于位宽的不同,NorFlash是16Bit的,所以地址总线的A1接的是NorFlash的A0。因此当我们要写NorFlash上的某些位的时候是,是从NorFlash的角度出发的,比如要修改Norflash上555的值,时间是CPU是要写1110的值,才能实现,所以每次要改Norflash的值都要人为地将地址<<1。但是如果是本来要改的值就是CPU地址上的值,那就只是按正常的来就可以了,比如要修改CPU ? 4. 判断NorFlash是否擦写完毕 ????????查MX29LV800BT/BB datasheet第16页可知: ? ? 功能说明:用户可以通过查询第I位切换指示是否有自动程序或擦除算法正在进行或完成。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 9:47:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |