简单介绍:硬件平台是扬创的三星2440套餐5,ARM9内核,光盘提供winCE和linux两个 *** 作系统的移植方法。这里我们已经成功移植了WINCE,比较简单,只要按照手册的方法一步一步进行就可以了,我们要所的linux,这个手册说明不是很详细,经过摸索我们算是移植到了板上,其实只是把光盘提供的三个镜像烧入到了开发板上,可以运行进入 *** 作系统而已,至于 *** 作系统的定制还有一系列 *** 作还要继续研究。下面就说说这个简单的烧入 *** 作,虽然简单,但是也是查了很多资料后迂回完成的,其中走了很多弯路!u-boot,是linux *** 作系统的引导文件,他和vivi是一样是bootloader。源代码不同,如果你用u-boot那你就要烧入与之对应的内核和文件系统,如果用vivi也一样,要烧入和vivi对应的内核以及文件系统。Uimage,这里就是我们所说的内核kernel。Filesystem,文件系统。三个镜像烧入后再上电就可以启动 *** 作系统了。
下面大概分几个方面进行罗列:Linux要包含
[cpp]
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
等头文件,而windows下则是包含
[cpp]
#include <winsock.h>
。
Linux中socket为整形,Windows中为一个SOCKET。
Linux中关闭socket为close,Windows中为closesocket。
Linux中有变量socklen_t,Windows中直接为int。
因为linux中的socket与普通的fd一样,所以可以在TCP的socket中,发送与接收数据时,直接使用read和write。而windows只能使用recv和send。
设置socet选项,比如设置socket为非阻塞的。Linux下为
[cpp]
flag = fcntl (fd, F_GETFL)
fcntl (fd, F_SETFL, flag | O_NONBLOCK)
,Windows下为
[cpp]
flag = 1
ioctlsocket (fd, FIONBIO, (unsigned long *) &flag)
。
当非阻塞socket的TCP连接正在进行时,Linux的错误号为EINPROGRESS,Windows的错误号为WSAEWOULDBLOCK。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)