Mini2440开发板及程序烧录、启动方式
本篇博客内容仅作为学习使用,如有侵权,请联系删除。
Mini2440是一款ARM9开发板,ARM9属于armv4t架构,由友善之臂开发,官方提供购买路径以及开发板最新的使用手册http://www.arm9.net。其外形如图:
注意:由于Mini2440开发板中采用的SRAM和FLASH芯片是多款芯片混用的,下文中的引用的电路图都是官方资料自带的,和我购买的板子上的实际芯片型号可能有区别,但是芯片的驱动控制都是相互兼容的。
一、Mini2440硬件资源(我购买的开发板)
- CPU处理器: Samsung S3C2440A,主频400MHz,最高533Mhz;
- SDRAM内存: Mini2440外接两片32MB的SDRAM(型号EM63A16STS-5G),它们并在一起形成32位总线数据宽度,使用了nGCS6片选。物理起始地址为0x30000000。 SDRAM 时钟频率高达100MHz;
- NAND FLASH存储: 在板256MB NAND FLASH(型号K9F2G08U0C), 掉电非易失;
- NOR FLASH:在板2M NOR FLASH(型号S29AL016D70TF102),掉电非易失,已经安装BIOS;
- 标准配置为统宝3.5”真彩LCD,分别率240x320,带触摸屏;
- 接口和资源:
- 1个100M以太网RJ-45接口(采用DM9000网络芯片)
- 3个串行口
- 1个USB Host
- 1个USB Slave B型接口
- 1个SD卡存储接口
-1路立体声音频输出接口,一路麦克风接口
- 1个2.0mm间距10针JTAG接口
- 4 USER Leds
- 6 USER buttons(带引出座)
- 1个PWM控制蜂鸣器
- 1个可调电阻,用于AD模数转换测试
- 1个I2C总线AT24C08芯片,用于I2C总线测试
- 1个2.0 mm间距20pin 摄像头接口
- 板载实时时钟电池
- 电源接口(5V),带电源开关和指示灯
- 扩展接口 :
1个34 pin 2.0mmGPIO接口
1个40 pin 2.0mm 系统总线接口
二、3SC2440启动方式
S3C2440对外引出了27根地址线ADDR0~ADDR26,它最多能够寻址128MB,而S3C2440的寻址空间可以达到1GB,这是由于S3C2440将1GB的地址空间分成了8个BANKS(Bank0~Bank7),其中每一个BANK对应一根片选信号线nGCS0~nGCS7,当访问BANKx的时候,nGCSx管脚电平拉低,用来选中外接设备, S3C2440通过8根选信号线和27根地址线,就可以访问1GB。如下图所示:
其中Bank0~Bank5可以焊接ROM或SRAM类型存储器,Bank6~Bank7可以焊接ROM,SRAM,SDRAM类型存储器,也就是说,S3C2440的SDRAM内存应该焊接在Bank6~Bank7上,最大支持内存256M,Bank0~Bank5通常焊接一些用于引导系统启动小容量ROM,具体焊接什么样存储器,多大容量,根据每个开发板生产商不同而不同。
以Mini2440开发板为例:将两片32M,16位宽SDRAM内存(型号HY57V561620FTP)焊接在Bank6和Bank7上,并联形成64M,32位内存。
- A0-A12是地址线:行地址、列地址复用,行地址使用A0-A12(13条),列地址使用A0-A8(9条)。 BA0-BA1是bank选择引脚。(bank选择与行地址(row address)同时下发,在列地址下发时,有其他用途)。
- 这个SDRAM有:13根行地址线 RA0-RA12 9根列地址线 CA0-CA8 2根BANK选择线 BA0-BA1;SDRAM的地址引脚是复用的,在读写SDRAM存储单元时,操作过程是将读写的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址。它们被锁存到芯片内部的行地址锁存器和列地址锁存器。$\overline{RAS}$是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;$\overline{CAS}$是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中;
- 需要注意的是LADDR2接的引脚是A0,这是因为一个地址对应4个字节,32位数据位宽。
- BA0,BA1接ADDR24,ADDR25,为什么用这两根地址线呢?BA0~BA1代表了SDRAM的最高地址位。因为CPU的寻址空间是以字节(Byte)为单位的,本系统SDRAM容量为64MB,那就需要A25~A0(64M=2^26)地址线来寻址,所以BA1~BA0地址线应该接到S3C2440的ADDR25~ADDR24引脚上。13根行地址线+9根列地址线 = 22根。另外HY57V561620F一个存储单元是2个字节,相当于有了23根地址线。BA0,BA1是最高地址位,所以应该接在ADDR24,ADDR25上。
- SDRAM地址空间:0x30000000~0x33F000000;
由于S3C2440是32位芯片,理论上讲可以达到4GB的寻址范围,除去上述8个BANK用于连接外部设备,还有一部分的地址空间是用于设备特殊功能寄存器,其余地址没有被使用。
2.1 启动方式
系统启动取决于S3C2440 CPU的OM0、OM1两个引脚的取值。在Mini2440中,直接将OM1接地(永远为0),OM0作为拨码开关,来选择是从NAND启动(接地,0)还是从NOR16-bit启动(悬空,1)。
NAND FLASH:ROM,容量大,适用于数据存储,ARM不能从NAND 中直接启动,主要是因为NAND FLASH不具有地址线,没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。但是它有专门的控制接口与CPU相连,数据总线为8-bit,但这并不意味着NAND FLASH读写数据会很慢。大部分的优盘或者SD卡等都是NAND FLASH制成的设备。
NOR FLASH:ROM,容量小,和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码。
SDRAM: RAM,容量大,操作系统等大型软件都运行在SDRAM中。
2.2 NAND启动
图1右侧是选择从NAND FLASH引导启动(启动模式选择开关拔到NAND端,此时OM0管脚拉低),S3C2440的NAND 控制器会自动把NAND FLASH中的前4K代码数据搬到内部SRAM中(在S3C2440片内有一块被称为SteppingStone的片内SRAM,它的大小为4K),片内SRAM被映射到nGCS0片选的空间(nGCS0片选的空间,即0x00000000),CPU从0x00000000位置开始运行程序。所以当中断发生的时候,PC指针指向0x0+offset(如:IRQ就是0x18),可以找到中断服务程序的入口。
Mini2440开发板就是将采用了的256MB的NAND FLASH(型号K9F2G08U0C)。
2.3 NOR启动
图1左侧对应NOR FLASH启动(启动模式选择开关拔到NOR端,此时OM0管脚拉高),0x00000000就是2MB NOR FLASH实际的起始地址,NOR FLASH中的程序就从这里开始运行,不涉及到数据拷贝和地址映射。
注意此时,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000 。
Mini2440开发板就是将2M的NOR FLASH(型号S29AL016D70TF102)焊接在了Bank0上,用于存放系统引导程序Bootloader。
- 地址线A1-A22,共22条(请注意地址是从A1开始的,这意味着它每次最小的读写单位是2字节),实际我们的开发板上只用了A1-A20条地址线,因为与A21、A22相连的S29AL016D70TF102的相应引脚是悬空的。;
- 数据线D0-D15,共16条;
2.4 程序大于4kb
那么当程序大于 4kb 的时候,当我们以 NAND FLASH启动后,前面的4kb 被拷贝到 片内RAM中去执行(自动完成)。我们在这前4kb的程序中初始化SDRAM,然后将NAND FLASH剩下的程序拷贝到 SDRAM中(不是只有4kb 被拷贝到片内RAM中执行了嘛)然后跳转到 SDRAM中去执行剩下的程序。
那么也就是说 通常当程序大于 4kb的 时候,我们就需要把程序拷贝到SDRAM中去运行。(程序小于4kb 那么也就可以不用拷贝了,以NAND FLASH方式 启动后,程序全被拷贝到 片内4kb的片内SRAM中去运行。)
那么,既然程序大于4kb的时候需要从 NAND FLASH中拷贝到 SDRAM中去运行。自然可以想到 烧到 NAND FLASH中的程序前面一部分代码应该 是初始化SDRAM(程序最终需要拷贝到SDRAM中去运行)和 将NAND FLASH中的剩余的程序拷贝到SDRAM中去(全考过去也行,方便点),然后跳转到SDRAM中执行。
采用NOR FLASH启动时,由于NOR FLAH为2MB、因此可以不用拷贝到SDRAM运行,但是我们也可以尝试这么做,可以参考s3c2440中断程序(烧录到NORFlash,运行在SDRAM中)
2.5 总结
NAND 启动时,地址0x00000000为内部SRAM映射的地址;
NOR启动时,地址0x00000000为NOR FLASH的实际起始地址。
向NOR FLASH中写数据需要特定的命令时序,而向内存中写数据可以直接向内存地址赋值。
三、基本电路
3.1 电源系统
Mini2440开发板直接使用外接5V电源,通过降压芯片产生整个系统所需要的三种电压:3.3V、1.8V、1.25V。降压芯片采用LM117-1.8V、LM117-3.3V等。
整个系统的电源通断是由S1拨动开关控制的,它不能通过软件实现开关机。
为了方便用户外接其他电源,开发板还设计了一个电源接口CON8,它是一个白色2.0mm间距的单排插座,中间均为“地”,两侧均为5V。注意,这两个5V并非是相通的,其中一个连接了外部电源的5V,另外一个则连接了经过拨动开关S1之后的5V。
它们的连接关系和相应的实物标称见下图:
3.2 复位电路
Mini2440开发板采用复位芯片MAX811实现CPU低电平复位。
3.3 LED电路
开发板具有4个用户可编程LED,它们直接与CPU的GPIO相连接,低电平有效(点亮):
LED1 | LED2 | LED3 | LED4 | |
GPIO | GPB5 | GPB6 | GPB7 | GPB8 |
可复用为 | nXBACK | nXREQ | nXDACK1 | nDREQ1 |
使能 | 低电平 | 低电平 | 低电平 | 低电平 |
3.4 按键电路
开发板总共有6个用户测试用按键,它们均从CPU中断引脚直接引出,属于低电平触发,这些引脚也可以复用为GPIO和特殊功能口,为了用户把它们引出作为其他用途,这6个引脚也通过CON12引出,6个按键和CON12的定义如下:
K1 | K2 | K3 | K4 | K5 | K6 | |
中断 | EINT8 | EINT11 | EINT13 | EINT14 | EINT15 | EINT19 |
复用GPIO | GPG0 | GPG3 | GPG5 | GPG6 | GPG7 | GPG11 |
特殊功能 | - | nSS1 | SPIMISO1 | SPIMOSI1 | SPICLK1 | TCLK1 |
对应CON12 | 1 | 2 | 3 | 4 | 5 | 6 |
3.5 A/D接口
Mini2440开发板引出4路A/D(模数转换)转换通道,它们位于板上的CON4-GPIO接口。为了方便测试, AIN0连接到了开发板上的可调电阻W1,原理图如下所示:
3.6 蜂鸣器接口
蜂鸣器连接到GPB0接口,通过PWM脉冲波输出控制(高电平触发)。
3.7 串口
S3C2440本身总共有3个串口UART0、1、2,它们分别对应Mini2440开发板的CON1、CON2、CON3接口。这3个接口都是从CPU直接引出的,是TTL电平。为了方便用户使用,其中UART0做了RS232电平转换,它们对应于COM0,可以通过附带的直连线与PC机互相通讯。
CON1,CON2,CON3在开发板上的位置和原理图中的连接定义对应关系如下图所示。
3.8 USB接口
Mini2440提供两种USB接口:
- 一种是USB Host,和PC机一样的USB接口,可以接USB摄像头、USB键盘、USB鼠标、优盘等常见的USB外设。
- 另外一种是USB Slave,我们一般使用它来下载程序到目标板,当开发板装载了WinCE系统时,它可以通过ActiveSync软件和Windows系统进行同步。
3.9 LCD接口
Mini2440开发板LCD接口是一个41 pin 0.5mm间距的白色座,其中包含了常见LCD所用的大部分控制信号(行场扫描、时钟和使能等),和完整的RGB数据信号(RGB输出为8:8:8,即最高可支持1600万色的LCD);为了用户方便试验,还引出了PWM输出(GPB1可通过寄存器配置为PWM),和复位信号(nRESET),其中LCD_PWR是背光控制信号。
另外,37、38、39、40为四线触摸屏接口,它们可以直接连接触摸屏使用。
J2为LCD驱动板供电选择信号,驱动板都使用5V供电。
Mini2440搭配的LCD有多种型号,比如TD35、P35,我这里使用的是P35型号。
3.10 EEPROM
Mini2440开发板外接了一个I2C信号引脚的EEPROM芯片AT24C08,它有1024字节,供用户测试I2C总线。
3.11 网络接口
Mini2440开发板外接DM9000网卡芯片,可以自适应10/100M网络。
3.12 音频接口
S3C2440内置I2S总线接口,可直接外接8/16比特的立体声CODEC,开发板采用基于I2S总线的UDA1341芯片实现音频解码系统,该芯片内部寄存器的初始化和设置则是采用 L3-bus 总线连接控制实现的,在这里沿用了三星公板的设计,分别使用CPU的GPB2、GPB3、GPB4 端口模拟实现 L3-Bus 规范的 L3MODE、L3DATA、L3CLOCK,它们在初始化完 UDA1341 以后就不再有用了,因此这三条控制线也可以使用普通的单片机模拟实现。
音频系统的输出为开发板上的常用3.5mm孔径插座,输入分为两路,一路为板载麦克风,另一路通过 CON10 白色 2.0mm 插座引出。两路音频输入通道的驱动是有些不同的,目前板载 MIC 对应的通道是可以录音使用的,注意:开发板并非专业的录音设备,音频输入的处理电路佷简单,录音时尽量把音源靠近麦克风。
3.13 JTAG接口
当开发板从贴片厂下线,里面是没有任何程序的,这时我们一般通过 JTAG 接口烧写第一个程序,就是 Superboot,借助 Superboot 可以使用 USB 口下载更加复杂的系统程序等.
除此之外,JTAG 接口在开发中最常见的用途是单步调试,不管是市面上常见的 JLINK还是 ULINK,以及其他的仿真调试器,最终都是通过 JTAG 接口连接的。标准的 JTAG 接口是 4 线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线,加上电源和地,一般总共 6 条线就够了;为了方便调试,大部分仿真器还提供了一个复位信号。都可以称为标准的 JTAG 接口。
因此,标准的 JTAG 接口是指是否具有上面所说的 JTAG 信号线,并不是 20Pin 或者10Pin 等这些形式上的定义表现。这就如同 USB 接口,可以是方的,也可以扁的,还可以是其他形式的,只要这些接口中包含了完整的 JTAG 信号线,都可以称为标准的 JTAG 接口。
Mini2440开发板提供了包含完整 JTAG 标准信号的10 Pin JTAG 接口,各引脚定义如图。
说明:对于打算致力于 Linux 初学者而言,JTAG 接口基本是没有任何意义和用途的,因为大部分开发板都已经提供了完善的 BSP,这包括最常用的串口和网络以及 USB 通讯口,当系统装载了可以运行的 Linux 系统,用户完全可以通过这些高级操作系统本身所具备的功能进行各种调试,这时是不需要 JTAG 接口的;即使你可以进行跟踪,但鉴于操作系统本身结构复杂,接口繁多,单步调试犹如大海捞针,毫无意义可言。
想一想你手头使用的 PC 机就知道了,或许你从没有见过甚至听过有谁会在 PC 主板上插一个仿真器,来调试 PCI 这样接口的 WindowsXP 或者 Linux 驱动。这就是为什么你经常见到或者听到那么多人在讲驱动“移植”,因为大部分人都是参考前辈的实现来做驱动的。
JTAG 仅对那些不打算采用操作系统,或者采用简易操作系统(例如 uCos2 等)的用户有用。大部分开发板所提供的 Bootloader 或者 BIOS 已经是一个基本完好的系统了,因此也不需要单步调试。
3.14 GPIO
GPIO 是通用输入输出口的简称,本开发板带有一个 34 Pin 2.0mm 间距的 GPIO 接口,标称为 CON4,如图。
实际上,CON4 不仅包含了很多富余的 GPIO 引脚,还包含了一些其他 CPU 引脚,如 AD0-AIN3,CLKOUT 等。你所看到的图中的 SPI 接口、I2C 接口、GPB0 和 GPB1 等,它们其实也是 GPIO,不过是以特殊功能接口来标称定义的,这些都可以通过相应的 CPU 寄存器来设置更改它们的用途,详细的接口资源见下表。
CON4 | 引脚名称 | 说明(有些端口可复用) | CON4 | 引脚名称 | 说明(有些端口可复用) |
1 | VDD5V | 5V电源(输入或者输出) | 2 | VDD33V | 3.3V电源(输出) |
3 | GND | 地 | 4 | nRESET | 复位信号(输出) |
5 | AIN0 | AD输入通道0 | 6 | AIN1 | AD输入通道1 |
7 | AIN2 | AD输入通道2 | 8 | AIN3 | AD输入通道3 |
9 | EINT0 | EINT0/GPF0 | 10 | EINT1 | EINT1/GPF1 |
11 | EINT2 | EINT2/GPF2 | 12 | EINT3 | EINT3/GPF3 |
13 | EINT4 | EINT4/GPF4 | 14 | EINT5 | ENT5/GPF5 |
15 | EINT6 | EINT6/GPF6 | 16 | EINT8 | ENIT8/GPG0 |
17 | EINT9 | EINT9/GPG1 | 18 | EINT11 | EIT11/GPG3/nSS1 |
19 | EINT13 | EINT13/GPG5/SPIMISO1 | 20 | EINT14 | EINT14/GPG6/SPIMOSI1 |
21 | EINT15 | EINT15/GPG7/SPICLK1 | 22 | EINT17 | EINT17/GPG9/nRST1 |
23 | EINT18 | EINT18/GPG10/nCTS1 | 24 | EINT19 | ENIT19/GPG11 |
25 | SPIMISO | SPIMISO/GPE11 | 26 | SPIMOSI | SPIMOSI/EINT14/GPG6 |
27 | SPICLK | SPICLK/GPE13 | 28 | nSS_SPI | nSS_SPI/ENT10/GPG2 |
29 | I2CSCL | I2CSCL/GPE14 | 30 | I2CSDA | I2CSDA/GPE15 |
31 | GPB0 | TOUT0/GPB0 | 32 | GPB1 | TOUT1/GPB1 |
33 | CLKOUT0 | CLKOUT0/GPH9 | 34 | CLKOUT1 | CLKOUT1/GPH10 |
3.15 CMOS CAMERA
S3C2440带有CMOS 摄像头接口,在开发板上通过标称为 CAMERA 的接口引出。它是一个 20 脚 2.0mm 间距的针座,用户可以直接使用我们提供的 CAM130 摄像头模块;其实CAM130摄像头模块上面没有任何电路,它只是一个转接板,它直接连接使用了型号为ZT130G2 摄像头模块,它们的定义如下图所示。
说明:CAMERA 接口是一个复用端口,它可以通过设置相应的寄存器改为GPIO使用,下表是它对应引脚的 GPIO 列表:
CAMERA | 引脚名称 | 可服用为 | CAMERA | 引脚名称 | 可复用为 |
1 | I2CSDA | GPE15 | 2 | I2CSCL | GPE14 |
3 | EINT20 | GPG12 | 4 | CAMRST | GPJ12 |
5 | CAMCLK | GPJ11 | 6 | CAM_HREF | GPJ10 |
7 | CAM_VSYNV | GPJ9 | 8 | CAM_PCLK | GPJ8 |
9 | CAMDATA7 | GPJ7 | 10 | CAMDATA6 | GPJ6 |
11 | CAMDATA5 | GPG5 | 12 | CAMDATA4 | GPJ4 |
13 | CAMDATA3 | GPJ3 | 14 | CAMDATA2 | GPJ2 |
15 | CAMDATA1 | GPJ1 | 16 | CAMDATA0 | GPJ0 |
17 | VDD33V | 3.3V电源 | 18 | VDD_CAM | VDD_CAM |
19 | VDD28V | 1.8V电源 | 20 | GND | 地 |
3.16 系统总线接口
开发板上的系统总线接口为CON5,它总共包含 16 条数据线(D0-D15)、8 条地址线(A0-A6, A24)、还有一些控制信号线(片选、读写、复位等),CON5 可以向外提供 5V 电压输出;实际上,很少有用户通过总线扩展外设。下面是 CON5 的详细引脚定义说明。
CON5 | 引脚名称 | 说明(有些端口可复用) | CON5 | 引脚名称 | 说明(有些端口可复用) |
1 | VDD5V | 5V电源(输入或者输出) | 2 | GND | 地 |
3 | EINT17 | 中断17(输入) | 4 | EINT18 | 中断18(输入) |
5 | EINT3 | 中断3(输入) | 6 | EINT9 | 中断9输入 |
7 | nGCS1 |
片选1 对应物理地址:0x08000000 |
8 | nGCS2 |
片选2 对应物理地址:0x10000000 |
9 | nGCS3 |
片选3 对应物理地址:0x18000000 |
10 | nGCS5 |
片选5 对应物理地址:0x28000000 |
11 | LnOE | 读使能信号 | 12 | LnWR | 写使能 |
13 | nWAIT | 等待信号 | 14 | nRESET | 复位 |
15 | nXDACK0 | nXDACK0 | 16 | nXDREQ0 | nXDREQ0 |
17 | LADDR0 | 地址0 | 18 | LADDR1 | 地址1 |
19 | LADDR2 | 地址2 | 20 | LADDR3 | 地址3 |
21 | LADDR4 | 地址4 | 22 | LADDR5 | 地址5 |
23 | LADDR6 | 地址6 | 24 | LADDR24 | 地址24 |
25 | LDATA0 | 数据线0 | 26 | LDATA1 | 数据线1 |
27 | LDATA2 | 数据线2 | 28 | LDATA3 | 数据线3 |
29 | LDATA4 | 数据线4 | 30 | LDATA5 | 数据线5 |
31 | LDATA6 | 数据线6 | 32 | LDATA7 | 数据线7 |
33 | LDATA8 | 数据线8 | 34 | LDATA9 | 数据线9 |
35 | LDATA10 | 数据线·0 | 36 | LDATA11 | 数据线11 |
37 | LDATA12 | 数据线12 | 38 | LDATA13 | 数据线13 |
39 | LDATA14 | 数据线14 | 40 | LDATA15 | 数据线15 |
四、开发板使用(程序烧录)
开发板出厂时NOR FLASH和NAND FLASH都是烧录了Bootloader(Superboot)程序的。
4.1 启动方式选择
Mini2440开发板拨动开关S2到NOR FLASH一侧时,系统采用NOR FLASH启动。
Mini2440开发板拨动开关S2到NAND FLASH一侧时,系统采用NAND FLASH启动。
4.2 USB转TTL接串口1
COM1从上到下依次为TXD0、RXD0、VDD5V、GND引脚。我们将USB转TTL模块的接口和COM1接口按如下方式连接:
- TXD -> RXD
- RXD -> TXD
我们按上面要求连接好串口后,打开设备管理器,我们可以看到我们的串口号:COM5;
主要注意的是这里如果你使用的usb转串口:需要安装PL2303to串口驱动,如果使用的是USB转TL:需要安装CH340驱动(USB串口驱动)驱动。
我们设置串口助手参数如下,并打开助手:
我们采用NAND启动方式,给开发板上电,uboot启动时会打印出如下等信息:
4.3 MiniTools工具使用(烧录到NAND FLASH)
Minitools是一款Android内核烧录软件,MiniTools是友善之臂提供的全新USB下载工具,可以方便来Mini2440烧写操作系统,就像刷手机一样刷开发板:
- 无需串口连接:MiniTools完全使用USB传输数据,无需串口,让你的桌面更整洁;
- 真正一键烧写:无需从串口输入命令,再点选USB下载,并且要通过多个步骤才能烧写整个系统,较为繁琐,MiniTools真正实现一键烧写,烧写文件可单选,也可全选;
- 支持32/64-bit电脑:MiniTools安装程序已经包含32/64-bit所需要的下载驱动,通吃所有Windows平台;
- 跨平台:MiniTools采用Qt4开发,可支持各种Windows和Linux发行版;
- 支持裸机程序:支持裸机程序的直接下载运行和烧写;
通过MiniTools工具,可直接通过USB数据线,把各个系统方便的安装到开发板上,并快速启动,更加方便调试开发。在使用MiniTools工具之前,需要安装SuperVivi-Transfer-Tool-Complete驱动,双击exe文件进行安装:
安装完成之后,将usb连接到开发板USB Slave接口,并打开设备管理器查看设备是否正常,如果出现驱动异常,类似下图:
此时可以选择使用驱动人生进行驱动修复。
使用USB烧写系统前的准备工作:
(1) 将开发板上的S2开关切换到NOR FLASH一侧;
(2)上电并开机,开发板将进入USB下载模式,此时,如果你连接了串口线并打开了串口终端,终端上会显示Hello USB Loop:
(3) 用USB线连接电脑与开发板,MiniTools左下角将显示已连接开发板,串口终端会显示USB Mode:Connected
(4) 接下来,你就可以使用MiniTools烧写系统了。
注意:只有Superboot才能配合MiniTools的USB下载功能。
(5) 要开始烧写系统,请在主界面的左侧,选择你要烧写的系统,例如Linux,将出现该系统的配置界面,如下图所示
(6) 你可以手动选择zImage、文件系统等烧写文件,手工填写Kernel CommandLine,不过,一个更方便的方法是点击界面上的【选择images目录】按钮,并将目录定位到images目录下,MiniTools会自动读取所选images目录下的FriendlyARM.ini配置文件,将内核和文件系统等烧写信息填写到界面上。
noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
使用MiniTools,你可以全选烧写更新整个系统,也可以单选烧写其中的某个部分,例如只烧写Kernel,或者只烧写文件系统等。设置完成后,点击【开始烧写】按钮进行一键烧写,烧写界面如下图所示:
(7) 烧写完成后,点击左下角的【快速启动】按钮,可以直接从Nand Flash启动系统,而无需拨动S2和电源开关.
4.4 Jlink程序烧录
由于当前我手上没有Jlink这里就不演示了,通过jlink向NOR FLASH烧录Superboot可以参考玩转mini2440开发板之【如何使用JLink下载烧录boot程序到NorFlash】。
需要注意:插入JLink时,其余只保留一个电源线和开发板相连,串口接线先去掉。
参考文章
[4]mini2440用户手册
[5]mini2440原理图