交叉编译器的安装
1:下载arm-linux-gcc-3.4.1.tar.bz2 到任意的目录下
我把它下载到了我的工具文件夹里 /home/zt/tools
2:解压
进入工具目录(视具体情况而定)/home/domyself/tools
# cd /home/domyself/tools
解压
# tar xvf arm-linux-gcc-3.4.1.tar.bz2
解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹
进入该文件夹/home/domyself/tools
# cd usr/local/
将arm文件夹考到/usr/local/下
# cd /home/domyself/tools/usr/local
# cp -rv arm /usr/local/
现在交叉编译程序集都位于/usr/local/arm/3.4.1/bin下面了
3:修改环境变量
export PATH=/usr/local/arm/3.3.2/bin:$PATH
用此方法添加的环境变量会在掉电后丢失,因此,可以在启动脚本里做手脚,方法如下:
# vim /etc/bash.bashrc
在文件的最后一行添加以下命令
/home/domyself/tools/usr/local
export PATH=/usr/local/arm/3.4.1/bin:$PATH
文件修改后,要使更改环境变量生效一般的做法是重新登录,运行# source /etc/profile 可以使导出的环境变量马上生效,避免重启
Minicom 的使用
1. 启动 Minicom
输入minicom启动,或输入minicom –s直接进入设置模式。
2. 设置
1> 选择串口:在选择菜单中的“Serial port setup”,按回车,再按“A”以设置“Serial Device”
(如果使用串口1,则输入/dev/ttyS0,如果您使用串口2,则输入/dev/ttyS1,注意其中的S是大写),按
回车返回。
2> 设置波特率:按“E”键进入设置“bps/par/Bits”(波特率)界面,如果按“I”以设置波特率为
115200,按回车返回。
3> 数据流控制:按“F”键设置“Hardware Flow Control”为“NO”。
其它为缺省设置 ,然后按回车到串口设置主菜单,,选择“Save setup as dfl”,按回车键保存刚
才的设置(保存到“/etc/minirc.dfl),再选择“Exit”退出设置模式,回到minicom操作模式。
此时可像Windows下的超级终端一样使用了。
3. 退出 minicom
按下“Ctrl+A”键,松开后紧接着再按下“Q”键,在跳出的窗口中,选择“Yes”。
4. 其它有用的功能
命令帮助 -- “Ctrl+A”后按 “ Z ”
清屏 -- “Ctrl+A”后按 “ C ”
设置 -- “Ctrl+A”后按 “ O ”
发送文件 -- “Ctrl+A”后按 “ S ”
退出 -- “Ctrl+A”后按 “ Q ”
minicom + nfs实现PC机与arm板共享
注意:minicom只有在pc机与开发板连接好才会正常。(这就是之前一直不能正确显示的原因)
1.首先在PC机上安装minicom.
sudo apt-get install minicom
关于minicom的一些设置:ctrl+A,然后松开,紧接着按Z,开始设置。退出,ctrl+A,然后松开,紧接着按Q。
2.在PC机上安装nfs.
sudo apt-get install nfs-kernel-server nfs-common
3.修改配置文件:
vi /etc/exports
在里面加入
/home/nfs *(rw,sync,no_root_squash)
/home/nfs 是要共享的目录
4.重启nfs服务
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
5.OK!基本设置已经搞定.
现在将板子与pc机的串口线连好,进入minicom.那么现在的这个minicom就相当于arm的终端了,只不过让他显示在我们的PC机上而已.在minicom下挂载PC机的nfs共享目录.在minicom登录了arm开发板后,在minicom的终端输入命令:
mount -t nfs -o nolock 192.168.1.88:/home/nfs /mnt
或者:
mount -t nfs 192.168.1.88:/home/nfs /mnt -o nolock
即我们将PC机做成nfs服务器,arm开发板作为客户机来访问它.
192.168.1.88是这台PC机的IP地址,/mnt/nfs是这快arm开发板可以共享到的PC机的目录。将192.168.1.88:/home/nfs 下的文件挂载到arm开发板的/mnt目录下.
6.然后我们在我们的PC机上开发,完了之后直接将生成的内容cp到pc机的/home/nfs目录下(或则我们直接在此目录下编译也可以),arm板通过minicom就可以共享了.
ubuntu中安装tftp服务
1、安装相关软件包
apt-get install tftpd (服务端)
apt-get install tftp (客户端)
apt-get install xinetd
2、建立配置文件
cd /etc/xinetd.d/
vi tftp
输入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
存盘退出
3、建立tftp服务文件目录
mkdir /tftpboot
4、从新启动服务
/etc/init.d/xinetd restart
安装完成!测试方法:
切换到/tftpboot目录下,
在/tftpboot (注意这里必须是这个目录,与前面的红色设置相对应)目录下随便放个文件abc
然后在pc机上面运行tftp 192.168.1.230(目标板IP)进入tftp命令行
(如果不正常可以试着把网线插好,或者重启一下开发板)
输入get abc 看看是不是能把文件下下来,如果可以就可以了,也可以put 文件上去。
用ftp上传文件并执行之(测试成功)
在经历了几万年的努力之后,我终于把交叉编译之后的二进制文件上传到arm板上面,并运行成功!
其过程如下:
1.在pc机上面切换到要上传的目录下,我的是/ftpboot这个目录,hello程序就在这个目录里面
输入:
#ftp 192.168.1.230.
(上面的IP是目标板IP,pc机ip为192.168.1.88,二者必须在同一个网段)

