程序烧写方法详细讲解

同时支持S3C2410、S3C2440、s3c6410同时支持OpenJTAG、并口JTAG、支持所有Nor、Nand Flash的烧写工具oflash发布,并口JTAG分dongle、wiggler两种,如果不确定是哪种可以都试试。

一.windows版本:oflash.exe

FTD2XX.dll放到C:\WINDOWS\system32目录下,

或是放在oflash.exe同一个目录下。

二、linux版本:oflash

使用方法(注意:在Linux下前面oflash前要加上sudo):

1. 直接运行oflash,按照提示选择JTAG、CPU、NAND或NOR、读或写

2. oflash  <要烧写的文件>

3. 使用配置文件,建一个名为cfg.txt的文件,下面是一个例子:

 

# 说明:"#"号开头表示注释

#       每个配置占一行,每行有6个参数,分别表示:JTAG类型、CPU类型、Flash类型、读写类型、偏移地址、文件

#       可以在配置文件里写多个配置用来把不同的文件写到不同的Flash、不同的偏移地址去

#jtag(0:openjtag, 1:dongle并口, 2:wiggler并口) cpu(0:s3c2410, 1:s3c2440, 2: s3c6410)  flash(0:nand,1:nor)  read/write(0:write, 1:read)   offset     file

    1                                                         1                                         1                  0                        0        u-boot.bin

    1                                                         1                                 0                  0                        0        leds.bin

   

4. oflash -f<其他名字的配置文件>

5. 仿照配置文件的方式,把配置项直接放在oflash命令后面,比如:

oflash 0 1 1 0 0leds_nor.bin   //通过OpenJTAG把leds_nor.bin烧到S3C2440的Nor flash上

oflash 1 1 0 0 0leds_nand.bin  //通过dongle并口把leds_nand.bin烧到S3C2440的Nand flash上

三、使用并口工具:

将并口接线,进入命令行cmd (oflash安装见韦东山手册)

CdF:\Embedded\S3C2440\hardware

oflash leds.bin

进入oflash 依次选择:2 1 0 0 0

四、使用openjtag:

接openjtag,进入命令行cmd (oflash安装见韦东山手册)

CdF:\Embedded\S3C2440\hardware

oflash leds.bin

进入oflash 依次选择:0 1 0 0 0

注意代码中设置的波特率,secureCRT中的波特率按这个来

五、使用nor flash上的uboot:

 接openjtag,将拨码开关拨至nor flash,进入命令行cmd (oflash安装见韦东山手册)

CdF:\Embedded\S3C2440\hardware

oflash leds.bin

进入oflash 依次选择:0 1 1 1 0  拔掉openjtag 接上USB-COM线,打开secureCRT,上电,空格进入uboot

六、使用tftp:

拨至nor flash ,在uboot里按q ,print  

set ipaddr(随便设,与pc和虚拟机同网段)   set serverip(虚拟机ip)  save  接网线 ping 

tftp 30000000leds.bin(不需指定目录)  

裸机程序用这两句:

nand erase bootloader 

nand write 30000000 bootloader

内核的话用这两句:

nand erase kernel 

nand write.jffs2 30000000 kernel

使用nfs

前提:将虚拟机中nfs文件夹挂接到开发板

mount -t nfs -onolock,vers=2 192.168.1.106:/home/caihuanming/nfs /mnt

若没有设置网络,还要照上面tftp设置网络

nfs 30000000192.168.1.106:/home/caihuanming/nfs/leds.bin

nand erasebootloader 

nand write30000000 bootloader

 

七、使用Uboot烧写和Windows平台dnw:

进入uboot,选择n ,接两根USB线,拨至nor flash ,烧写完毕断电,拨为nand flash ,开启

八、在Linux下使用dnw和u-boot烧写系统

由于开发板USB COM1口接Windows和虚拟机不能同时接这两个平台,所以在打开Windows上SecureCRT要将虚拟机Linux断开USB链接(   ),让Windows链接USB( ),继而可以打开SecureCRT (COM15口),打开后进入u-boot菜单,选择k(烧写内核) 显示USB host is connected. Waiting a download.后可以将Windows断开USB链接,让虚拟机链接USB,然后执行命令:root@ubuntu:/home/caihuanming/loading/bin# sudo dnw uImage_4.3(uImage_4.3在当前目录下)

然后提示:DNW usb device found!

虚拟机:

DNWusb device found!

Sizeof file: 1848732 byte(s)

Addressof bootloader to receive data: 0x30000000

Tx:1848742/1848742, Percentage: 100.0%, Speed: 403.0KB/s, Time: 4.5S

U-boot:

Now, Downloading[ADDRESS:30000000h,TOTAL:1848742]

RECEIVED FILESIZE: 1848742 (601KB/S, 3S)

NAND erase:device 0 offset 0x60000, size 0x200000

Erasing at0x240000 -- 100% complete.

OK

NAND write:device 0 offset 0x60000, size 0x1c359c

Writing data at0x223000 -- 100% complete.

 1848732 bytes written: OK

此时内核烧写成功。

当前目录为:/home/caihuanming/loading/bin :

九、利用u-boot烧写:

① 烧写内核:

a. 在u-boot菜单界面输入“k”;

b. 在主机上执行sudo dnw uImage_4.3;

c. 在u-boot界面即可看到下载、烧写的提示信息。

② 烧写YAFFS文件系统映象:

a. 在u-boot菜单界面输入“y”;

b. 在主机上执行sudo dnw fs_qtopia_ts.yaffs2;

c. 在u-boot界面即可看到下载、烧写的提示信息。

③ 烧写JFFS2文件系统映象:

a. 在u-boot菜单界面输入“j”;

b. 在主机上执行sudo dnw fs_qtopia_ts.jffs2;

c. 在u-boot界面即可看到下载、烧写的提示信息。

④ 下载文件的SDRAM并运行:

a. 在u-boot菜单界面输入“d”;

b. 在主机上执行sudo dnw leds_0x31000000.bin 0x31000000;

c. 在u-boot界面即可看到下载、运行信息:u-boot会把接收到的文件放在步骤b设置的地址里,然后跳转去执行它。

⑤ 更新u-boot:

a. 在u-boot菜单界面输入“n”;

b. 在主机上执行sudo dnw u-boot.bin;

c. 在u-boot界面即可看到下载、烧写的提示信息。

EasyOpenJTAGOpenJTAG虽然可以烧写NorFlashNandFlash,但也只仅限于烧写裸板程序,不能烧写内核、文件系统。因此,dnwTFTPNFS这几种下载方式也是需要掌握的。

uboot烧写完成后,开发板就可以通过串口向外输出打印信息了。
配件中有两根一样的USB线。这两根线一根接USB-COM,用来将开发板的输出信息显示到电脑上,完成电脑和开发板的交互,这个串口用处很大。
另外一根接在相邻的miniUSB中,dnw烧写文件就是用的这个接口,下载速度5~6M/s,速度很快,跟用网线下载差不多,新手用dnw烧写是极好的。

你可能感兴趣的:(嵌入式,ARM体系结构,系统移植)