【ARM裸板】Nor Flash基础知识与编程示例

示例代码下载

1.NOR与NAND的区别

Flash NOR NAND
接口 RAM-Like,引脚多 引脚少,复用(地址数据共用)
容量 小(1-32M) 大(128M+)
简单 复杂
发出特定命令(慢) 发出特定命令(快)
价格 较便宜
缺点 无位反转、坏块 位反转、坏块
一般存放 bootloader(关键程序) 大文件、视频
xip 可以 不可以
  • xip(eXecute In Place),即芯片内执行,指应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。flash内执行是指nor flash 不需要初始化,可以直接在flash内执行代码。但往往只执行部分代码,比如初始化RAM.

2.命令表

在这里插入图片描述

在这里插入图片描述

  • UBOOT下读写数据

2.1 读数据

  • md.b为读命令
  • mw.w为写命令
md.b 0

2.2 读ID

  • Nor手册
    • 往(555H)写入AAH
    • 往(2AAH)写入55H
    • 往(555H)写入90H
    • 读(0)得到厂家(Manifacture)ID:C2H
    • 读(1)得到设备(Device)ID:22C4/2249

在这里插入图片描述

但是由于地址是错开1位的(具体原因可查看第15章),则往CPU写的地址需要addr<<1,即(地址*2)因此:

  • UBOOT下
    • 往(AAAH)写入AAH
    • 往(554H)写入55H (这两步为解锁命令)
    • 往(AAAH)写入90H(90H为命令)
    • 读(0H)得到厂家(Manifacture)ID:C2H
    • 读(2H)得到设备(Device)ID:22C4/2249
    • 退出读ID状态(即复位)
mw.w aaa aa
mw.w 554 55
mw.w aaa 90
md.w 0 1   #读0地址1次
md.w 2 1   
mw.w 0 F0

2.3 CFI模式

CFI(Common Flash Interface)

  • Nor手册
    • 往(55H)写入98H(进入CFI模式)
    • 读(27H)得到容量2^n的n
    • 退出CFI模式(复位)
  • UBOOT下
    • 往(AAH)写入98H(进入CFI模式)
    • 读(4EH)得到容量2^n的n
    • 往(0H)写入F0H

3.基本函数

3.1 写函数

  • Nor Flash 地址线21:即可访问2M内存,0x1FFFFF,其范围地址为 0~0x1FFFFF
#define NOR_FLASH_BASE 0 /* Nor Flash基地址 nor-->cs0,base_addr = 0 */
/* Nor Flash写入一个字
 * 基地址:base,偏移地址:offset,写入的值:value
 * eg: 55 98
 * 往(0 + (0x55)<<1 )写入0x98
*/
void nor_write_word(unsigned int base,unsigned int offset,unsigned short value)
{
   
	volatile unsigned short *p = (volatile unsigned short *) (base + offset<<1);
	*p = value;
}
  • 进行封装
void nor_cmd(unsigned int offset,unsigned short cmd)
{
   
	nor_write_word(NOR_FLASH_BAS
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARM体系结构与编程PDF是一本关于ARM架构和编程的电子书,它主要介绍了ARM处理器的体系结构和相关的编程知识。 首先,ARM体系结构与编程PDF详细介绍了ARM架构的基本概念和特点。ARM架构是一种常见的嵌入式处理器架构,广泛应用于移动设备、嵌入式系统、智能家居等领域。了解ARM架构的基本概念对于学习和理解如何正确地编写ARM程序至关重要。 其次,ARM体系结构与编程PDF讲解了ARM指令集的设计和特点。ARM指令集是用于编写ARM程序的一组指令,它包括了各种数据处理、控制流和存储操作等功能。学习ARM指令集的使用方法和特点,能够帮助我们编写高效、稳定的ARM程序。 此外,ARM体系结构与编程PDF还介绍了ARM开发工具的使用。ARM开发工具是用于编写、编译和调试ARM程序的软件,例如ARM指令集模拟器、ARM汇编器和调试器等。学会使用ARM开发工具能够提高我们的ARM编程效率和调试能力。 最后,ARM体系结构与编程PDF提供了一些ARM编程示例和实践。通过这些实例和实践,我们可以深入了解如何在ARM处理器上编写各种应用程序,例如嵌入式系统的驱动程序、图像处理算法和网络通信等。这些实例和实践能够帮助我们加深对ARM编程的理解和掌握。 总的来说,ARM体系结构与编程PDF是一本系统全面介绍ARM架构和编程的电子书。通过学习和掌握其中的知识,我们可以成为一名专业的ARM程序员,并能够在各种嵌入式系统和应用中灵活运用ARM处理器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值