在路上...

The development of life
我们一直都在努力,有您的支持,将走得更远...

站内搜索: Google

  :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2009年8月24日

摘要: 初始化SOCKET(客户端) 连接到host的port端口/////////////////////////////////////////////int InitSocket_Client(unsigned char *host,int port){ int sockfd;struct hostent *he;struct sockaddr_in srvaddr; int connectflag... 阅读全文
posted @ 2009-08-24 15:15 palam 阅读(1484) 评论(0) 推荐(0)

摘要: 传值:#include <stdio.h>#include <pthread.h>void thread(int i){ int k; for (k=0;k<10;k++) { printf("this is %d pthread.\n",i); }}int main(){ pthread_t pthread_id; int i,ret; int m=2; ret=p... 阅读全文
posted @ 2009-08-24 15:10 palam 阅读(463) 评论(1) 推荐(0)

摘要: struct S1 { char c; int i; }; 问sizeof(s1)等于多少? 聪明的你开始思考了,char占1个字节,int占4个字节,那么 加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错 的!VC6中按默认设置得到的结果为8。 Why为什么受伤的总是我 请不要沮丧,我们来好好琢磨一下sizeof的定义——sizeof的结果等于对... 阅读全文
posted @ 2009-08-24 15:06 palam 阅读(301) 评论(0) 推荐(0)

摘要: 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode) 阅读全文
posted @ 2009-08-24 15:02 palam 阅读(1615) 评论(0) 推荐(0)

