Embest Arm EduKit II 开发板是实验系统的主要硬件平台,它是英蓓特公司开发的一款全功能ARM开发板,基于Samsung 公司的S3C2410x处理器(ARM920T),资源丰富,特别集成了可连接多种液晶控制器及串行USB主/从控制器单元。硬件系统包含了嵌入式系统开发应用所需的
大部分设备,如串口、以太网口、USB口、音频输出、LCD及TSP触摸屏、5*4的小键盘、大容量的FLASH和SDRAM等等,完全自主设计的软硬件系统,可以支持使用Embest 或ARM JTAG 仿真器的开发调试[1]。
uClinux源代码包,文件名为uClinux-dist.tar.gz。
解压uCLinux源代码包,执行命令:
mkdir /usr/local/src,
cd /usr/local/src ,
tar xzvf /tmp/uclinux-dist/uclinux-dist.tar.gz ,解压完毕后,在/usr/local/src下面会有一个文件夹uclinux-dist存放源代码,以后的操作均在此目录下进行。
3.1.4 配置uClinux
执行 make xconfig 命令后弹出配置窗口。点击 Target Platform Selection(目标平台选择),弹出窗口,用户根据要求进行设置。
3.1.5 用户程序配置
在上节的目标平台配置过程中,选择定制用户程序后将弹出用户程序配置窗口,该窗口详细列出了用户程序配置选项,用户根据应用的需求进行选择,选中的用户程序最终将出现在文件系统中并影响文件系统的大小,用户需要考虑系统是否有相当的资源。在配置过程中不涉及修改的选项采用默认设置。
编译uClinux ,在Cygwin中依次执行以下命令完成uClinux的编译过程:
cd /usr/local/src/uclinux-dist , make dep , make clean ,PATH=”/usr/local/armtools/
binPATH” , make lib_only , make user_only ,make romfs ,make image ,最终在images目录下生成2个文件: zImage( uClinux 内核2.4.x的压缩方式可执行映像文件)、romfs.img (文件系统的映像文件)。
3.1.6 运行uClinux
烧写映像文件 使用Embest Flash Programmer 和Embest ARM 仿真器或者其他烧写工具
Linux Socket是通过标准的UNIX文件描述符和其它程序通信的一个方法,其实质是提供了一个进程的端点,可以看作是一种特殊的管道。每个套接字都有一个半相关描述协议,本地地址、本地端口,或者一个全相关描述协议,本地地址、本地端口、远程地址、远程端口。每一个套接字都有一个本地的由操作系统分配的唯一的套接字号。本文采用的流式Socket提供可靠的、面向连接的通信流,并使用TCP协议,从而保证了数据传输的正确性。Socket是最为通用的一种基于TCP/IP的网络通信编程机接口,也是在Internet上进行应用程序开发最为通用的一种API。嵌入式Socket通信所要调用的主要库函数有:Socket()函数、 bind()函数、connect()函数、listen()函数、accept()函数、send()和receive()函数、 receive()函数。
3.3 网络协议分析及socket编程相关原理
uCLinux 下的 TCP/IP 网络协议栈的各层之间是通过一系列互相连接层的软件来实现 Internet 地址族的。其中 BSD socket 层由专门用来处理 BSD socket的通用套接字管理软件来处理,它由 INET socket 层来支持。INET socket 为基于 IP 的协议 TCP 和 UDP 管理传输端点。UDP(用户数据报协议)是一个无连接协议,而 TCP(传输控制协议)是一个可靠的端对端协议。传输 UDP 包的时候,uCLinux 不知道也不关心它们是否安全到达了目的地。TCP 则不同。在 TCP 连接的两端都需要加上一个编号,以保证传输的数据被正确接收。在IP 层,实现了 Internet 协议代码,这些代码要给传输的数据加上一个 IP 头,并且知道如何把传入的 IP 包送给 TCP 或者 UDP 协议。在 IP 层以下,就是网络设备来支持所有的 uCLinux 网络工作,如 PLIP、SLIP 和以太网。