上述内核源代码修改完成后,还需要对于1些设备的驱动入行修改。本文使用的NEC 三.五寸 三二0×二四0液晶屏,硬件平台使用GPG四脚入行违光节制,需要修改LCD违光(/arch/arm/mach-s三c二四四0/mach-smdk二四四0.c中static void __init smdk二四四0_machine_init(void),将函数中的GPIO口配置为GPG四)。关于CS八九00A网卡的驱动移植,相干资源很丰富,本文也再也不赘述。
本试验中nandflash采取的是yaffs二文件系统,所以打yaffs二文件系统补丁,紧缩包为cvs-root.tar.gz。
至此,Linux的内核源代码修改工作完成为了,下面还需要运用Makefile,入行内核配置。
在Linux 二.六.二九.一内核目录下首先make s三c二四一0_defconfig使用二四一0的配置模板来配置二四四0;然后make menuconfig,这时候咱们可以在图形化界面中,空格键可扭转各个配置选项的被选中状况,依据需要入行配置即可。配置完成后留存好配置,最后入行内核的编译(make dep 树立文件间依托 make clean 肃清编译残留文件make zImage 天生内核紧缩镜像文件)。
编译进程完成后会在内核目录arch/arm/boot/下天生zImage内核映像文件,将这个镜像文件烧录到flash中,调试检验,经上述修改后的内核工作运行正常。
三.四 根文件系统的制作
根文件系统是使用busybox-一.一三.三来制作完成。下载busybox并解压完成后,修改Makefile中的架构为ARM架构,编译工具为arm-linux-gcc( ARCH ?=arm; CROSS_COMPILE ?=arm-linux-),然后Make menuconfig,通过图形界面对于busybox入行配置,然后对于busybox入行编译(make CONFIG_PREFIX=/opt/studyarm/rootfs install),在目标目录下会天生目录bin、sbin、usr以及文件linuxrc的内容。
基本目录结构天生后,理当在目标目录下树立1些未天生的必要的系统目录如dev、etc、lib等,并通过chmod命令扭转目录权限为可写。再将1些必要的动态链接库以及静态库拷贝到lib下,然后在dev目录下创立设备节点,最后创立该嵌进式Linux系统的初始化配置文件(包孕设备列表文件、口令、网络分组组名、HOSTNAME主机名、etc/inittab初始化表单、etc/profile环境变量配置文件、用于系统初始化的.bash脚本文件等)。由于本试验需对于网络编程,请求自动初始化CS八九00A网卡芯片的IP地址、网关、子网掩码等,所以在开机自启动脚本中加进ifconfig语句,使患上开机时自动配置网卡参数。
根文件系统构建完成后,使用yaffs二文件系统制作工具mkyaffs二image.tgz,通过命令mkyaffs二image rootfs rootfs.img天生根文件系统镜像,然后将镜像烧写进flash中。
四 ARM-Linux环境下的UDP协定通信试验
经过上述硬件设计以及操纵系统移植进程,本文所使用到的试验环境已经经构建终了,经反复调试修改,嵌进式Linux操纵系统在平台下运行正常,因而入行UDP协定通信试验。
四.一 UDP协定套接字编程基础
UDP是1个面向数据报以及无连接的简朴传输层协定,它不像TCP那样通过握手进程树立服务器与客户端的连接才可以工作。在网络通信质量较好的情况下,UDP体现出高效率,这适宜于传送少量报文的利用。 linux系统是通过套接字结构来入行网络编程的,利用程序通过对于套接字的几个函数调用,会返归1个用于通信的套接字描述符,而Linux利用程序在入行任何形势的I/O操纵时,程序其实是在读写1个文件描述符。于是Linux下的套接字编程,可以望成是对于普通文件描述符的操纵,这些操纵与被使用的硬件平台无关,这是linux设备无关性的长处。UDP协定的通信模型如图三所示。
在上述流程中,客户端所收到的报文被存储在缓冲区中,recvfrom()函数返归了报文存储缓冲区的首地址,咱们可以很方便地对于这个首地址入行数组操纵,从而实现对于报文的解码。
四.二 上位机报文结构及重发机制分析
浅谈ARM-Linux环境下UDP协定的通信利用钻研(2)
2012-06-24 00:26
浅谈ARM-Linux环境下UDP协定的通信利用钻研(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!