分类:
2009-03-16 12:58:50
A. 利用JTAG烧写
1.把25针并口线插到pc机的并口,并口线另一端与JTAG小板相连,JTAG小板JP3接口通过20针JTAG线与开发板的14 针JTAG口相连。
2.把S3C2410公共文件目录下的"Flash烧写"目录整个拷贝到C:\下,并把该目录下的GIVEIO.SYS(5.12kB)文件拷贝到C:\WINDOWS\system32\drivers下。
3.在控制面板经典视图(如果是分类视图,请切换到经典视图)里,双击"添加硬件"->点击"下一步">选择"是,我已经连接了此硬件",并点击"下一步">在已安装的硬件列表中,选择"添加新的硬件设备",并点击"下一步"->选中"安装我手动从列表选择的硬件",并点击下一步->选择"显示所有设备",并点击下一步->点击"从磁盘安装",然后点击"浏览",指定驱动为C:\Flash烧写\GIVEIO\giveio.inf 文件,点击确定,继续下一步,选择"仍然继续",最后完成.
4. 开发板跳线J8要插上短路块,(如果是烧写NOR FLASH,拔掉短路块),然后上电。
烧写NOR FLASH or NAND FLASH 需要根据核心板上J8跳线来决定,从NOR 还是NAND 启动也是有J8跳线决定。
J8插上短路块,复位之后将从NAND FLASH启动
J8没插短路块,复位之后将从NOR FLASH启动
5. 打开命令行提示符,cd 进入目录"C:\Flash烧写\",然后输入sjf2410.exe /f:S3C2410_BIOS.bin (将bootloader文件S3C2410_BIOS.bin烧写到FLASH中) [此目录下有一个批处理文件,点击批处理文件也可] 会出现如下对话框
C:\Flash烧写>sjf2410 /f:s3c2410_bios.bin
+------------------------------------+
| SEC JTAG FLASH(SJF) v 0.4 |
| (S3C2410X & SMDK2410 B/D) |
+------------------------------------+
Usage: SJF /f:
> S3C2410X(ID=0x0032409d) is detected. [注: 此处说明检测到cpu类型]
[SJF Main Menu]
0:K9S12(56)08 prog 1:28F128J3A prog 2:AM29LV800 Prog 3:SST39VF160 Prog
4:Memory Rd/Wr 5:Exit
Select the function to test:0 [输入0,选择FLASH型号,若烧写NOR FLASH,输入3]
[K9S1208 NAND Flash JTAG Programmer]
K9S1208 is detected. ID=0xec76
0:K9S1208 Program 1:K9S1208 Pr BlkPage 2:Exit
Select the function to test :0 [输入0,选择JTAG对FLASH的两种功能]
[SMC(K9S1208V0M) NAND Flash Writing Program]
Source size:0h~1f523h
Available target block number: 0~4095
Input target block number:0 [输入0,选择烧写起始block块地址]
[然后会出现如下的烧写过程]
target start block number =0
target size (0x4000*n) =0x20000
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp [烧写完成后,会退出,出现如下提示]
0:K9S1208 Program 1:K9S1208 Pr BlkPage 2:Exit
Select the function to test :2 [输入2退出烧写]
6. 关闭电源,拔掉JTAG插头,将PC串口和开发板子串口0通过串口线相连,在PC机上启动DNW程序,配置Serial Port Baud Rate -> 115200, COM Port -> COM1, Download Address-> 0x30100000 [(YL2410 SDRAM addr 0x30000000-0x34000000)],然后点击Serial Port/Connect [注: 若是想从NAND FLASH启动,J8短路帽要接上;从NOR FLASH启动,J8不接短路帽];
7. 打开电源,开发板上电,烧进FLASH中的程序S3C2410_BIOS.bin会启动运行,可以通过DNW看到启动信息BIOS的主功能菜单,下面在此菜单下进行简单设置:
(1) 按"6"设置boot参数,进入空白行后输入如下:
root=1f02 init=/linuxrc console=ttyS0,115200 devfs=mount display=sam240
(2) 按"7"出现提示,紧接着输入"1"回车选择Linux自启动;
此bootloader对FLASH的分区划分为:
Please select which region to erase : Esc to abort
0 : offset 0x0 , size 0x40000 [bootloader]
1 : offset 0x40000 , size 0x1c0000 [zImage]
2 : offset 0x200000 , size 0x1e00000 [cramfs]
3 : offset 0x2000000 , size 0x2000000 [WinCE]
附注: 假如两块FLASH中有一块bootloader是正常的,可以启动,然后通过USB下载烧写,启动DNW和打开电源后,DNW->USB Port->Transmit->S3C2410_BIOS.bin,发送,BIOS下载成功后会自动运行.
以上参考了http://cupidsd.blogchina.com/blog/2382140.html
B. 假如有一块FLASH的bootloader可以正常使用[注意J8短路帽是否需要插上],将PC串口和开发板串口0通过串口线接好,在PC机上启动DNW程序:
(1). 配置DNW Serial Port Baud Rate -> 115200, COM Port -> COM1, Download Address-> 0x30200000 [因为bootloader占了内存分区0x30000000开始的前一部分,所以要写为 0x30200000]
(2). 点击Serial Port/Connect,开发板上电启动进入BIOS菜单:
(3). 输入0 选择 USB download file;然后点击USB Port->Transmit选择要烧写的文件 S3C2410_BIOS.bin,确定发送文件;
(4). Download O.K.后会提示是否需要运行下载到ram中的文件[y/n],选择输入 y或n 都会重新回到BIOS菜单.
(5). 输入 2 或 5 选择 Write [Nand]/[NOR] flash with download file,将下载的文件烧写到另一块FLASH;仅接着选择要烧写的FLASH分区,因为是bootloader,所以输入0,然后烧写;
(6). 最后会选择是否确定烧写[y/n],输入 y 确定烧写。
(7). 烧写完毕,重新回到BIOS菜单,至此另一块FLASH的bootloader也可以使用了。[有坏块或烧写有问题另算]
[注1:] 烧写 内核zImage或文件系统cramfs等与此类似;
[注2:] YL2410的SDRAM物理地址范围为0x30000000 ~ 0x34000000; BIOS自身占用了0x0x30000000 ~ 0x30100000的空间,所以USB下载地址要大于等于0x30100000
[前提:] 使用USB下载前,需安装开发板USB设备对应的驱动程序:secbulk.sys和secbulk.inf(这些文件在S3C2410公共文件/USB驱动程序),将secbulk.sys文件复制到%systemroot%\system32\drivers中,将驱动程序指向ecbulk.inf---参照上述giveio安装说明。可以参考开发板帮助手册
C. 假如有一块FLASH的bootloader是正常的,同样可以通过串口烧写bootloader [对于串口,BIOS内部固定了下载地址]
首先配置同方法B,然后启动后选择BIOS菜单1 : Uart download file;然后点击Serial Port->Transmit->S3C2410_BIOS.bin,发送,最后方法同B.
[注1:] 以上的S3C2410_BIOS.bin可以换成其他程序,如自己修改过的bootloader 内核zImage或文件系统cramfs等.
[注2:] 开发板提供了bootloader源码,可以根据需要修改,用ADS编译;