【ARM9】ARM 2440 学习笔记
1、NOR Flash 和 NAND Flash
NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。
NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理和需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多。
http://baike.baidu.com/view/2741245.htm
l 、NOR的读速度比NAND稍快一些。
2、 NAND的写入速度比NOR快很多。
3 、NAND的4ms擦除速度远比NOR的5s快。
4 、大多数写入操作需要先进行擦除操作。
5 、NAND的擦除单元更小,相应的擦除电路更少。
此外,NAND的实际应用方式要比NOR复杂的多。
NOR主要应用在代码存储介质中,NAND适合于数据存储
2、GPIO
General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,利用工业标准I2C、SMBus™或SPI™接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。
3、TTL电平
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称做TTL(晶体管-晶体管逻辑电平)信号系统。
4、
USB Host:和普通PC 的USB 接口是一样
USB Slave:使用它来下载程序到目标板,当开发板装载了WinCE 系统时,它可以通过ActiveSync 软件和Windows 系统进行同步。
5、BSP(board support package)板级支持包
BSP(board support package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在嵌入式系统软件的组成中,就有BSP。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。
BSP主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体功能包括:
1. 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
2. 为操作系统提供设备驱动程序和系统中断服务程序
3. 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
4. 初始化操作系统,为操作系统的正常运行做好准备。
http://baike.baidu.com/view/6137.htm
6、交叉编译器
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。
7、ADS
ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。
8、SDK
SDK(Software Development Kit, 即软件开发工具包)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
9、DNW
三星公司出的串口下载工具,相当于WINXP自带的超级终端,不过有了一些超级终端没有的功能,比如用USB传输文件等。
10 nboot eboot uboot
nboot很小(4k左右),一般用在从nandflash启动的情况,nandflash不支持xip,所以必须有一个可以执行的程序将烧写在其中的eboot搬到内存中,nboot就是干这个的。nboot烧写在片内的4ksram中。所以nboot一般配合eboot一起使用。
eboot就是ethernet boot,开始都是用网络下载的,现在大都加入了usb下载功能。eboot可以单独使用,就是把eboot烧写到norflash中,norflash支持xip,所以eboot可以自己把自己搬到内存中。
uboot以前常配合linux系统使用,不过现在已经在ce下用的很多了,我现在用的就是由uboot移植来的,只不过板商一般都不给源码,比较郁闷。uboot应该是比较强大的bootloader了,比eboot强大多了。
一、直接看用户手册安装win CE 开发环境。
遇到问题参考这个:
1、http://wenku.baidu.com/view/3d4d2b5c804d2b160b4ec06c.html
2、遇到 因windows installer 装不起 Windows Embedded CE 6.0 Platform Builder Service Pack 1.msi 的时候,参考这个:http://zhidao.baidu.com/question/373792186.html
Ø 软件列表
1. Visual Studio 2005
2. Visual Studio 2005 Service Pack 1
若安装的是英文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB926601-X86-ENU.exe;若安装的是中文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB926604-X86-CHS.exe
3. Visual Studio 2005 Service Pack 1 Update for Windows Vista
若使用的是WindowsXP,则不用安装此项。若使用的是Windows7,则需要安装此补丁。若安装的是英文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB932232-X86-ENU.exe;若安装的是中文版VS2005,则需要安装的补丁的文件名为:VS80sp1-KB932230-X86-CHS.exe
4. Visual Studio 2005 Service Pack 1 ATL Security Update
若使用的是XP系统,则不必安装该补丁。文件名:VS80sp1-KB971090-X86-INTL.exe
ATL是ActiveX Template Library 的缩写,它是一套C++模板库
5. Windows Embedded CE 6.0
6. Windows Embedded CE 6.0 Platform Builder Service Pack 1
7. Windows Embedded CE 6.0 R2
8. Windows Embedded CE 6.0 R3
9. 安装模拟器Microsoft Device Emulator 2.0 -- Standalone Release
10. CHSEmu.msi
这个文件是我从网上下载到的别人创建的SDK,如果你自己创建自定义SDK不成功,或者不想自己创建一个SDK的话,直接安装这个SDK就可以了。
2012.8.15 关于用H-JTAG烧写mini2440不能识别NorFlash型号问题
(使用的开发板配套的PDF上写的NOR flash型号是SST39VF1601,实际上不对,应为S29AL016D-M02)
如题,烧写后总是出现不能识别FLASH型号问题。到H-JTAG网站下载了一个hfc文件查看,发现比friendlay提供的hfc文件多了一
行SoftReset+++,于是修改H-Flasher_mini2440.hfc文件,在SCRIPT
SECTION:后插入一行SoftReset+++,呵呵,可以正确识别了。将我修改后的H-Flasher_mini2440.hfc内容粘贴如下,
以供参考,希望能对各位有所帮助。
FLASH SECTION:
SST
SST39VF1601
MEMORY SECTION:
16-BIT X 1-CHIP
0x00000000
0x40000000
XTAL SECTION:
NULL
TCK SECTION:
-1
-1
SCRIPT SECTION:
SoftReset+++
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x4A000008+0xFFFFFFFF
Setmem+32-Bit+0x4A00001C+0x000007FF
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x56000050+0x000055AA
Setmem+32-Bit+0x4C000014+0x00000007
Setmem+32-Bit+0x4C000000+0x00FFFFFF
Setmem+32-Bit+0x4C000004+0x00061012
Setmem+32-Bit+0x4C000008+0x00040042
Setmem+32-Bit+0x48000000+0x22111120
Setmem+32-Bit+0x48000004+0x00002F50
Setmem+32-Bit+0x48000008+0x00000700
Setmem+32-Bit+0x4800000C+0x00000700
Setmem+32-Bit+0x48000010+0x00000700
Setmem+32-Bit+0x48000014+0x00000700
Setmem+32-Bit+0x48000018+0x0007FFFC
Setmem+32-Bit+0x4800001C+0x00018005
Setmem+32-Bit+0x48000020+0x00018005
Setmem+32-Bit+0x48000024+0x008E0459
Setmem+32-Bit+0x48000028+0x00000032
Setmem+32-Bit+0x4800002C+0x00000030
Setmem+32-Bit+0x48000030+0x00000030
PGMOPTION SECTION:
ADDON SECTION:
NULL