S3C2440裸机------NandFlash编程_擦除与烧写

发布者:huanli最新更新时间:2021-10-11 来源: eefocus关键字:NandFlash  编程 手机看文章 扫描二维码
随时随地手机看文章

1.擦除

NandFlash是以块为单位进行擦除的,一个块是128K,从上面的时序图我们可以看到,首先我们要发出60命令,然后发出三个行地址,然后发送D0H,然后等待擦除结束。


int nand_erase(unsigned int addr, unsigned int len)

{

int page = addr / 2048;

 

if (addr & (0x1FFFF))

{

printf("nand_erase err, addr is not block alignnr");

return -1;

}

if (len & (0x1FFFF))

{

printf("nand_erase err, len is not block alignnr");

return -1;

}

nand_select(); 

 

while (1)

{

page = addr / 2048;

nand_cmd(0x60);

/* row/page addr */

nand_addr_byte(page & 0xff);

nand_addr_byte((page>>8) & 0xff);

nand_addr_byte((page>>16) & 0xff);

 

nand_cmd(0xD0);

 

wait_ready();

 

len -= (128*1024);

if (len == 0)

break;

addr += (128*1024);

}

nand_deselect();

return 0;

}


2.烧写

从上面的时序图可以看到,要想烧写NandFlash,我们首先发出80命令,然后发出五个地址,然后开始写数据,数据写完之后发出10命令,然后开始等待烧写完成。


void nand_write(unsigned int addr, unsigned char *buf, unsigned int len)

{

int page = addr / 2048;

int col  = addr & (2048 - 1);

int i = 0;

 

nand_select(); 

 

while (1)

{

nand_cmd(0x80);

 

/* 发出地址 */

/* col addr */

nand_addr_byte(col & 0xff);

nand_addr_byte((col>>8) & 0xff);

/* row/page addr */

nand_addr_byte(page & 0xff);

nand_addr_byte((page>>8) & 0xff);

nand_addr_byte((page>>16) & 0xff);

 

/* 发出数据 */

for (; (col < 2048) && (i < len); )

{

nand_w_data(buf[i++]);

}

nand_cmd(0x10);

wait_ready();

 

if (i == len)

break;

else

{

/* 开始下一个循环page */

col = 0;

page++;

}

}

nand_deselect();

}

关键字:NandFlash  编程 引用地址:S3C2440裸机------NandFlash编程_擦除与烧写

上一篇:ARM架构与X86架构的区别
下一篇:S3C2440裸机------NandFlash编程_数据读取

推荐阅读最新更新时间:2024-11-02 13:27

技巧 2 -- 单片机 C51 & A51 编程要点总结
C51: 1、头文件:#include reg52.h (我用的是 STC 89C54RD+) 2、预定义:sbit LED = P1^0  // 定义 P1 口的 0 位为 LED   注: P1^0 这个写法,与 A51 不同(A51 是 P1.0),P1 是一组端口,端口号范围 0~7   注2:sbit 用于定义 SFR(特殊功能寄存器)的位变量,上例中 LED 作为 全局变量 进行定义   注3:以下写法是错误的:     sbit code table = {P1^0, P1^1, P1^2, P1^3};  // 想用 table 指定不同的引脚,但这么做会报错     sbit table = {P1^0
[单片机]
编程时钟发生器及其应用
    摘要: 美国CYPRESS公司的可编程时钟发生器芯片ICD2053B的结构和工作原理及其在数据采集系统中的应用。ICD2053B提供用户可编程的锁相环特性,输出可改变型任何所期望的频率值上(391kHz~100MHz)。在数据采集系统中,利用ICD2053B所具有的动态改变输出频率的能力,可实现系统的变频率采样,提高了系统的适用范围和兼容性,给设计者提供了灵活的设计自由度。     关键词: 可编程时钟发生器 ICD2053B 数据采集系统 CPLD设计 在数据采集系统中,所设计的系统应具有通用性,可根据不同的数据采集对象,产生不同的采样频率;或者系统处于不同的运动情况时,能够动态改变采样频率,即数据