2.如果pc机和目标板的连接良好,就会出现Connected to 192.168.1.230的字样。(不会停留很长时间,如果等了半天没反应,就说明没连上,有可能ip不在同一网段,不过有时重启一下目标板就会解决或则个问题)。根据提示依次输入用户名plg,和密码plg。如下:

3.ftp>后面输入bin将改变传输模式为binary。如下:


4.现在可以用put hello命令将hello文件上传至开发板上面了。上传完后,如下:

5.输入by退出ftp

6.用minicom登陆开发板,切换到/home/plg目录下

7.输入./hello即可运行之,运行结果如下。

8.在等待了几千年之后,我们盼望的画面终于出现了!!!!!
激动不已!
9.在编译hello.c源文件的时候,应注意一下问题:
己编写的程序在文件系统上运行必须采用静态编
译,否则会报诸如:bin/sh: hello :not found的错误
。
静态编译如:
arm-linux-gcc –static hello.c –o hello
在开发板上直接./hello,便会有你要的惊喜~~~
kermit的安装与使用
1、先到http://www.columbia.edu/kermit/ck80.html#download来下载C-Kermit。如果你下载的是cku211.tar.gz的话,执行:
gunzip cku211.tar.gz
tar xvf cku211.tar
rm -rf cku211.tar
make linux
mv wermit /usr/local/bin/kermit
执行以上命令,就可以在终端上输入kermit就可运行了。
2. kermit脚本设置:
# vi ~/.kermrc
set line /dev/ttyS0
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
保存后退出即可。然后启动kermit,你会看到:
# kermit
Connecting to /dev/ttyS0, 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.
出现以上提示,则说明串口已经打开。
切换:按下Ctrl + \ ,再按c 就跳回kermit。跳回串口控制,可以输入c,即connect命令
发送文件:
kermit中输入connect后,跳到u-boot串口界面。
输入loadb 0x0c008000 回车
按下 ctrl + \ ,再按c,切换到kermit。
输入命令:send /home/zImage
kermit开始传送数据了,并可以看到传送进度,发送完后,输入c,再回到u-boot界面,然后,再输入:go 0x0c008000
内核开始运行了
kermit在启动时会查找~/.kermrc文件,调用里面的命令来初始化kermit。只要将你所需的命令写到~/.kermrc文件里,启动后就不这么麻烦了