1嵌入式系统的调试
调试也是软件开发不可或缺的一个环节。在常见软件开发中,调试器与被调试的程序往往运行在同一台机器上,通过操作系统的调试接口来控制被调试的进程。而在嵌入式软件开发中,采用的是交叉调试,即调试器运行在宿主机上,但被调试的程序运行在基于特定平台的目标机上,调试器与被调试进程通过串口或网络进行通信。不管是交叉编译还是交叉调试,都需要把文件从宿主机传送到目标机。如果考虑团队合作开发、开发环境不完全一致等因素,开发者经常也需要把文件在不同系统之间或通过网络进行传输。所以在嵌入式软件开发中搭建一个良好的文件传输环境是提高嵌入式软件开发效率的一个关键因素。
2文件传输环境的搭建
在嵌入式软件开发中,必须结合开发的具体项目和具体开发环境来选择搭建一个好的文件传输系统。虽然各类传输技术可以在不同平台(Windows、Linux等)上实现,但在嵌入式软件开发中更适合搭建基于Linux的文件传输系统,下面就嵌入式Linux环境下文件传输技术方法进行讨论。
2.1FTP(文件传输协议)服务设计与实现
FTP是网络传输文件的一种常见服务。在嵌入式Linux中,vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,是一款完全免费的软件。它的最大的特点是安全性非常高,但嵌入式系统一般是在局域网内进行合作开发,所以在搭建为嵌入式开发服务的FTP时一般不需要太多地考虑文件传输的安全性,搭建一个用户登录访问的FTP服务器就可以。下文是Ubuntu12.04下实现用户登录访问FTP配置文件(/etc/vs-ftpd.conf)的主要内容:
2.2TFTP(简单文件传输协议)服务设计与实现
TFTP是一个传输文件的简单协议,它基于UDP协议而实现,适合于小文件传输。嵌入式系统开发的代码文件一般不会很大,同时对文件传输的安全性要求也不高,所以在嵌入式软件开发中也经常使用TFTP服务来传输文件。下文是Ubuntu12.04下实现TFTP配置文件(/etc/default/tftpd-hpa)的主要内容:2.3NFS(网络文件系统)服务设计与实现嵌入式系统开发时,还可以使用NFS实现宿主机和开发板共享文件,这样也可以免去文件上传或下载的麻烦,直接把存放文件的目录挂载在目标机上或其他系统中,用户可以像访问本地文件一样访问远端系统上的文件。下文是Ubuntu12.04下实现NFS配置文件(/etc/exports)的主要内容:其中,*:允许所有的网段访问,也可以设置成某一个ip段,如192.168.0.*;rw:读写权限;sync:资料同步写入内存和硬盘;no_root_squash:允许客户端共享目录所有者权限。用户可以根据自己需要设置相关参数,还有一些参数说明没列出来,需要时可查阅相关资料。
2.4Samba服务设计与实现
在嵌入式系统开发过程中,宿主机上一般会安装Windows系统,同时安装虚拟机软件,在虚拟机上安装Linux,这样就存在Windows系统和Linux系统共享文件的问题。通过Linux提供的Samba服务可以轻松实现文件共享,可以有两种方法加以实现:一是由Windows系统访问Linux系统中的共享文件夹;二是由Linux系统访问Windows系统中的共享文件夹。(1)Windows系统访问Linux系统中的共享文件夹。由于嵌入式系统开发一般在局域网内或单机上进行,对网络安全性要求不高,这里就以配置一最易实现的Samba服务(来宾都可访问)为例来加以说明。主要是通过修改/etc/samba/smb.conf配置文件:上面用户名是所访问的Windows计算机中的用户账户,验证口令是Windows计算机中的用户账户的口令。
2.5使用串口软件传输文件
在一些应急场合,没能很好地配置好上述服务的情况下,如果需要传输一些文件到目标板,可以选择使用串口软件传输文件。用串口电缆把宿主机和目标机连好,然后运行串口软件,最常用的是Windows自带的超级终端。超级终端程序通常位于“开始”→“程序”→“附件”→“通讯”中,运行超级终端一般要求用户为新的连接取一个名字,然后选择所使用的串口,最重要的一步是设置串口属性,一般针对开发板设置的属性如下图2所示。连接上目标板后,使用超级终端上的“传送”→“传送文件”菜单实现文件传输。在ubuntu操作系统下,需要使用minicom来连接开发板,本文不再赘述。
3结束语
本文介绍了在嵌入式软件开发中搭建文件传输环境的多种技术方法,但在实际的开发过程中,并不一定要全部应用这些技术,可以根据具体的项目开发环境、个人的习惯等来决定使用哪一种或哪几种技术手段。同时,由医学论文集于嵌入式系统的资源有限,在方便团队开发调试项目的前提下,要尽可能少地启用这些服务。
作者:周军 王艳红 单位:南通航运职业技术学院