目标板和主机之间通常可以使用串口、以太网接口、USB接口以及JTAG接口等连接方式。
串行通信接口常用的有9针串口( DB9 )和25针串口(DB25),通信距离较近时(﹤12m),可以用电缆线直接连接标准RS-232C端口;如果距离较远,就采用RS-422或者RS-485接口,需附加调制解调器(Modem)。其中最常用的是三线制接法,即地、接收数据和发送数据三脚相连,直接用RS-232C相连,PC上一般带有两个9针串口。串口常用信号引脚如下所示:
通过串口既可以作为控制台,向目标板发送命令,显示信息;也可以通过串口传送文件;还可以通过串口调试内核及程序。串口的设备驱动实现也比较简单。
其缺点是通信速率慢,不适合大数据量传输。
以太网以其高度灵活,相对简单,易于实现的特点,成为当今最重要的一种局域网建网技术。
以太网IEEE 802.3通常使用专门的网络接口卡或通过系统主电路板上的电路实现。以太网使用收发器与网络媒体进行连接。收发器可以完成多种物理层功能,其中包括对网络碰撞进行检测。收发器既可
以作为独立的设备通过电缆与终端站连接,也可以直接被集成到终端站的网卡当中。
以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传
递给高层协议进行处理。
以太网采用CSMA/CD媒体访问机制,任何工作站都可以在任何时间访问网络。在发送数据之前,工作站首先需要侦听网络是否空闲。如果网络上没有任何数据传送,工作站就会把所要发送的信息投放到网络当中。否则,工作站只能等待网络下一次出现空闲的时候再进行数据的发送。
作为一种基于竞争机制的网络环境,以太网允许任何一台网络设备在网络空闲时发送信息。因为没有任何集中式的管理措施,所以非常有可能出现多台工作站同时检测到网络处于空闲状态,进而同时向
网络发送数据的情况。这时,发出的信息会相互碰撞而导致损坏。工作站必须等待一段时间之后,重新发送数据。补偿算法用来决定发生碰撞后,工作站应当在何时重新发送数据帧。
网 络 接 口 一 般 采 用 RJ-45 标 准 插 头 , PC 上 一 般 都 配 置10M/100Mbit/s以太网卡,实现局域网连接。通过以太网连接和网络协议,可以实现快速的数据通信和文件传输。
其缺点是驱动程序实现比较麻烦,好在以太网接口的设备驱动也很多。
USB(Universal SerialBus)接口支持热插拔,具有即插即用的优点,最多可连接127台外设,所以USB接口已经成为PC外设的标准接口。USB2有多个规范。
USB 1.1是较早的USB规范,其高速方式的传输速率为12Mbit/s,低速方式的传输速率为1.5Mbit/s。
USB 2.的最大传输速率达到480Mbit/s,USB 3.0的最大传输速率高达50G bit/s。USB的设备支持热插拔,通讯速率也很快。
其缺点是USB设备区分主从端,两端分别要有不同的驱动程序支持。
JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路测试接口(Test Access Port,TAP),通过JTAG测试工具对芯片的核进行测试。它是联合测试行动小组(Joint Test Action
Group,JTAG)定义的一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。
目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。
JTAG接口的时钟一般为1~16MHz,所以传输速率可以很快。但是实际的数据传输速度要取决于仿真器与主机端的通信速度和传输软件。
把交叉开发工具链的路径添加到环境变量PATH中,这样可以方便地在Bash或者Makefile中使用这些工具。通常可以在环境变量的配置文件有3个,分别在不同的范围生效。
把环境变量配置的命令添加到其中一个文件中即可。
串口通讯接口设十分适合作为控制台,在各操作系统上都有现成的控制台可用。例如,在windows上可以使用超级终端,在Linux上可以使用Minicom等工具。
Linux系统通常使用minicom串口通信工具。由于minicom不是图形窗口的工具,操作起来要麻烦一些。使用minicom串口终端之前,需要先配置参数。
Minicom的配置界面是菜单方式。在Shell下执行“minicom –s”命令,出现配置菜单。注意minicom程序要访问串口设备,需要以root的权限操作。
在菜单中,可以先通过光标移动键选中菜单项,再按回车键进入子菜单项。
参数设置完成后,按回车键返回主配置菜单。这时可以保存配置参数。移动光标选择“Save setup as dfl”菜单项,按回车键保存为默认设置。最后移动光标选择“Exit from Minicom”选项退出。再启动minicom 的 时 候 , 直 接 在 Shell 下 执 行 minicom 命 令 , 就 可 以 进 入minicom控制台。
在各种体系结构平台上,多数内核映像都采用压缩格式(MIPS平台例外,它的映像采用非压缩格)。Linux系统的一般启动过程通常划分为内核引导、内核启动和应用程序启动3个阶段,如图所示。
在Linux系统启动过程中,有两个关键点。一个是内核映像的解压启动,另一个是根文件系统的挂接。
目标板处理器上电或者复位后,首先 执 行 引 导 程 序(Bootloader),初始化内存等硬件,然后把压缩的内核映像加载到内存中,最后跳转到内核映像入口执行。这样就把控制权完全交给内核映像了。
接下来内核映像继续执行,完成自解压或者重定位,然后跳转到解压后的内核代码入口。这部分主要是Linux内核的自引导程序,又叫做Linux Bootloader,包含在内核源代码中。这部分引导代码相对简
单,不可能替代目标板上的Bootloader。
目标板的Bootloader具有加载内核映像的功能。在嵌入式Linux开发中,经常用到网络加载的方式,就是通过TFTP协议把内核映像加载到目标板内存。那么目标板的Bootloader还应该能够驱动网络接口,
配置IP地址。不同的Bootloader还有一系列命令进行配置。
因为文件和应用程序都要存储在文件系统中,所以Linux离不开文件系统。在内核启动到最后,必须挂接一个根文件系统。从文件系统的目录下找到init程序,启动init进程。
要使目标板挂接NFS根文件系统,需要做两方面的工作。一方面是在主机端配置相应的网络服务;另一个方面就是配置目标板的内核选项。
Linux内核要挂接NFS根文件系统,必须具备以下条件:
root=/dev/nfs rw nfsroot=<nfs_server>:<root_path> ip=<target_ip>
● ﹤target_ip﹥:为目标板指定的IP地址。
● ﹤nfs_server﹥:指定NFS服务器的IP
● ﹤root_path﹥:要挂接的NFS服务器的目录
● root=/dev/nfs:指定要挂接NFS根文件系统
● rw:表示按照可读/写属性挂接。