U-Boot使用loadb下载程序(附测试代码) --基于Linux下Kermit工具
2012-03-05 16:06
1016 查看
U-Boot使用loadb下载程序
--基于Linux下Kermit工具
初步移植好U-Boot,还没有研究网络、USB等高级功能,想试试通过串口下载程序的功能。经过一番倒腾之后,终于实现,现将笔记整理如下。
实验环境:Linux ubuntu 9.10(来自韦东山老师光盘自带虚拟机)
开发板: Jz2440(ARM9
S3C2440
NAND K9F2G08
SDRAM K4S561632 * 2)
U-Boot: u-boot-1.1.6
烧写工具: OpenJtag
串口工具:kermit
一、Linux下串口工具kermit安装使用
由于光盘自带的ubuntu中已经安装好串口工具kermit,在此就不安装了。可以在Linux控制台运行命令kermit,如果输出
C-Kermit>
则kermit已经安装。
Kermit安装使用方法,请查看附件参考资料。
二、实验步骤
1.准备工作
A.启动虚拟机中的Linux系统
Ubuntu 9.10
B.开发板Jz2440上电
C.插上OpenJtag。
使用OpenJtag时,确定已经在Linux环境下安装了OpenJtag驱动。
为确保Linux能比WindowXP先识别OpenJtag,请全屏Ubuntu虚拟机,然后在命令行输入
ls /dev/
出现的设备中除了tty、tty0、tty1外应该能看到设备ttyUSB0或者ttyUSB1。
否则就是OpenJtag没有识别,请拔下重新插入,或者检查OpenJtag驱动是否安装。
D.将OpenJtag线插入Jz2440开发板Jtag插槽
E.使用串口线连接OpenJtag与Jz2440开发板
至此,准备工作完成。
2.烧写U-Boot
使用OpenJtag烧写u-boot.bin到Jz2440开发板。操作过程(红色为输入):
root@book-desktop:/home/book/workspace/U-Boot/Jz_u-boot-1.1.6# oflash
+---------------------------------------------------------+
|Flash Programmer v1.3 for OpenJTAG ofwww.100ask.net|
|OpenJTAG is a USB to JTAG & RS232 tool based FT2232|
|This programmer supports both of S3C2410X & S3C2440|
|Author: Email/MSN(thisway.diy@163.com),
QQ(17653039)|
+---------------------------------------------------------+
Usage:
1. oflash, run with cfg.txt or prompt
2. oflash [file], write [file] to flash with prompt
3. oflash [-f config_file]
4. oflash [jtag_type] [cpu_type] [flash_type] [read_or_write] [offset] [file]
Can't open cfg.txt, you should follow the prompt
Select the JTAG type:
0. OpenJTAG
1. Dongle JTAG(parallel port)
Enter the number: 0
Select the CPU:
1. S3C2410X
2. S3C2440X
Enter the number:2
'ft2232' interface using libftdi with 'USB<=>JTAG&RS232' layout (1457:5118)
current latency timer: 2
FTDI chip type: 2 "2232C"
S3C24X0 detected, cpuID = 0x0032409d
[Main Menu]
0:Nand Flash prog
1:Nor Flash prog
2:Memory Rd/Wr
3:Exit
Select the function to test:0
Enter the file name:u-boot.bin
[NAND Flash JTAG Programmer]
Scan nand flash:
Device 0: NAND 256MiB 3,3V 8-bit, sector size 128 KiB
Total size: 256 MiB
0:Nand Flash Program
1:Nand Flash Print BlkPage
2:Exit
Select the function to test :0
[NAND Flash Writing Program]
Source size: 0x17df4
Available target block number: 0~2047
Input target block number:0
target start block number
=0
target size
(0x20000*1) =0x20000
STATUS:
Epppppppppppppppppppppppppppppppppppppppppppppppp
3.设置Linux串口工具kermit
在Linux命令行输入kermit,然后按照以下过程输入kermit命令,初始化kermit(红色字体为输入)。
root@book-desktop:/home/book#
kermit
C-Kermit 8.0.211, 10 Apr 2004, for Linux
Copyright (C) 1985, 2004,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/book/) C-Kermit>set line /dev/ttyUSB0 (或者set line /dev/ttyUSB1)
(/home/book/) C-Kermit>set speed 115200
/dev/ttyUSB0, 115200 bps
(/home/book/) C-Kermit>set carrier-watch off
(/home/book/) C-Kermit>set handshake none
(/home/book/) C-Kermit>set flow-control none
(/home/book/) C-Kermit>robust
(/home/book/) C-Kermit>set file type bin
(/home/book/) C-Kermit>set file name lit
(/home/book/) C-Kermit>set rec pack 1000
(/home/book/) C-Kermit>set send pack 1000
(/home/book/) C-Kermit>set window 5
(/home/book/) C-Kermit>connect
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
JZ2440 #
看到有U-Boot提示符“JZ2440 #”出现,说明通过串口工具kermit已经设置OK。
在u-boot界面按下ctrl + \ ,再按c键,就会切换到kermit界面
JZ2440 # (u-boot界面)
(Back at book-desktop)
----------------------------------------------------
(/home/book/) C-Kermit> (kermit界面)
在kermit界面输入c(就是connect的意思),即可切换到u-boot界面
----------------------------------------------------
(/home/book/) C-Kermit>c (kermit界面)
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
JZ2440 # (u-boot界面)
4.下载程序
由于程序是下载到SDRAM(U-Boot已经初始化了SDRAM)中运行,所以程序的连接地址是0x30000000,这点要特别注意!
附件中leds_0x30000000.rar就是已经修改好的led闪灯程序,其连接地址是0x30000000。
在u-boot界面,输入loadb 0x30000000,就是将程序下载到内存的0x30000000地址。
JZ2440 # loadb 0x30000000
## Ready for binary (kermit) download to 0x30000000 at 115200 bps...
u-boot正在等待程序下载
按ctrl + \ 然后按 c,切换到kermit界面。发送已经编译好的leds.bin(连接地址为0x30000000,特别注意!!!)(红色字体为输入)。
(/home/book/) C-Kermit>send /home/book/leds.bin
下载完毕,输入c切换到u-boot界面
(/home/book/) C-Kermit>c (在kermit界面输入c)
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
## Total Size = 0x000000a8 = 168 Bytes
## Start Addr = 0x30000000
JZ2440 # (切换到了u-boot界面)
绿色字体显示数据已经下载完毕,下载到了0x30000000地址。
使用u-boot go命令,执行leds程序
JZ2440 # go 0x30000000 (u-boot界面)
## Starting application at 0x30000000 ...
此时,Jz2440开发板上的led已经开始闪烁了,使用kermit下载程序OK!
三 、技巧
使用kermit时,每次启动连接都要输入set xxx …命令,很繁琐,直接将命令输入到~/.kermrc里面保存,以后使用kermit命令就直接可以使用了。
root@book-desktop:/home/book# vi ~/.kermrc
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
c
四、为什么不用minicom?
minicom也是Linux下一个很好用的串口工具,为什么u-boot不使用minicom传输文件?u-boot官网说明的很清楚了:
minicom is another popular serial communication program. Unfortunately, many users have reported problems using it with U-Boot and Linux, especially when trying to use it for serial image download. It's use is therefore discouraged.
http://www.denx.de/wiki/view/DUL ... ad#Section_5.9.5.3.
五、附件
移植好的Jz2440简单u-boot
Jz2440_u-boot_bin.rar( 47.44 K, 下载次数:1)
测试用的连接地址为0x30000000的leds闪灯程序
leds_0x30000000.rar( 7.11 K, 下载次数:1)
参考资料:
1.《C-Kermit安装和使用及下载内核方法》
http://wenku.baidu.com/view/34378323bcd126fff7050bbc.html
声明:本文为个人原创,边移植边写,完全来自实践。本文首先发表在百问网(www.100ask.net)转载请指明出处。
原文地址:
http://www.100ask.net/forum/showtopic-3627.aspx
免费视频下载地址:
第1期共33个视频,免费,下载后可以直接观看,下载地址:
http://115.com/folder/fa55184z#
http://dl.dbank.com/c03o1ebwlo
第一期视频从Linux安装开始,讲解了SDRAM、NAND
FLASH、LCD等硬件操作,U-Boot的移植、内核移植、简单字符驱动的编写,非常详尽。
第二期视频主要是驱动深入讲解,精华啊!
第二期视频需要收费的哦,具体见韦东山老师淘宝店铺:
http://100ask.taobao.com/
书籍资料下载:
《嵌入式Linux应用开发完全手册》及相关资源电炉可以下载:
http://www.verycd.com/topics/2828590/
嵌入式linux应用开发完全手册光盘里的驱动和例子源代码.rar
详情
嵌入式linux应用开发完全手册.pdf
详情
如果能买一块韦东山老师的开发板,加上视频讲解,加上书,那学起来就太Easy了!
淘宝店铺上http://100ask.taobao.com/
全套都有了!!!
--基于Linux下Kermit工具
初步移植好U-Boot,还没有研究网络、USB等高级功能,想试试通过串口下载程序的功能。经过一番倒腾之后,终于实现,现将笔记整理如下。
实验环境:Linux ubuntu 9.10(来自韦东山老师光盘自带虚拟机)
开发板: Jz2440(ARM9
S3C2440
NAND K9F2G08
SDRAM K4S561632 * 2)
U-Boot: u-boot-1.1.6
烧写工具: OpenJtag
串口工具:kermit
一、Linux下串口工具kermit安装使用
由于光盘自带的ubuntu中已经安装好串口工具kermit,在此就不安装了。可以在Linux控制台运行命令kermit,如果输出
C-Kermit>
则kermit已经安装。
Kermit安装使用方法,请查看附件参考资料。
二、实验步骤
1.准备工作
A.启动虚拟机中的Linux系统
Ubuntu 9.10
B.开发板Jz2440上电
C.插上OpenJtag。
使用OpenJtag时,确定已经在Linux环境下安装了OpenJtag驱动。
为确保Linux能比WindowXP先识别OpenJtag,请全屏Ubuntu虚拟机,然后在命令行输入
ls /dev/
出现的设备中除了tty、tty0、tty1外应该能看到设备ttyUSB0或者ttyUSB1。
否则就是OpenJtag没有识别,请拔下重新插入,或者检查OpenJtag驱动是否安装。
D.将OpenJtag线插入Jz2440开发板Jtag插槽
E.使用串口线连接OpenJtag与Jz2440开发板
至此,准备工作完成。
2.烧写U-Boot
使用OpenJtag烧写u-boot.bin到Jz2440开发板。操作过程(红色为输入):
root@book-desktop:/home/book/workspace/U-Boot/Jz_u-boot-1.1.6# oflash
+---------------------------------------------------------+
|Flash Programmer v1.3 for OpenJTAG ofwww.100ask.net|
|OpenJTAG is a USB to JTAG & RS232 tool based FT2232|
|This programmer supports both of S3C2410X & S3C2440|
|Author: Email/MSN(thisway.diy@163.com),
QQ(17653039)|
+---------------------------------------------------------+
Usage:
1. oflash, run with cfg.txt or prompt
2. oflash [file], write [file] to flash with prompt
3. oflash [-f config_file]
4. oflash [jtag_type] [cpu_type] [flash_type] [read_or_write] [offset] [file]
Can't open cfg.txt, you should follow the prompt
Select the JTAG type:
0. OpenJTAG
1. Dongle JTAG(parallel port)
Enter the number: 0
Select the CPU:
1. S3C2410X
2. S3C2440X
Enter the number:2
'ft2232' interface using libftdi with 'USB<=>JTAG&RS232' layout (1457:5118)
current latency timer: 2
FTDI chip type: 2 "2232C"
S3C24X0 detected, cpuID = 0x0032409d
[Main Menu]
0:Nand Flash prog
1:Nor Flash prog
2:Memory Rd/Wr
3:Exit
Select the function to test:0
Enter the file name:u-boot.bin
[NAND Flash JTAG Programmer]
Scan nand flash:
Device 0: NAND 256MiB 3,3V 8-bit, sector size 128 KiB
Total size: 256 MiB
0:Nand Flash Program
1:Nand Flash Print BlkPage
2:Exit
Select the function to test :0
[NAND Flash Writing Program]
Source size: 0x17df4
Available target block number: 0~2047
Input target block number:0
target start block number
=0
target size
(0x20000*1) =0x20000
STATUS:
Epppppppppppppppppppppppppppppppppppppppppppppppp
3.设置Linux串口工具kermit
在Linux命令行输入kermit,然后按照以下过程输入kermit命令,初始化kermit(红色字体为输入)。
root@book-desktop:/home/book#
kermit
C-Kermit 8.0.211, 10 Apr 2004, for Linux
Copyright (C) 1985, 2004,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/book/) C-Kermit>set line /dev/ttyUSB0 (或者set line /dev/ttyUSB1)
(/home/book/) C-Kermit>set speed 115200
/dev/ttyUSB0, 115200 bps
(/home/book/) C-Kermit>set carrier-watch off
(/home/book/) C-Kermit>set handshake none
(/home/book/) C-Kermit>set flow-control none
(/home/book/) C-Kermit>robust
(/home/book/) C-Kermit>set file type bin
(/home/book/) C-Kermit>set file name lit
(/home/book/) C-Kermit>set rec pack 1000
(/home/book/) C-Kermit>set send pack 1000
(/home/book/) C-Kermit>set window 5
(/home/book/) C-Kermit>connect
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
JZ2440 #
看到有U-Boot提示符“JZ2440 #”出现,说明通过串口工具kermit已经设置OK。
在u-boot界面按下ctrl + \ ,再按c键,就会切换到kermit界面
JZ2440 # (u-boot界面)
(Back at book-desktop)
----------------------------------------------------
(/home/book/) C-Kermit> (kermit界面)
在kermit界面输入c(就是connect的意思),即可切换到u-boot界面
----------------------------------------------------
(/home/book/) C-Kermit>c (kermit界面)
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
JZ2440 # (u-boot界面)
4.下载程序
由于程序是下载到SDRAM(U-Boot已经初始化了SDRAM)中运行,所以程序的连接地址是0x30000000,这点要特别注意!
附件中leds_0x30000000.rar就是已经修改好的led闪灯程序,其连接地址是0x30000000。
在u-boot界面,输入loadb 0x30000000,就是将程序下载到内存的0x30000000地址。
JZ2440 # loadb 0x30000000
## Ready for binary (kermit) download to 0x30000000 at 115200 bps...
u-boot正在等待程序下载
按ctrl + \ 然后按 c,切换到kermit界面。发送已经编译好的leds.bin(连接地址为0x30000000,特别注意!!!)(红色字体为输入)。
(/home/book/) C-Kermit>send /home/book/leds.bin
下载完毕,输入c切换到u-boot界面
(/home/book/) C-Kermit>c (在kermit界面输入c)
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
## Total Size = 0x000000a8 = 168 Bytes
## Start Addr = 0x30000000
JZ2440 # (切换到了u-boot界面)
绿色字体显示数据已经下载完毕,下载到了0x30000000地址。
使用u-boot go命令,执行leds程序
JZ2440 # go 0x30000000 (u-boot界面)
## Starting application at 0x30000000 ...
此时,Jz2440开发板上的led已经开始闪烁了,使用kermit下载程序OK!
三 、技巧
使用kermit时,每次启动连接都要输入set xxx …命令,很繁琐,直接将命令输入到~/.kermrc里面保存,以后使用kermit命令就直接可以使用了。
root@book-desktop:/home/book# vi ~/.kermrc
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
c
四、为什么不用minicom?
minicom也是Linux下一个很好用的串口工具,为什么u-boot不使用minicom传输文件?u-boot官网说明的很清楚了:
minicom is another popular serial communication program. Unfortunately, many users have reported problems using it with U-Boot and Linux, especially when trying to use it for serial image download. It's use is therefore discouraged.
http://www.denx.de/wiki/view/DUL ... ad#Section_5.9.5.3.
五、附件
移植好的Jz2440简单u-boot
Jz2440_u-boot_bin.rar( 47.44 K, 下载次数:1)
测试用的连接地址为0x30000000的leds闪灯程序
leds_0x30000000.rar( 7.11 K, 下载次数:1)
参考资料:
1.《C-Kermit安装和使用及下载内核方法》
http://wenku.baidu.com/view/34378323bcd126fff7050bbc.html
声明:本文为个人原创,边移植边写,完全来自实践。本文首先发表在百问网(www.100ask.net)转载请指明出处。
原文地址:
http://www.100ask.net/forum/showtopic-3627.aspx
免费视频下载地址:
第1期共33个视频,免费,下载后可以直接观看,下载地址:
http://115.com/folder/fa55184z#
http://dl.dbank.com/c03o1ebwlo
第一期视频从Linux安装开始,讲解了SDRAM、NAND
FLASH、LCD等硬件操作,U-Boot的移植、内核移植、简单字符驱动的编写,非常详尽。
第二期视频主要是驱动深入讲解,精华啊!
第二期视频需要收费的哦,具体见韦东山老师淘宝店铺:
http://100ask.taobao.com/
书籍资料下载:
《嵌入式Linux应用开发完全手册》及相关资源电炉可以下载:
http://www.verycd.com/topics/2828590/
嵌入式linux应用开发完全手册光盘里的驱动和例子源代码.rar
详情
嵌入式linux应用开发完全手册.pdf
详情
如果能买一块韦东山老师的开发板,加上视频讲解,加上书,那学起来就太Easy了!
淘宝店铺上http://100ask.taobao.com/
全套都有了!!!
相关文章推荐
- gcov命令_Linux gcov 命令用法详解:测试程序的代码覆盖率的工具
- 在linux下使用kermit和dnw给ARM板下载程序
- 使用u-boot的USB下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记06
- Linux下网站压力测试工具webbench下载安装使用
- Linux串口测试工具简单程序代码解析
- 基于Linux+kermit+cutecom下载u-boot到芯片里面去
- JZ2440如何烧写裸板程序,在 Linux 下使用 dnw 和 u-boot 烧写系统 和 用Tftp 下载
- 使用u-boot的tftp下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记09
- Linux下网站压力测试工具webbench下载安装使用
- 基于webrtc的gips 语音引擎库及测试程序(源代码下载地址:http://download.csdn.net/detail/dotphoenix/3674515)
- 基于Linux的S3C6410模拟SPI的外围设备驱动程序、Makefile及测试程序的实现
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- Linux 下使用 工具 youtube-dl 下载 youtube, vimeo 视频
- [原创]Linux下Siege压力测试工具使用介绍
- Linux下使用GDB工具调试程序
- 5个基于Linux命令行的文件下载和网站浏览工具
- linux下的内核测试工具——perf使用简介
- linux Qt程序打包(linuxdeployqt工具的使用)
- 你都使用哪些工具来测试代码的性能?
- 基于在生产环境中使用php性能测试工具xhprof的详解