[半导体设计/制造]
编程多路开关系统设计
相对于有线遥控,无线遥控不受距离的影响,完全消除了拖缆式遥控装置所带来的故障隐患,给人们的日常工作和生活带来了更多的便利。随着数字处理技术的快速发展,无线数字通信技术日趋成熟,其抗干扰能力强和易于对数字信号进行各种处理等优点,使得无线遥控系统的抗干扰性能逐步提高,安全性能大大改善。目前的无线遥控领域主要有超声波遥控、红外线遥控及无线电遥控。相对于超声波遥控和红外线遥控, 无线电遥控是利用无线电信号在空气中传播,根据无线电波的频率来遥控,可穿透一定的障碍物,传播距离较远,因此成为无线遥控领域的首选,在国防、军事、科研和日常工作生活领域应用越来越广。 采用Silicon Laboratories 研制的无线发射芯片Si4010
[单片机]
可<font color='red'>编程</font>多路开关系统设计
全球首个活体机器人诞生,支持编程
近日,美国佛蒙特大学计算机科学家和塔夫茨大学生物学家共同创造出100%使用青蛙DNA的可编程的活体机器人xenobots,这项最新的研究结果已经于1月13日在美国国家科学院院刊上发表。 干细胞是非专业细胞,具有发展为不同细胞类型的能力。研究人员从青蛙胚胎中刮取了活的干细胞,并使其孵化。然后,根据佛蒙特大学的新闻稿,这些细胞被切割并重塑成由超级计算机设计的特定“身体形态”,即“自然界从未见过的形态”。 Xenobot机器人看起来不像传统的机器人,它们没有闪亮的齿轮或机械臂。取而代之的是,它们看起来更像是一团移动的肉团。研究人员说,这是有意的,这种“生物机器”可以实现钢铁和塑料机器人通常无法做到的事情。
[机器人]
基于LabVIEW和Matlab混合编程的小波降噪方法
  本文分析了传统滤波器方法在处理非平稳信号时的缺点,研究了小波去噪的原理和方法,研究了利用LabVIEW 和Matlab混合编程的方法,将LabVIEW完美的图形编程技术和Matlab强大的的数学解算功能结合起来,实现了小波降噪的数学建模和信号图像显示。通过对振动冲击信号的滤波处理,表明了小波降噪方法在处理非平稳信号时的有效性。   0 引言   信号降噪是信号处理领域的经典问题之一。传统的降噪方法主要包括线性滤波方法和非线性滤波方法,滤波器在工作时对信号进行筛选,只让特定频段的信号通过。当信号中的有用成分和噪声成分各占不同频带,可以将噪声成分有效除去。但如果信号和噪声的频谱重叠,则经典滤波器将不起作用。这些滤波器按滤波的频
[测试测量]
基于LabVIEW和Matlab混合<font color='red'>编程</font>的小波降噪方法
C51编程13-中断篇(外部中断)
CPU在执行的过程中,一般来说都是在执行主程序(main函数里面的代码)。如果希望处理其他的功能,可以通过查询的方式进行,判断是否需要处理或者通过中断的方式,进入中断服务函数程序里面执行。 前者是在主程序中判断条件是否成立,如果成立则执行其他功能,否则不执行;后者是CPU在执行过程中,判断是否有中断标志位,响应中断进入中断服务函数,执行相关功能。 MCS-51 单片机中,有两个外部中断(INT0与INT1),中断有两种方式低电平触发与负跳变(下降沿)触发。 下面通过讲INT0说明外部中断,INT1同理。 原理图: P0连接8个LED,INT0引脚连接一个按钮连接到地。 在中断系统中,INT0设计的寄存器中
[单片机]
C51<font color='red'>编程</font>13-中断篇(外部中断)
环球仪器携两款新型号贴片机亮相美国APEX展
中国上海,2016年3月10日)环球仪器将会携同其最新开发的两款贴片机Uflex 及Flexbond ,参加在3月15至17日,于美国拉斯维加斯举行的APEX展会(展位号2441)。环球仪器在推出这两台全新型号的贴片机后,令该公司成为业内提供功能最齐全的贴片机生产商。 在APEX展会上,环球仪器将展出Uflex 模块式自动化平台,能应对全方位的贴片工序,性能表现无可比拟,但成本却仅为同类型平台的一半。至于另一同期亮相的Flexbond 热压焊机平台,则是第一台针对先进柔性电路板贴装设计的自动化及高产量平台。此外,观众在现场还可以参观环球仪器旗舰贴片机,Fuzion系列的两款产品,FuzionXC2-37 及 Fuzion
[半导体设计/制造]
环球仪器携两款新型号贴片机亮相美国APEX展
利用负载点调节功能提高机顶盒设计
  有线电视和卫星广播内容提供商正在不断向激烈竞争的市场推出新业务。这些新业务包括互联网接入、视频点播、支持 DVD/CD 播放器和硬盘驱动器等,这正在使简单的机顶盒(STB)逐步发展成为功能强大的家庭网关。这些先进的机顶盒在家中形成了一个局域网(LAN)。因此,机顶盒一般有以太网或 火线端口,或采用其它通信方式,甚至可能是蓝牙。这些更加复杂的机顶盒反过来又需要消耗更多功率。随着这些系统消耗功率的提高,系统设计师对于温度上升、产品上市时间、效率、监管机构批准、成本、上电顺序和功率因数校正(PFC)等问题也越来越担忧了。   消除这些担忧的一种方法是将电源架构从传统的多路输出反激式电源改为较高性能、更加灵活并具有负载点(PO
[家用电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved