使用Jtag烧写uboot,以及bootdelay=0的解决办法
扫描二维码
随时随地手机看文章
一、XP 中安装GiveIO 的方法
正确连接Jtag烧写线,如果提示找不到cpu可能是插线接反。
1.首先将giveIO 文件夹下的Giveio.sys 拷贝到C:WindowsSystem32drivers 目录下。
2.进入控制面板,点击“添加硬件”。
3.选择“是,我已经连接了此硬件”
4.选择“添加新的硬件设备”,点击“下一步”
5.选择“安装我手动从列表选择的硬件(高级)”,点击“下一步”
6.选择“端口(COM 和LPT)”,点击“下一步”
7.在厂商中选择“(标准端口类型)”,点击“从磁盘安装(H)…”
8.在跳出的“从磁盘安装”窗口中点击“浏览(B)…”
9. 选择当前目录中的“giveio.inf”文件。
10. 在跳出的“硬件安装”窗口中点击“仍然继续(C)”
最后点击“完成”,结束安装,现在可以运行ZSJF24X0.exe 来对NandFlash 进行烧写了。
二、正常烧写
E:aa>sjf2410.exe /f:u-boot.bin
+------------------------------------+
| SEC JTAG FLASH(SJF) v 0.4 |
| (S3C2410X & SMDK2410 B/D) |
| --- 18/02/2004 [Nx] |
+------------------------------------+
Usage: SJF /f:
> S3C2410X(ID=0x0032409d) is detected.
[SJF Main Menu]
0:K9F1208 prog 1:28F128J3A prog 2:AM29LV800 Prog 3:Memory Rd/Wr
4:Exit
Select the function to test:0
[K9F1208 NAND Flash JTAG Programmer]
K9F1208 is detected. ID=0xec76
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :0
[SMC(K9S1208V0M) NAND Flash Writing Program]
Source size:0h~1c4abh
Available target block number: 0~4095
Input target block number:0
target start block number =0 烧写起始块
target size (0x4000*n) =0x20000 烧写占用字节数
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :2
三、bootdelay=0的解决办法
首先我们要明确:
1. uboot烧写地址为0x0~0x20000
2. uboot参数保存在地址 0x20000~0x3FFFF
那么我们要做的就是?擦除参数保存的区域内容,或者说是让这个区域内容变得混乱一些。这样uboot在加载时会提示CRC校验错误,从而加载默认参数,实现我们的目的。
我的做法是将uboot.bin文件写入这个参数区域中,实现CRC检验失败的目的。
E:aa>sjf2410.exe /f:u-boot.bin
+------------------------------------+
| SEC JTAG FLASH(SJF) v 0.4 |
| (S3C2410X & SMDK2410 B/D) |
| --- 18/02/2004 [Nx] |
+------------------------------------+
Usage: SJF /f:
> S3C2410X(ID=0x0032409d) is detected.
[SJF Main Menu]
0:K9F1208 prog 1:28F128J3A prog 2:AM29LV800 Prog 3:Memory Rd/Wr
4:Exit
Select the function to test:0
[K9F1208 NAND Flash JTAG Programmer]
K9F1208 is detected. ID=0xec76
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :0
[SMC(K9S1208V0M) NAND Flash Writing Program]
Source size:0h~1c4abh
Available target block number: 0~4095
Input target block number:8 起始块数为8,那么开始地址就是0x4000*8=20000
target start block number =8
target size (0x4000*n) =0x20000 终止地址为20000+1FFFF=3FFFF
STATUS:Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
Epppppppppppppppppppppppppppppppp
0:K9F1208 Program 1:K9F1208 Pr BlkPage 2:Exit
Select the function to test :2
说明:起始地址是由0开始的,所以加上字节数要减1。
破解延时问题后,建议在uboot下使用命令擦除参数区域。
erase 20000 3ffff