正所谓:“欲先攻其事,必先利其器”。在嵌入式的特殊开发环境中,实验环境的搭建,是我们遇到的第一个问题,也是一大难题,由于每个开发者的习惯不同,在现在的嵌入式开发中,开发环境也多种多样,这也成为初学者选择的很大难题。也有很多网友很长时间内滞留在这个槛儿上,致使很多人对嵌入式还没有开始正式的学习,编程,就已经是望而却步了。因此,我特意写了一章“实验环境的搭建”分享给广大网友和初学者,使其以最快的速度入门,真正体验到学习嵌入式的乐趣。
下面为针对本次博客特别定制的的实验环境。
PC 机:众所周知,嵌入式是交叉开发模式,我个人用于开发的有两台电脑,一台品牌PC机(带USB、串口、并口)。另一台笔记本电脑(只有USB口,开发时所需串口可使用USB转串口代替)。
开发平台:TQ2440开发板;3.5`TFT液晶屏带触摸;2M NorFlash ;256M NandFlash;64M SDRAM。
其 它:USB转串口线一条。我使用过很多种的USB转串口,在TQ2440上支持都很稳定,推荐大家使用PL2303的,我一直在用,至今没有发现问题。
、软件环境:
PC机操作系统:Windows XP
虚拟机:VM 7.1
虚拟机上的操作系统:Feroda 10 天嵌科技推荐
交叉编译器:天嵌科技提供的EABI 3.4.5。
注:编译裸奔程序,建议使用3.4.5版本的编译器,如果使用4.3.3版本,会有编译通不过的现象。
串口终端:推荐使用Feroda 10系统自带的minicom
程序烧录:天嵌提供的U-BOOT(201006版本) + Fedora 10下配置好的TFTP服务,后面会详细讲解。
以上为本次实验以及后续实验的推荐配置,我也尝试过在Ubuntu10.04下进行本次实验,也可以完成,但其TFTP等服务配置略有不同,网上对此资料甚多,在此就不再赘述。
、安装虚拟机和Fedora 10操作系统。
天嵌科技为大家提供了精心制作的视频教程,其中包涵了虚拟机的安装和Fedora10的安装过程,其利用了step by step的形式,深受大家好评。在此,请大家先按天嵌视频教程中,安装好虚拟机和Fedora 10。
注意:1、天嵌使用的虚拟机为VM6.5,而我使用的是VM7.1,并无矛盾和冲突,大家可自由选择;
2、在安装Fedora 10时,一定要完全安装,这里完全安装的意思是,将所有与开发相关的库和工具全部安装好,以免在以后的开发中有不必要的麻烦。
、配置虚拟机
在完成了上步后,我们需要配置一下虚拟机,以便在我们以后开发。天嵌科技在视频中配置完的Linux系统使用的是静态IP方式,可以PING通主机和开发板,但不可以让Linux访问外网(看网页、上QQ)。而有时,我们需要让Linux可以访问外网,以便安装工具,在此,我把实现的方式写在下面。
1、 启动虚拟机中的Linux系统。关闭所有的防火墻(注意包括WinXP系统和LINUX系统下的防火墻和杀毒软件)。
2、 在WINDOWS系统下,运行-------命令msconfig 。见下图,查看服务项,查看虚拟机中的NAT服务和DHCP服务是否开启。


上图中红色区域为VM虚拟机中的服务,在我初学时,有一次配置虚拟机上网,当所有的配置查看过,还是上不了外网,最后发现是VM的服务在作怪。此处要确保其全部运行,见后面的状态栏,如果发现某一项没有成功运行,可以使用一些辅助工具来打开服务,这样比较简捷,推荐使用超级兔子。
最后,查看一下,网络邻居中的,VM网卡是否已开启,此处需全部开启,如图

3、 然后,打开虚拟机界面,将其网络配置成NAT上网方式。见下图红色部分。

接着,配置LINUX系统,在系统-----管理-----网络中,将网卡配置成DHCP。见下图红色部分

至此,我们的配置就完成了。不过要注意的是,你的WINDOWS系统一定要连接宽带哦。下面是成功上网的截图:

上图为WINDOWS下访问天嵌的BBS网站。

上图为在VM虚拟机中的fedora10下上网的截图,注意:root用户登陆有可能会上不了网,这时需切换成普通用户。
Ubuntu10.04的上网配置方法同上。如果虚拟机中上不了网,请按上述一步步进行检查。
TFTP服务器
在以后的学习中,我们将Fedora下编译好的程序.BIN文件,经由网线的物理连接,以TFTP的软件传输方式下载到TQ2440实验板上。因此,我们需要事先配置好TFTP服务器。
在虚拟机Fedora 可以上网的情况下:
1、 更新服务器
yum install tftp;
yum install tftp-server;
2、 修改配置文件
vim /etc/xinetd.d/tftp
这里只需修改两项,将disable = no; 将server_args = -s –c /opt/machoe/tftpboot
上面的/opt/machoe/tftpboot为tftp服务端目录,用户需自己行建立,并修改其权限,为了方面,在这里,我直接将权限修改成777模式的:chmod 777 /opt/machoe/tftpboot。
至此,我们的配置就结束,很简单吧,下面,我们还要使新的配置生效。/etc/initd.d/xinetd restart。
现在我们就可以试验一下tftp的功能了。
的使用
- 首先按天嵌的教程,将VM虚拟机上网方式改回成桥接,否则无法使用PING命令及TFTP命令。
- 将fedora 10的DHCP IP方式修改成静态IP方式。
上述两点,天嵌的教程中已写得很详细,如有疑问请看天嵌提供的视频教程,也可以到上提问。
- 关闭虚拟机,为虚拟机添加串口。
关闭后,点击编辑虚拟机---添加硬件-----选择串口,下一步,如下图红色部分:

再新弹出的窗口中选择,用物理串口,注意红色部分。

然后点击下一步,直至完成。
- 重启虚拟机。
这时,我们会在虚拟机的最下面的工具栏上发现,多了一个按钮,如下图红色部分标出的,即为我们新添加的按钮。

现在,我们双击该按钮,以确定其配置是否正确。如下图:

这里,请大家注意一下,红色部分,首先,上面的连接一定要复选上;其次,下面的串口,一定要选择自己的PC机上的物理串口,这里,我用的是台式机,就选择串口1,如果用USB转串口,请按选择实际的串口。
5. 测试网络。为了使用TFTP服务,我们先测试一下网络,在虚拟机中先PING一下WINDOWS物理机。再利用WINDOWS物理机PING通VM虚拟机Fedora。如果可以PING通,证明以上配置已生效,如果没有PING通,请检查配置。
利用命令:service network restart可以使网络命令生效(注意:有时此命令也未能生效,那么只有重启了,不过大部分还是比较稳定的,可以立即生效)。
下面为我PING命令的截图。

上面的显示已PING通。注:172.16.17.136为WINDOWS物理机的“本地连接”物理IP;而172.16.17.250为虚拟机中fedora10的IP地址。
大家可能很奇怪,为什么我的终端跑到WINDOWS桌面上去了,告诉大家一个小技巧,VM虚拟机能将其下的桌面应用程序放在物理主机的桌面上,只要点击下图中红色标出的按钮即可。这样,大家操作终端就像操作WINDOWS里面的程序一样了,可以互相复制粘贴内容,否则,在WINDOWS里面复制的内容,在VM里面是粘贴不了的。

- 配置串口
现在我们终于可以用到TQ2440了,接好串口线、网线、电源线,(USB就可以不用接了)。
在Windows下我们的超级终端,在Linux下我们也有类似超级终端的软件,我们安装好了fedora操作系统后,操作系统本身自带一个minicom的软件,只需简单配置,即能工作。具体的配置方法如下:
A. 输入命令 minicom –s
B. 选择第三项,串口配置
C. 利用键盘A、B、C、D、E、F、G键,选择要修改的项,然后,修改成我的配置。
注意:由于我使用的是台式机,因此,串口我配置成/dev/ttyS0。如果是USB转串口,略有不同,请上网查询,资料甚多,不再赘述。


最后,选择保存配置。下次进入直接输入minicom即可。
- 这时,我们打开开发板。这里是从NOR FLASH启动,而且里面已烧写好了天嵌提供的U-BOOT201006.
显示界面如下:

说明:这里请注意一下上面红色区域。显示为MINICOM软件、从NOR启动。
命令说明:在这里,我们主要使用的为命令“n”和“q”。
在学习的前阶段,推荐手动命令,这样有助于我们理解程序的运行机制,当熟练使用后,再使用命令“n”一键烧写,提高效率。
在这里,我们还需配置一下开发板,选择q,退出菜单。(按一次退不出来,就再按一次)
退出菜单后,在EmbedSky提示后面输入如下命令:

出现上图后,说明我们已将开发板的IP(172.16.17.18)和VM Fedora 的IP(172.16.17.250)保存在开发板的NAND FLASH中,这时,我们在用printenv命令打印一下,环境变量,看一下,是否成功。
如图:

上面的红色部分为我们新设置的变量。U-BOOT的具体操作可暂时不用理解,只会用即可,后续,我还会推出U-BOOT教程。(注:IP可以和我的不一样,但大家一定要配置成同一段的IP才可以)
- TFTP操作
我们可以再打开一个终端,进入tftp目录下/opt/machoe/tftpboot,将天嵌提供的,TQ2440_Test.bin文件复制到该目录下,下面,我们就以烧录TQ2440_Test.bin为例,教大家怎样烧写一个文件到TQ2440开发板。
复制好文件后,我们输入以下命令(在minicom终端输入):tftp 0x30000000 TQ2440_Test.bin;
见下图红色部分:

至此,我们已将程序烧写到TQ2440的0x30000000处,接着,我们在minicom下输入:go 0x30000000。即可执行该程序。如下图:

到这里,我们就完成了所有的环境搭建任务,下面就可以进行我们的开发了。
现在,肯定也会有人有这样的疑问:我们刚才把程序烧写到哪了?
在这里,我简单的回答一下,我们利用命令tftp 0x30000000 TQ2440_Test.bin命令是将程序烧写到地址为0x30000000的地方,而这个地址正是SDRAM的地址。我们也可以利用天嵌U-BOOT中的一键烧写,将程序烧写到NAND FLASH中,NOR FLASH中等等,具体的请大家查看,天嵌提供的,教程手册。
在每篇博客后面,我都会附上此板块,意在为大家提供更多的资料。同时也对这些资料的所有者表示忠心的感谢。
1. 天嵌科技------《TQ2440开发板使用手册V2.5_20100611.pdf》
2. 韦东山 ------《嵌入式LINUX应用开发完全手册》