在Ubuntu下,建立下载image文件到Mini2440或者TQ2440开发板的环境
2012-02-21 22:03
537 查看
如果需要转载本文,就注明本文出处,谢谢。
众所周知,在做这类嵌入式开发,尤其是我们自己在玩开发板的时候,一般,都需要建立起一个下载的环境。
通常,串口工具软件会使用标准的COMx端口与目标开发板进行通信,控制与显示,而下载image文件到目标开发板,通常用并口或者USB口。
很遗憾的是,随着电子技术,通信技术的发展,并口,串口这类接口正在退出舞台,逐渐成为历史。
今天,我们就针对于笔记本或者台式机上没有COM口和并口的计算机,介绍一个可用的方法,建立起下载image文件到目标开发板的一个通道。
下面所介绍的内容,都是基于Linux OS的,我使用的是Ubuntu。信息如下。
首先,我们说下串口通道。
这里会用到一个USB转RS232的转换接口,从计算机出来是USB信号,经过该转换接口之后,转换为RS232信号到达目标开发板的9-pin COM口。
上面,黑色字体一行,即是我的USB转串口的设备
下面配置minicom,串口通信工具
选择Serial port setup
设置好之后,输入回车,退回到如下界面。
注意,上面的设置中,默认值通常是开启硬件流控的,也就是Hardware flow control。请取消该选项,也就是设置成NO。
serial device 要选择正确,可以通过点击A,进行serial deviece的配置。配置好之后,点击Enter回车退出serial setup 建立界面。
选择Save setup as dfl,保存为默认配置,或者 Save setup as .. 另存为
经过配置,配置发生了变化,为了让配置生效,我们选择Exit from Minicom,退出Minicom。
之后,输入MInicom就会以默认配置启动了。
上面配置好了串口,这时,如果给板子上电的话,
U-boot的菜单就会显示在Minicom的界面上了。
之后,让我们来看看,如何使用另一个USB口将image文件上载到目标开发板上。
这里会用到一个工具,名为 s3c2410_boot_usb,其sources的下载地址是
下载保存到你希望的路径下。解压,有4个文件,如下面的黑色字体描述
但是,不要着急,在利用该sources构建s3c2410_boot_usb这么一个通过USB口upload文件到目标开发板的工具之前,
需要做2件事,
1. 确认安装libusb-dev,这个package里应该包含了一些操作USB接口的APIs。
2. 如果你的Ubuntu安装的GCC版本是4.6,或者以上的,
将
修改为
做完上面的2件事,之后就可以在 s3c2410_boot_usb 目录下输入make 命令,构建s3c2410_boot_usb工具了
构建成功, 可以将该工具放在path的路径下,这样,就不需要在 s3c2410_boot_usb 目录下使用该命令了。
该工具的使用命令是,第一个是上载工具,第二个参数是要上载到目标开发板的zImage镜像文件,注意两个参数间的空格
众所周知,在做这类嵌入式开发,尤其是我们自己在玩开发板的时候,一般,都需要建立起一个下载的环境。
通常,串口工具软件会使用标准的COMx端口与目标开发板进行通信,控制与显示,而下载image文件到目标开发板,通常用并口或者USB口。
很遗憾的是,随着电子技术,通信技术的发展,并口,串口这类接口正在退出舞台,逐渐成为历史。
今天,我们就针对于笔记本或者台式机上没有COM口和并口的计算机,介绍一个可用的方法,建立起下载image文件到目标开发板的一个通道。
下面所介绍的内容,都是基于Linux OS的,我使用的是Ubuntu。信息如下。
shawn@shawn-ThinkPad-T410:~$ uname -a Linux shawn-ThinkPad-T410 3.0.0-16-generic-pae #28-Ubuntu SMP Fri Jan 27 19:24:01 UTC 2012 i686 i686 i386 GNU/Linux
首先,我们说下串口通道。
这里会用到一个USB转RS232的转换接口,从计算机出来是USB信号,经过该转换接口之后,转换为RS232信号到达目标开发板的9-pin COM口。
shawn@shawn-ThinkPad-T410:/dev$ ls -al tty* crw-rw-rw- 1 root tty 5, 0 2012-02-19 23:42 tty crw--w---- 1 root tty 4, 0 2012-02-19 13:03 tty0 crw------- 1 root root 4, 1 2012-02-19 13:03 tty1 crw--w---- 1 root tty 4, 10 2012-02-19 13:03 tty10 crw--w---- 1 root tty 4, 11 2012-02-19 13:03 tty11 crw--w---- 1 root tty 4, 12 2012-02-19 13:03 tty12 crw--w---- 1 root tty 4, 13 2012-02-19 13:03 tty13 crw--w---- 1 root tty 4, 14 2012-02-19 13:03 tty14 crw--w---- 1 root tty 4, 15 2012-02-19 13:03 tty15 crw--w---- 1 root tty 4, 16 2012-02-19 13:03 tty16 crw--w---- 1 root tty 4, 17 2012-02-19 13:03 tty17 crw--w---- 1 root tty 4, 18 2012-02-19 13:03 tty18 crw--w---- 1 root tty 4, 19 2012-02-19 13:03 tty19 crw------- 1 root root 4, 2 2012-02-19 13:03 tty2 crw--w---- 1 root tty 4, 20 2012-02-19 13:03 tty20 crw--w---- 1 root tty 4, 21 2012-02-19 13:03 tty21 crw--w---- 1 root tty 4, 22 2012-02-19 13:03 tty22 crw--w---- 1 root tty 4, 23 2012-02-19 13:03 tty23 crw--w---- 1 root tty 4, 24 2012-02-19 13:03 tty24 crw--w---- 1 root tty 4, 25 2012-02-19 13:03 tty25 crw--w---- 1 root tty 4, 26 2012-02-19 13:03 tty26 crw--w---- 1 root tty 4, 27 2012-02-19 13:03 tty27 crw--w---- 1 root tty 4, 28 2012-02-19 13:03 tty28 crw--w---- 1 root tty 4, 29 2012-02-19 13:03 tty29 crw------- 1 root root 4, 3 2012-02-19 13:03 tty3 crw--w---- 1 root tty 4, 30 2012-02-19 13:03 tty30 crw--w---- 1 root tty 4, 31 2012-02-19 13:03 tty31 crw--w---- 1 root tty 4, 32 2012-02-19 13:03 tty32 crw--w---- 1 root tty 4, 33 2012-02-19 13:03 tty33 crw--w---- 1 root tty 4, 34 2012-02-19 13:03 tty34 crw--w---- 1 root tty 4, 35 2012-02-19 13:03 tty35 crw--w---- 1 root tty 4, 36 2012-02-19 13:03 tty36 crw--w---- 1 root tty 4, 37 2012-02-19 13:03 tty37 crw--w---- 1 root tty 4, 38 2012-02-19 13:03 tty38 crw--w---- 1 root tty 4, 39 2012-02-19 13:03 tty39 crw------- 1 root root 4, 4 2012-02-19 13:03 tty4 crw--w---- 1 root tty 4, 40 2012-02-19 13:03 tty40 crw--w---- 1 root tty 4, 41 2012-02-19 13:03 tty41 crw--w---- 1 root tty 4, 42 2012-02-19 13:03 tty42 crw--w---- 1 root tty 4, 43 2012-02-19 13:03 tty43 crw--w---- 1 root tty 4, 44 2012-02-19 13:03 tty44 crw--w---- 1 root tty 4, 45 2012-02-19 13:03 tty45 crw--w---- 1 root tty 4, 46 2012-02-19 13:03 tty46 crw--w---- 1 root tty 4, 47 2012-02-19 13:03 tty47 crw--w---- 1 root tty 4, 48 2012-02-19 13:03 tty48 crw--w---- 1 root tty 4, 49 2012-02-19 13:03 tty49 crw------- 1 root root 4, 5 2012-02-19 13:03 tty5 crw--w---- 1 root tty 4, 50 2012-02-19 13:03 tty50 crw--w---- 1 root tty 4, 51 2012-02-19 13:03 tty51 crw--w---- 1 root tty 4, 52 2012-02-19 13:03 tty52 crw--w---- 1 root tty 4, 53 2012-02-19 13:03 tty53 crw--w---- 1 root tty 4, 54 2012-02-19 13:03 tty54 crw--w---- 1 root tty 4, 55 2012-02-19 13:03 tty55 crw--w---- 1 root tty 4, 56 2012-02-19 13:03 tty56 crw--w---- 1 root tty 4, 57 2012-02-19 13:03 tty57 crw--w---- 1 root tty 4, 58 2012-02-19 13:03 tty58 crw--w---- 1 root tty 4, 59 2012-02-19 13:03 tty59 crw------- 1 root root 4, 6 2012-02-19 13:03 tty6 crw--w---- 1 root tty 4, 60 2012-02-19 13:03 tty60 crw--w---- 1 root tty 4, 61 2012-02-19 13:03 tty61 crw--w---- 1 root tty 4, 62 2012-02-19 13:03 tty62 crw--w---- 1 root tty 4, 63 2012-02-19 13:03 tty63 crw--w---- 1 root tty 4, 7 2012-02-19 13:03 tty7 crw--w---- 1 root tty 4, 8 2012-02-19 22:00 tty8 crw--w---- 1 root tty 4, 9 2012-02-19 13:03 tty9 crw------- 1 root root 5, 3 2012-02-19 13:03 ttyprintk crw-rw---- 1 root dialout 4, 64 2012-02-19 13:03 ttyS0 crw-rw---- 1 root dialout 4, 65 2012-02-19 13:03 ttyS1 crw-rw---- 1 root dialout 4, 74 2012-02-19 13:03 ttyS10 crw-rw---- 1 root dialout 4, 75 2012-02-19 13:03 ttyS11 crw-rw---- 1 root dialout 4, 76 2012-02-19 13:03 ttyS12 crw-rw---- 1 root dialout 4, 77 2012-02-19 13:03 ttyS13 crw-rw---- 1 root dialout 4, 78 2012-02-19 13:03 ttyS14 crw-rw---- 1 root dialout 4, 79 2012-02-19 13:03 ttyS15 crw-rw---- 1 root dialout 4, 80 2012-02-19 13:03 ttyS16 crw-rw---- 1 root dialout 4, 81 2012-02-19 13:03 ttyS17 crw-rw---- 1 root dialout 4, 82 2012-02-19 13:03 ttyS18 crw-rw---- 1 root dialout 4, 83 2012-02-19 13:03 ttyS19 crw-rw---- 1 root dialout 4, 66 2012-02-19 13:03 ttyS2 crw-rw---- 1 root dialout 4, 84 2012-02-19 13:03 ttyS20 crw-rw---- 1 root dialout 4, 85 2012-02-19 13:03 ttyS21 crw-rw---- 1 root dialout 4, 86 2012-02-19 13:03 ttyS22 crw-rw---- 1 root dialout 4, 87 2012-02-19 13:03 ttyS23 crw-rw---- 1 root dialout 4, 88 2012-02-19 13:03 ttyS24 crw-rw---- 1 root dialout 4, 89 2012-02-19 13:03 ttyS25 crw-rw---- 1 root dialout 4, 90 2012-02-19 13:03 ttyS26 crw-rw---- 1 root dialout 4, 91 2012-02-19 13:03 ttyS27 crw-rw---- 1 root dialout 4, 92 2012-02-19 13:03 ttyS28 crw-rw---- 1 root dialout 4, 93 2012-02-19 13:03 ttyS29 crw-rw---- 1 root dialout 4, 67 2012-02-19 13:03 ttyS3 crw-rw---- 1 root dialout 4, 94 2012-02-19 13:03 ttyS30 crw-rw---- 1 root dialout 4, 95 2012-02-19 13:03 ttyS31 crw-rw---- 1 root dialout 4, 68 2012-02-19 13:03 ttyS4 crw-rw---- 1 root dialout 4, 69 2012-02-19 13:03 ttyS5 crw-rw---- 1 root dialout 4, 70 2012-02-19 13:03 ttyS6 crw-rw---- 1 root dialout 4, 71 2012-02-19 13:03 ttyS7 crw-rw---- 1 root dialout 4, 72 2012-02-19 13:03 ttyS8 crw-rw---- 1 root dialout 4, 73 2012-02-19 13:03 ttyS9 crw-rw---- 1 root dialout 188, 0 2012-02-19 23:50 ttyUSB0 shawn@shawn-ThinkPad-T410:/dev$
上面,黑色字体一行,即是我的USB转串口的设备
下面配置minicom,串口通信工具
shawn@shawn-ThinkPad-T410:~$ minicom -s显示
+-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | | Exit from Minicom | +--------------------------+
选择Serial port setup
+-----------------------------------------------------------------------+ | A - Serial Device : /dev/ttyUSB0 | | B - Lockfile Location : /var/lock | | C - Callin Program : | | D - Callout Program : | | E - Bps/Par/Bits : 115200 8N1 | | F - Hardware Flow Control : No | | G - Software Flow Control : No | | | | Change which setting? | +-----------------------------------------------------------------------+ | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | | Exit from Minicom | +--------------------------+
设置好之后,输入回车,退回到如下界面。
注意,上面的设置中,默认值通常是开启硬件流控的,也就是Hardware flow control。请取消该选项,也就是设置成NO。
serial device 要选择正确,可以通过点击A,进行serial deviece的配置。配置好之后,点击Enter回车退出serial setup 建立界面。
+-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | | Exit from Minicom | +--------------------------+
选择Save setup as dfl,保存为默认配置,或者 Save setup as .. 另存为
经过配置,配置发生了变化,为了让配置生效,我们选择Exit from Minicom,退出Minicom。
之后,输入MInicom就会以默认配置启动了。
shawn@shawn-ThinkPad-T410:~$ minicom
上面配置好了串口,这时,如果给板子上电的话,
U-boot的菜单就会显示在Minicom的界面上了。
之后,让我们来看看,如何使用另一个USB口将image文件上载到目标开发板上。
这里会用到一个工具,名为 s3c2410_boot_usb,其sources的下载地址是
http://code.google.com/p/mini2440/downloads/detail?name=s3c2410_boot_usb-20060807.tar.bz2&can=2&q
下载保存到你希望的路径下。解压,有4个文件,如下面的黑色字体描述
shawn@shawn-ThinkPad-T410:~/Downloads$ tar xjf s3c2410_boot_usb-20060807.tar.bz2
shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$ ls boot_usb.c lsusb.txt Makefile README shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$
但是,不要着急,在利用该sources构建s3c2410_boot_usb这么一个通过USB口upload文件到目标开发板的工具之前,
需要做2件事,
1. 确认安装libusb-dev,这个package里应该包含了一些操作USB接口的APIs。
shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$ sudo apt-get install libusb-dev
2. 如果你的Ubuntu安装的GCC版本是4.6,或者以上的,
shawn@shawn-ThinkPad-T410:~$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6.1/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.1-9ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) shawn@shawn-ThinkPad-T410:~$
那么,需要修改 s3c2410_boot_usb 目录中的Makefile中的2行
将
s3c2410_boot_usb: boot_usb.o $(CC) $(LDFLAGS) -o $@ $<
修改为
s3c2410_boot_usb: boot_usb.o $(CC) -o $@ $< $(LDFLAGS)
做完上面的2件事,之后就可以在 s3c2410_boot_usb 目录下输入make 命令,构建s3c2410_boot_usb工具了
shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$ make cc -o s3c2410_boot_usb boot_usb.o -lusb shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$
构建成功, 可以将该工具放在path的路径下,这样,就不需要在 s3c2410_boot_usb 目录下使用该命令了。
该工具的使用命令是,第一个是上载工具,第二个参数是要上载到目标开发板的zImage镜像文件,注意两个参数间的空格
shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$ sudo ./s3c2410_boot_usb ~/test/build-linux-2.6.33/arch/arm/boot/zImage csum = 0x5b9d send_file: addr = 0x33f80000, len = 0x002003e4 Error downloading program shawn@shawn-ThinkPad-T410:~/Downloads/s3c2410_boot_usb$令人觉得奇怪的是,虽然上面提示了Error,但是,MInicom 却显示下载完毕,并“Uncompressing Linux . . "成功,"booting the kernel."了。
相关文章推荐
- u-boot-2009.11移植(适用于TQ2440和MINI2440)第一篇:建立开发板文件,测试编译环境
- Ubuntu10.04系统调试TQ2440开发板之一《Ubuntu下搭建TQ2440的程序下载环境》
- Ubuntu 12.04系统环境利用USB下载程序到TQ2440开发板
- ubuntu环境下如何建立可执行文件
- 64位ubuntu 配置andorid环境建立工程没有R.java文件
- Mac环境下载github项目中的某个文件夹或者文件
- 嵌入式成长轨迹33 【嵌入式学习阶段】【ARM环境调试】【在虚拟机下Ubuntu建立NFS网络文件系统】
- mini2440 ubuntu 11.10开发环境的建立
- Ubuntu下搭建TQ2440的程序下载环境
- 构建MINI2440开发板Ubuntu开发环境-串口配置及使用
- Ubuntu与开发板之间使用ftp上传及下载文件
- ubuntu用 tftp服务下载文件到2440开发板
- U-boot、Kernel、文件系统的几种下载方式总结(基于TQ2440开发板)
- ubuntu 11.10 mini2440 qte4.6.3开发环境的建立
- Ubuntu下搭建TQ2440的程序下载环境
- Ubuntu下搭建TQ2440的程序下载环境
- 下载image或者其他文件
- 在Ubuntu10.10中搭建TQ2440下载环境
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- Ubuntu下用minicom搭建TQ2440的程序下载dnw环境