JZ2440如何烧写裸板程序,在 Linux 下使用 dnw 和 u-boot 烧写系统 和 用Tftp 下载
2015-04-09 11:46
246 查看
*使用
JLink 烧写
Nor Flash
JLink
只支持烧写
Nor Flash,不支持烧写
Nand Flash。要烧写
Nand Flash 只能按这几步
操作:
1. 开发板设为
Nor Flash
启动(开发板有选择
Nor Flash
或 Nand Flash
启动的开关)
2. 接好
JLlink 后, 用
JLink 的软件
J-Flash 烧写百问网特制的
u-boot.bin 到
Nor Flash 上去
3. 重启开发板,在串口里操作
u-boot
烧写 Nand Flash
下面烧写
1.
准备工作:
JLink 的
USB 口接到电脑上,
JLink 的
JTAG 口用排线和开发板的
JTAG 口相
连,开发板设为 Nor Flash
启动并上电
2. 启动
J-Flash。
在 J-Flash
里操作:
1.选择菜单“
File -> Open -> Open Project…”,打开附件里的
s3c2440.jflash。
2.选择菜单“
Target -> Connect”。
3.
选择菜单“
File -> Open”,打开要烧写的二进制文件,比如
u-boot.bin,并且在“
Start
address”里输入
0。
4.
选择菜单“
Target -> Auto”即可自动烧写。
*在
Linux
下使用 dnw
和 u-boot
烧写系统
在 Linux
下使用
dnw 无需安装驱动, 将光盘
linux/tools 目录下的
dnw 文件复制到主机
/usr/bin
目录下,如下修改属性即可:
sudo chmod +x /usr/bin/dnw
dnw
命令本身的使用方法为(注意:要发送成功,单板必须运行具有
USB
下载功能的
bootloader):
sudo dnw <file> [address]
这个命令将文件<file>通过
USB
口发送到单板上, [address]是可选项,默认值是
0x30000000, 它表示这个文件想存放到
SDRAM
的位置; bootloader
会自己决定把文件保存
在 SDRAM
哪里,是否使用[address]取决于
bootloader。
下面以例子说明如何烧写系统:
① 烧写内核:
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
界面即可看到下载、烧写的提示信息。
*用Tftp 下载(在linux 下安装了Tftp 服务)
a 打开windows下Tftp 软件 选择 PC机IP地址和源文件路径。
b 在 串口下 输入q-》print 查看 开发板和服务器IP
命令:
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
bootdelay=2
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
netmask=255.255.255.0
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
ipaddr=192.168.1.12
serverip=192.168.1.100
stdin=serial
stdout=serial
stderr=serial
partition=nand0,0
mtddevnum=0
mtddevname=bootloader
filesize=0
OpenJTAG> set ipaddr 192.168.1.12
OpenJTAG> set serverip 192.168.1.101
OpenJTAG> save
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
OpenJTAG> tftp 30000000 uImage_4.3
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
TFTP from server 192.168.1.101; our IP address is 192.168.1.12
Filename 'uImage_4.3'.
Load address: 0x30000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#####################################
done
Bytes transferred = 1848732 (1c359c hex)
出现这个下载成功
OpenJTAG> mtdpart(显示有哪些分区)
device nand0 <nandflash0>, # parts = 4
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00200000 0x00060000 0
3: root 0x0fda0000 0x00260000 0
active partition: nand0,0 - (bootloader) 0x00040000 @ 0x00000000
defaults:
mtdids : nand0=nandflash0
mtdparts: mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
开始烧写步骤
烧写内核
OpenJTAG> nand erase kernel
NAND erase: device 0 offset 0x60000, size 0x200000
Skipping bad block at 0x00140000
Erasing at 0x240000 -- 100% complete.
OK
OpenJTAG> nand write.jffs2 30000000 kernel
NAND erase: device 0 offset 0x60000, size 0x200000
Skipping bad block at 0x00140000
Erasing at 0x240000 -- 100% complete.
OK
OpenJTAG> nand write.jffs2 30000000 kernel
NAND write: device 0 offset 0x60000, size 0x200000
Bad block at 0x140000 in erase block from 0x140000 will be skipped
Writing data at 0x27f800 -- 100% complete.
2097152 bytes written: OK
烧写内核成功
烧写
YAFFS
文件系统映象:
OpenJTAG> tftp 30000000 fs_qtopia.yaffs2
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
TFTP from server 192.168.1.101; our IP address is 192.168.1.12
Filename 'fs_qtopia.yaffs2
Load address: 0x30000000
Loading: #################################################################
#################################################################
#################################################################
done
Bytes transferred = 49769280 (2f76b40 hex)
OpenJTAG> nand erase root
OpenJTAG> nand write.yaffs 30000000 0x00260000 $(filesize)
下一步重启即可看见QT界面
JLink 烧写
Nor Flash
JLink
只支持烧写
Nor Flash,不支持烧写
Nand Flash。要烧写
Nand Flash 只能按这几步
操作:
1. 开发板设为
Nor Flash
启动(开发板有选择
Nor Flash
或 Nand Flash
启动的开关)
2. 接好
JLlink 后, 用
JLink 的软件
J-Flash 烧写百问网特制的
u-boot.bin 到
Nor Flash 上去
3. 重启开发板,在串口里操作
u-boot
烧写 Nand Flash
下面烧写
1.
准备工作:
JLink 的
USB 口接到电脑上,
JLink 的
JTAG 口用排线和开发板的
JTAG 口相
连,开发板设为 Nor Flash
启动并上电
2. 启动
J-Flash。
在 J-Flash
里操作:
1.选择菜单“
File -> Open -> Open Project…”,打开附件里的
s3c2440.jflash。
2.选择菜单“
Target -> Connect”。
3.
选择菜单“
File -> Open”,打开要烧写的二进制文件,比如
u-boot.bin,并且在“
Start
address”里输入
0。
4.
选择菜单“
Target -> Auto”即可自动烧写。
*在
Linux
下使用 dnw
和 u-boot
烧写系统
在 Linux
下使用
dnw 无需安装驱动, 将光盘
linux/tools 目录下的
dnw 文件复制到主机
/usr/bin
目录下,如下修改属性即可:
sudo chmod +x /usr/bin/dnw
dnw
命令本身的使用方法为(注意:要发送成功,单板必须运行具有
USB
下载功能的
bootloader):
sudo dnw <file> [address]
这个命令将文件<file>通过
USB
口发送到单板上, [address]是可选项,默认值是
0x30000000, 它表示这个文件想存放到
SDRAM
的位置; bootloader
会自己决定把文件保存
在 SDRAM
哪里,是否使用[address]取决于
bootloader。
下面以例子说明如何烧写系统:
① 烧写内核:
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
界面即可看到下载、烧写的提示信息。
*用Tftp 下载(在linux 下安装了Tftp 服务)
a 打开windows下Tftp 软件 选择 PC机IP地址和源文件路径。
b 在 串口下 输入q-》print 查看 开发板和服务器IP
命令:
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
bootdelay=2
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
netmask=255.255.255.0
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
ipaddr=192.168.1.12
serverip=192.168.1.100
stdin=serial
stdout=serial
stderr=serial
partition=nand0,0
mtddevnum=0
mtddevname=bootloader
filesize=0
OpenJTAG> set ipaddr 192.168.1.12
OpenJTAG> set serverip 192.168.1.101
OpenJTAG> save
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
OpenJTAG> tftp 30000000 uImage_4.3
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
TFTP from server 192.168.1.101; our IP address is 192.168.1.12
Filename 'uImage_4.3'.
Load address: 0x30000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#####################################
done
Bytes transferred = 1848732 (1c359c hex)
出现这个下载成功
OpenJTAG> mtdpart(显示有哪些分区)
device nand0 <nandflash0>, # parts = 4
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00200000 0x00060000 0
3: root 0x0fda0000 0x00260000 0
active partition: nand0,0 - (bootloader) 0x00040000 @ 0x00000000
defaults:
mtdids : nand0=nandflash0
mtdparts: mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
开始烧写步骤
烧写内核
OpenJTAG> nand erase kernel
NAND erase: device 0 offset 0x60000, size 0x200000
Skipping bad block at 0x00140000
Erasing at 0x240000 -- 100% complete.
OK
OpenJTAG> nand write.jffs2 30000000 kernel
NAND erase: device 0 offset 0x60000, size 0x200000
Skipping bad block at 0x00140000
Erasing at 0x240000 -- 100% complete.
OK
OpenJTAG> nand write.jffs2 30000000 kernel
NAND write: device 0 offset 0x60000, size 0x200000
Bad block at 0x140000 in erase block from 0x140000 will be skipped
Writing data at 0x27f800 -- 100% complete.
2097152 bytes written: OK
烧写内核成功
烧写
YAFFS
文件系统映象:
OpenJTAG> tftp 30000000 fs_qtopia.yaffs2
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
TFTP from server 192.168.1.101; our IP address is 192.168.1.12
Filename 'fs_qtopia.yaffs2
Load address: 0x30000000
Loading: #################################################################
#################################################################
#################################################################
done
Bytes transferred = 49769280 (2f76b40 hex)
OpenJTAG> nand erase root
OpenJTAG> nand write.yaffs 30000000 0x00260000 $(filesize)
下一步重启即可看见QT界面
相关文章推荐
- 以jz2440为例用TFTP,NFS,linux下的dnw来下载烧写内核和文件系统
- 使用u-boot的tftp下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记09
- 使用u-boot的USB下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记06
- 2016.3.27-学习笔记:裸板程序、U-Boot、内核、文件系统的烧写
- Linux系统中用DNW向ARM开发板下载程序
- ubuntu系统使用dnw下载程序
- linux下使用kermit和dnw烧写程序
- (韦)dnw无法使用,uboot+ 通过tftp ,nfs 下载之nand flash
- linux中使用串口(dnw)下载程序到jz2440开发板
- 在linux下使用kermit和dnw给ARM板下载程序
- ubuntu系统使用dnw下载程序
- Arduino 003 Ubuntu(Linux) 系统下,如何给板子烧写程序
- U-Boot使用loadb下载程序(附测试代码) --基于Linux下Kermit工具
- 如何查看Linux系统下程序运行时使用的库?
- 基于Ubuntu系统的Tiny4412使用dnw下载程序
- 如何在Windows下使用Linux系统来编译和运行程序?
- Arduino 003 Ubuntu(Linux) 系统下,如何给板子烧写程序
- 基于U-boot完成NandFlash裸板程序烧写(DNW&TFTP)
- 如何使用Linux LiveCD评估系统的安全性
- (转载) 如何在Linux使用Eclipse + CDT开发C/C++程序? (OS) (Linux) (C/C++) (gcc) (g++)