标题:
ARM9 处理器 C语言编程标准教程 08
[打印本页]
作者:
samwalton
时间:
2013-5-19 09:41
标题:
ARM9 处理器 C语言编程标准教程 08
应用 Nand 的困难在
于Flash 的管理和需要特殊的系统接口。
1.
性能比较
Flash
闪存是非易失存储器,可以对称作块的存储器单
元块进行擦写和再编程。由于任何 Flash 器件的写入操作
只能在空或已擦除的单元内进行,所以大多数情况下,在
进行写入操作之前必须先执行擦除。 Nand 器件执行擦除操
作是十分简单的,而 Nor 则要求在进行写入前先要将目标
块内所有的位都写为 0。
由于擦除
Nor 器件时是以 64KB~128KB 的块进行的,执
行一个写入 /擦除操作的时间为 5s 5s,与此相反,擦除 ,Nand
器件是以 8KB~32KB 的块进行的,执行相同的操作最多只
需要 4ms 。执行擦除时块尺寸的不同进一步拉大了 Nor 和
Nand 之间的性能差距,统计表明,对于给定的一套写入操
作,尤其是更新小文件时,在基于 Nor 的单元中进行需要
更多的擦除操作。这样,当选择存储解决方案时,设计师
必须权衡以下的各项因素:
. Nor
的读速度比 Nand 稍快一些。
. Nand 的写入速度比 Nor 快很多, Nand 的4ms 擦除速度远比
Nor 的5s 快。
. 大多数写入操作需要先进行擦除操作。
. Nand 的擦除单元更小,相应的擦除电路更少。
2.
容量和成本。
Nand
Flash 的单元尺寸几乎是 Nor 器件的一半,由于生产过
程更为简单, Nand 结构可以在给定的模具尺寸内提供更高的
容量,也就相应地降低了价格。在 Nand 闪存中每个块的最大
擦写次数是一百万次,而 Nor 的擦写次数是十万次。
Nor Flash
占据了容量为 1MB~16MB 闪存市场的大部分,而
Nand Flash 只是用在 8MB~128MB 的产品当中,这也说明 Nor
主要应用在代码存储介质中, Nand 适合于数据存储。 Nand 在
Compact Flash 、Secure Digital 、PC Cards 和MMC 存储卡市
场上所占份额最大。
3.
接口差别。
Nor Flash
带有 SRAM 接口,有足够的地址引脚来寻
址,可以很容易地存取其内部的每一个字节。基于 Nor 的
闪存使用非常方便,可以像其他存储器那样连接,并可以
在上面直接运行代码。
Nand
器件使用复杂的 I/O 口来串行存取数据,各个产品或
厂商的方法可能各不相同。 8个引脚用来传送控制、地址
和数据信息。 Nand 的读写操作采用 512 字节的块,这一点
与硬盘管理操作类似,显然基于 Nand 的存储器就可以取
代硬盘或其他块设备。
在使用
Nand 器件时,必须先写入驱动程序,才能继续执
行其他操作。向 Nand 器件写入信息需要相当的技巧,因
为设计师决不能向坏块写入,这就意味着在 Nand 器件上
自始至终都必须进行虚拟映射。
幸运的是,
S3C2410 微处理器支持 Nand Flash 接口,大
大方便了在嵌入式系统设计中的应用。鉴于两种存储器各
自的优缺点,在 S3C2410 嵌入式系统中,对 Nor Flash 和
Nand Flash 电路都进行了设计,以方便使用。
2.3.4
烧写 Flash
程序调试结束,要将其可执行文件烧写(或称固化)到目
标机中 Flash 运行,这个过程要通过一个转门的下载软件
来进行,以 Embest OnLine Flash Programmer for
ARM 为例,来说明该软件的安装和使用。
1.
安装 Flash Programmer
Flash Programmer
安装过程比较简单,运行 Flash
Programmer 安装包中的 Setup.exe exe,按照提示一步步执
,行即可。
Flash Programmer
安装程序将自动区分电脑是否已安装
Embest IDE 软件的情况:
① 电脑已安装 Embest IDE 软件,安装程序将会把 Flash
Programmer 缺省安装到 “Embest IDE 安装目录
\Tools Tools\FlashProgrammer FlashProgrammer”目录,见图 2-24 。同时安装
程序将自动探测是否安装与 IDE 软件共享的设备模块和驱
动程序,安装完毕后电脑无需重新启动。如果 IDE 已注
册,软件可直接运行。
② 电脑未安装 Embest IDE 软件,安装程序将会把 Flash
Programmer 缺省安装到 “Program Files Files\
Embest Embest\FlashProgrammer FlashProgrammer”目录,安装完毕后需要重新启动。
软件正常运行时需要注册。软件安装完成后将缺省建立 Embest
Tools 程序文件夹,包含执行程序和帮助的快捷方式。
2. Flash Programmer
的功能
点击
Flash Programmer 图标,出现图 2-25 对话框,在第
一行有四个一级菜单,下面分别介绍。
① 文件菜单
文件菜单用于保存、打开用户设置的编程配置数据文件,
该文件一般以 *.cfg 形式存在。通过文件菜单,用户还可以
将已打开的编程配置数据文件里另存为其他文件,以及打
开最近打开过的四个编程配置文件。文件菜单各子菜单命
令如表 2-1所示。
表2-1 文件菜单
图2-25 Flash Programmer 对话框
② 设置菜单
设置菜单仅包含
Configure 子菜单。功能见表 2-2
表2-2 设置菜单
选择
Setting > Configure Configure…子菜单,将弹出编程设备配
置对话框,如图 2-26 所示:
连接设备(
Remote Device Device),该下拉框中显示所有本软
),件支持的编程设备,用户可以选择其中一种,下拉框下方
将显示对应该设备的说明和版本。
通讯类型(
Communication type type),设置该设备与主机
),使用的连接方式和连接到的主机通讯口。
通讯口(
Parallel Port Port),按实际连接设置。
),③ Tools 菜单
Tools
菜单设置菜单仅包含 Option Option…子菜单,功能见 2-3。
表2-3 Tools 菜单
选择Tools > Option…子菜单,将弹出应用选项对话框,见图2-27
输出信息记录文件(
Output information to log file file),选择
),该检查框则应用程序将所有输出的提示信息和错误信息记录到
安装目录下的 Info.log 文件。
编程时载入扇区所有数据(
Loading all sector data when
programming programming),部分 ),Flash 芯片编程时需要一次性载入扇
区全部数据,则用户可以选择本选项完成编程操作。
超时(
Time Out Out),设置超时时间,单位为秒。
),测试
RAM 区大小( Test Ram Size Size),设置目标测试
),(Target Test Test)时测试的 )RAM 存储区大小,单位为 Kbyte Kbyte;
根据本软件运行时需要,一般情况下应设置为 4K 4K,对于必须
,一次性载入一个扇区数据的 Flash 芯片,应该设置为 4K+ 扇区
大小。
执行 FLASH 操作前复位次数( Reset Count Before Flash
Command Command),设置执行编程、擦除、保护等命令前复位芯
),片的次数。
④ Help 菜单
Help
菜单该菜单最重要的是 Contents 子菜单,内部有我们
需要的许多资料,特别是用户手册,对我们正确使用 Flash
Programmer 有很大帮助。帮助菜单项见表 2-4:
3. Flash Programmer
的使用
Net Start
评估板是一款基于 SAMSUNG 公司 ARM7 芯片
S3C4510 的评估电路板,板上包含 2M 字节的 Flash 芯
片,型号是 AMD 公司 AM29LV160DB AM29LV160DB,以及 ,16M 字节的
SDRAM SDRAM,板上应用程序为 ,ucLinux ucLinux,是目前比较流行的
,一款评估板。我们以 Net Start 为例来说明 Flash
Programmer 的使用。
Net Start
评估板使用 FLASH 前64K 存储空间,即 1到4号
扇区保存 BootLoader 软件,该软件用于启动固化在 5到
35 号扇区的 ucLinux ucLinux,以及烧写 ,5到35 号扇区内容。本
节讲述如何使用 Flash Programmer 对Net Start 评估板
Flash 进行编程,用户可以参照本实例对其他电路板进
选择合适的编程设备并设置通讯类型和通讯通道。
② 处理器设置
选择处理器
CPU 子对话框,如图 2-29 所示:
编程设备设置
选择
Setting > Configure Configure…子菜单,弹出编程设备配置对话
框,如图 2-28 所示:
选择
SAMSUNG 公司 S3C4510 处理器,选择小端模式,
按表 2-5设置以下寄存器:
FLASH
芯片设置
选择
FLASH 子对话框,如图 2-30 所示:
图2-30 FLASH对话框
选择
AMD 公司 AM29LV160B/DB 芯片,选择访问宽度为
16 位,选择芯片数目为 1片,设置 Flash 起始地址为为
0x180000 0x180000,如果要烧写 ,BootLoader 程序,选择扇区范围
为1到4,如果要烧写 ,ucLinux ucLinux,选择扇区范围为 ,5到35 。
编程数据设置
选择编程子对话框,如图
2-31 所示:
设置
RAM 起始地址为 0,选择需要编程的 ,BIN 格式文件,
如果需要上载,选择上载文件。
图2-31 编程数据设置
5 目标板测试
选择处理器
CPU 子对话框,点击目标板测试 Target Test
按钮,开始目标测试,测试时弹出以下对话框图 2-31 31,通
,知SYSCFG 寄存器写入值和读取值不相同,原因是
SYSCFG 寄存器中包含 S3C4510 器件标识,因此选择
YES 继续测试。弹出类似的对话框均选择 YES 继续测试。
图2-32目标板测试对话框
RAM区测试完后,开始获取Flash设备标识号,如果获取的Flash标识和保存的标识相同,表示测试成功,输出信息如下图:
图2-33表示测试成功对话框
6 FLASH
编程
用户可以点击编程按钮进行编程操作或其他 Flash 操
作。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0