- 论坛徽章:
- 0
|
刚开始学习嵌入式的时候,周围没有人请教,幸好的是有一块板子,至少可以摸着石头过河。 在网上找了很多资料,看的很晕,没个人写的都不一样,针对
不同的板子,也许方法各异,后来才发现都是殊途同归,即使有些微差异,也是大同。可是在初学者看来却很迷茫 ,至少我曾经经历过那样的迷茫。
绝大多数的linux软件开发都是以native方式进行的,就是本机(host)开发,调试,本机运行的方式。但这种方式不适合于嵌入式系统的软
件开发,因为对于嵌入式系统的开发,没有足够的资源在板子上运行开发工具和调试工具。所以嵌入式系统的软件开发一般都是采用一种交叉编译调试的方式。交叉
编译调试环境建立在一台主机(pc)上,开发是使用主机上的交叉编译、汇编及连接工具形成在目标板上可以运行的二进制代码。然后下载到板子上运行。
下面我将自己在s3c2410上的过程总结一下。也许跟别的板子有出入,前面说了,殊途同归。希望对需要用的着的朋友有用。
我用的是GX的arm9-s3c2410实验箱,主机环境是RedHat
9.0。过程如下:
一、建立主机开发环境
将光盘放入CDROM中,然后在终端输入
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
mount /dev/cdrom /mnt/cdrom
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
cd /mnt/cdrom
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
./install
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
系统会自动安装,这时只要等就行了,一般需要20分钟左右,这个过程中会有一些提示信息,也有时要等一段时间才会有提示信息输出,耐心等待,别等不及就终止了。
安装完成之后会在根目录下生成两个目录:
工作目录/s3c2410_linux和交叉编译环境目录/opt
s3c2410_linux下有这些目录:
opt下有:
二、配置minicom
minicom类似于windows中的超级终端,这里利用minicom作为开发目标的终端,在使用之前需要配置正确配置。配置的过程如下:
在Linux终端中输入:
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
minicom -s
对minicom进行设置。选择serial
port setup,然后按A选择Serial
Device为/dev/ttyS0,表示串口1,如果有多个串口可以根据自己具体的情况进行选择,一般PC机都只有一个串口,就是COM1,即
ttyS0。然后按E选择波特率为115200,8N1。然后按F选择Hardware Flow Control模式为No.
回车退出之后选择Save
setup as df1,保存刚才的设置。OK!
三、配置tftp
安装tftp服务器端,google之后下载tftp-server-0.17-9.i386.rpm。进入rpm所在文件夹做以下操作
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost yangdk]# rpm -ivh tftp-server-0.17-9.i386.rpm
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
warning: tftp-server-0.17-9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
Preparing... ########################################### [100%]
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
1:tftp-server ########################################### [100%]
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost yangdk]#vi /etc/xinetd.d/tftp
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
然后编辑将disable改为no,其他不变如下:
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
service tftp
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image003.gif
{
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
socket_type = dgram
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
protocol = udp
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
wait = yes
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
user = root
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
server =
/usr/sbin/in.tftpd
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
server_args =
-s /tftpboot
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif
disable = no
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image005.gif
}
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
接下来建立默认的tftp根目录,要跟上面的server_args的路径一样,这里是/tftpboot:
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost yangdk]# cd /
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost /]# mkdir tftpboot
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost /]# /etc/rc.d/init.d/xinetd restart
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
停止 xinetd: [ 确定 ]
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
启动 xinetd: [ 确定 ]
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost /]#
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
好了,然后在命令行输入setup,
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost root]# setup
选择选中tftp并去掉iptables选项,再
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost /]# /etc/rc.d/init.d/xinetd restart
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
这样就ok了,可以试着自己tftp自己测试tftp服务器是否启动了
四、配置NFS
这个比tftp要简单一些
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost root]# setup
同上选择选上nfs并去掉iptables ipchains(没有的话不用管)两项。退出后输入:
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost root]# /etc/rc.d/init.d/nfs restart
这样nfs服务就打开了,但是nfs需要配置exports目录,就是共享出来的目录,最终在板子上mount上去,所有的程序最后都放在这个目录
下,在板子上mount上去之后就能在这里运行。所以在板子上运行的程序实际上还是在主机上的,只不过是以网络文件系统(nfs)的方式挂载
(mount)上去而已。键入vi /etc/exports
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost root]# vi /etc/exports
在exports中加入下面这一行
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
/s3c2410_linux/nfs 192.168.1.101(rw,insecure,no_root_squash,no_all_squash)
其中/s3c2410_linux/nfs为主机上一个已存在的目录。192.168.1.101指开发板的IP,一定要这样具体,有些资料上写成
192.168.1.*或者192.168.1/24,我试过了,都不行。必须是具体到制定的ip如192.168.1.101。
退出之后再来一遍这个
file:///C:/DOCUME%7E1/xp/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif
[root@localhost root]# /etc/rc.d/init.d/nfs restart
这样,NFS就配置完成了。OK了!可以编写嵌入式程序了,明天继续。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/89923/showart_1811331.html |
|