摘要: int SelectRecv(int sockdf, unsigned char *data, int len,int mark){ int retval; int flag=-1; fd_set rfds; struct timeval timeout; timeout.tv_sec=0; timeout.tv_usec=2; FD_ZERO(&rfds); FD_SET(sockdf... 阅读全文
posted @ 2009-08-24 15:01 palam 阅读(626) 评论(0) 推荐(0)

摘要:    代码实例中的服务器通过socket连接向客户端发送字符串"Hello, you are connected!"。只要在服务器上运行该服务器软件,在客户端运行客户软件,客户端就会收到该字符串。 无连接的客户/服务器程序的在原理上和连接的客户/服务器是一样的,两者的区别在于无连接的客户/服务器中的客户一般不需要建立连接,而且在发送接收数据时,需要指定远端机的地址。 阅读全文
posted @ 2009-08-24 14:58 palam 阅读(544) 评论(0) 推荐(0)

摘要:   阻塞函数在完成其指定的任务以前不允许程序调用另一个函数。例如,程序执行一个读数据的函数调用时,在此函数完成读操作以前将不会执行下一程序语句。当服务器运行到accept语句时,而没有客户连接服务请求到来,服务器就会停止在accept语句上等待连接服务请求的到来。这种情况称为阻塞(blocking)。而非阻塞操作则可以立即完成。比如,如果你希望服务器仅仅注意检查是否有客户在等待连接,有就接受连接,否则就继续做其他事情,则可以通过将Socket设置为非阻塞方式来实现。非阻塞socket在没有客户在等待时就使accept调用立即返回。 阅读全文
posted @ 2009-08-24 14:56 palam 阅读(391) 评论(0) 推荐(0)

摘要: 网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 阅读全文
posted @ 2009-08-24 14:56 palam 阅读(1337) 评论(0) 推荐(0)

摘要: int recvsocket=InitSocket_Server(RECVPORT);//初始化接受端口ret=pthread_create(&pthread_id,NULL,(void *)pthread_1,(void*)&recvsocket);其中pthread_1的定义如下: void pthread_1(int *socket) { SelectRecv(socket,... 阅读全文
posted @ 2009-08-24 14:53 palam 阅读(908) 评论(0) 推荐(0)

摘要: 应用层: #include <unistd.h>1、unsigned int sleep(unsigned int seconds); 秒级2、int usleep(useconds_t usec); 微秒级:1/10^-6 #define _POSIX_C_SOURCE 199309 #include <time.h> 3、int nanosleep(const st... 阅读全文
posted @ 2009-08-24 14:52 palam 阅读(1453) 评论(0) 推荐(0)

摘要: 由于LINUX下应用层不能直接访问寄存器,只要通过驱动程序作为桥梁 // 驱动程序:#ifndef __KERNEL__#define __KERNEL__#endif#ifdef MODULE#define __MODULE__#endif#include <module.h>#include <linux/fs.h>#include <linux/iobuf.h&... 阅读全文
posted @ 2009-08-24 14:51 palam 阅读(1045) 评论(0) 推荐(0)

摘要: C51存贮器类型 C51编译器完全支持8051微处理器及其系列的结构,可完全访问MCS-51硬件系统所有部分。每个变量可准确地赋予不同的存贮器类型(data,idata,pdata,xdata,code)。访问内部数据存贮器(idata)要比访问外部数据存贮器(xdata)相对要快一些,因此,可将经常使用的变量置于内部数据存贮器中,而将较大及很少使用的数据单元置于外部数据存贮器中。 存贮器类型描 ... 阅读全文
posted @ 2009-08-24 14:49 palam 阅读(964) 评论(0) 推荐(0)

摘要: void Openint(void) //打开中断{ EA=1;//开中断 IT0=1; //外部中断0下降沿触发 IT1=1; //外部中断1下降沿触发 EX0=1;//外部中断0 EX1=1;//外部中断1 ET0=1;//开timer0中断 ES=0;//开串口中断}void IntGradeSet(void) //设置优先级{ PS=0; //串口优先级 PT0=0; //timer0中... 阅读全文
posted @ 2009-08-24 14:48 palam 阅读(670) 评论(0) 推荐(0)

摘要: #include "dos.h"#include "stdlib.h"#include "stdio.h"#define PORT 0void SendFile(char *fname); /* 发送文件*/void Send(int s); /*发送一个字节*/void SendFileName(char *fname); /*发送文件名*/void ReceiveFile(); /*接收文件*... 阅读全文
posted @ 2009-08-24 14:44 palam 阅读(1669) 评论(0) 推荐(0)

摘要: 进程的间隔计时器能够提供的时间精度为微秒,对于大多数的应用来说,应该已经足够! 阅读全文
posted @ 2009-08-24 14:43 palam 阅读(1409) 评论(0) 推荐(0)

摘要: 在程序中可能需要某段代码连续执行,不想被其他线程打断。 对于不能被打断的操作我们叫它原子操作,为了能使线程中的某段代码成为原子操作, 实现这个问题有要使用临界区加锁的办法 阅读全文
posted @ 2009-08-24 14:42 palam 阅读(2245) 评论(0) 推荐(0)

摘要: 用pthread_create函数创建一个线程,在这个线程中,我们使用默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。 属性结构为pthread_attr_t,它同样在头文件pthread.h中定义,属性值不能直接设置,须使用相关函数进行操作,初始化的函数为 pthread_attr_init,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省的堆栈、与父进程同样级别的优先级 阅读全文
posted @ 2009-08-24 14:40 palam 阅读(516) 评论(0) 推荐(0)

摘要: 1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信协议也可以用于获取远... 阅读全文
posted @ 2009-08-24 14:37 palam 阅读(1829) 评论(0) 推荐(0)

摘要: 一.丢失引导:华恒论坛在新版本的ppcboot中的说明如下: 近来不断有客户反映,s3c2410的一些开发板有时会莫名的丢失引导。一开始我们以为是客户不熟悉操作,不小心误操作的结果,但经过一段时间的多方检测,发现这里不仅仅是误操作这么简单;我们通过对这方面的问题收集,并结合客户反馈的若干想法和建议,我们总结后发现这不单单是s3c2410相关开发板的问题,还包括ppc8250、xscale425、s... 阅读全文
posted @ 2009-08-24 14:32 palam 阅读(407) 评论(0) 推荐(0)

摘要: 1、 修改CPU/2410/中的start.s文件#define pWTCON 0x53000000 原代码: ldr r0, =pWTCON mov r1, #0x0 关闭看门狗str r1, [r0]改为: ldr r0, =pWTCNT ldr r1, =0x7724 大约15秒复位 str r1, [r0] ldr r0, =pWTCON ldr r1, =0xFF39 打开看门狗s... 阅读全文
posted @ 2009-08-24 14:29 palam 阅读(388) 评论(0) 推荐(0)

摘要: u-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序,在LINUX下可以通过CVS来得到当前正在开发的u-boot软件。当前版本号:u-boot 1.0.2,见include/version.h中的定义。 阅读全文
posted @ 2009-08-24 14:11 palam 阅读(416) 评论(0) 推荐(0)

摘要: 1、 利用ppcboot更新ppcboota、 显示lash信息:SMDK2410# flinfob、 去除第一个扇区的保护:SMDK2410# protect off 1:0c、 通过TFTP下载ppcboot.bin:SMDK2410# tftp 30008000 pccboot.bind、 烧写ppcboot:SMDK2410# fl 0 30008000 2000e、 重新启动:SMDK2... 阅读全文
posted @ 2009-08-24 14:09 palam 阅读(544) 评论(0) 推荐(0)

摘要: 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。 在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在... 阅读全文
posted @ 2009-08-24 12:18 palam 阅读(359) 评论(0) 推荐(0)

摘要: 联合利华引进了一条香皂包装生产线,结果发现这条生产线有个缺陷:常常会有盒子里没装入香皂。总不能把空盒子卖给顾客啊,他们只好请了一个学自动化的博士后设计一个方案来分拣空的香皂盒。博士后拉起了一个十几人的科研攻关小组,综合采用了机械、微电子、自动化、X射线探测等技术,花了几十万,成功解决了问题。每当生产线上有空香皂盒通过,两旁的探测器会检测到,并且驱动一只机械手把空皂盒推走。 中国南方有个乡镇企业也... 阅读全文
posted @ 2009-08-24 11:43 palam 阅读(266) 评论(0) 推荐(0)

摘要: 首先要准备好编译用的软件包: 软件包(找不到清直接在网站生下载)wget -c http://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.... 阅读全文
posted @ 2009-08-24 11:36 palam 阅读(1760) 评论(0) 推荐(0)

摘要: U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在include/command.h头文件中定义,每一个命令定义一个cmd_tbl_t结构体。 #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help} 这样每一个U-Boot命令有一个结构体来描述。结构体包含的成员变量:命令名称、最大参数个数、重复数、命令执行函数、用法、帮助。 阅读全文
posted @ 2009-08-24 11:29 palam 阅读(254) 评论(0) 推荐(0)

摘要: #pragma once#include <tapi.h>#include <Extapi.h>#pragma comment(lib,"Cellcore.lib")class TapiFun{private:HLINEAPP m_hLineApp;DWORD dwNumDev;DWORD dwAPIVersionLow; DWORD dwAPIVersionHigh;/*... 阅读全文
posted @ 2009-08-24 11:16 palam 阅读(881) 评论(0) 推荐(0)