- 博客(38)
- 资源 (6)
- 收藏
- 关注
原创 IAR安装与破解WIN7版本
1.获取主机ID。2.用文本编辑器打开注册机提供的一个批处理文件,将里面的ID改为自己电脑的ID。3.保存,运行这个批处理文件,就会生成一个记事本,里面就是注册码和钥匙。 我就是这么做的,不过试了n多遍都没成功,总提示注册码和钥匙与主机ID不匹配。而这个软件
2011-10-08 19:41:06
2037
1
原创 Linux多线程简单聊天程序
功能描述:程序应用多线程技术,可是实现1对N进行网络通信聊天。但至今没想出合适的退出机制,除了用Ctr+C。出于演示目的,这里采用UNIX域协议(文件系统套接字),程序分为客户端和服务端。应用select函数来实现异步的读写操作。 先说一下服务端:首先先创建套接字,然
2011-10-04 20:11:57
3402
原创 实验程序1
#include#include#include#include#include#include#include #include #include #include #include #include#include#incl
2011-10-04 20:09:25
568
原创 消费者与生产者线程同步程序
/*producer-customer.c*/#include#include#include#include#include#include#include#include#define MYFIFO "/tmp/myfifo" //缓冲区
2011-10-03 18:31:25
713
原创 线程信号量同步
/*thread_sem.c*/#include#include#include#include#define THREAD_NUMBER 3#define REPEAT_NUMBER 3#define DELAY_TIME_LEVELS 10.0
2011-10-03 12:29:47
487
原创 线程互斥锁控制开发
/*thread_mutex.c*//*由于线程共享进程的资源和地址空间,因此在对这些资源进行操作的时候,必须考虑到线程间资源访问的同步与互斥问题,POSIX中两种线程同步机制,分别为互斥锁和信号量,互斥锁更适合用于同时可用的资源是唯一的情况,信号量适合用于可用资源为
2011-10-03 10:04:27
371
原创 线程互斥锁
/*thread_mutex.c*/#include#include#include#define THREAD_NUMBER 3 //线程数#define REPEAT_NUMBER 3 //每
2011-09-03 16:10:23
358
原创 线程同步
用信号量进行同步:信号量一般常用于保护一段代码,使其每次只能被一个线程执行,要完成这个工作,就要使用二进制信号量。信号量函数的名字都以sem_开头,线程中使用的信号量函数有四个信号量通过sem_init函数创建#includeInt sem_init(sem_
2011-09-03 10:48:56
347
原创 线程等待
/*线程等待*//*thread_join.c*//*代码分析:进程在创建线程后各自独立运行,pthread_join系统调用会使进程阻塞等待线程的退出*/#include#include#includevoid *thread(void *str){
2011-09-02 19:42:53
522
原创 线程函数传递结构体
/*thread_struct.c编写应用程序,创建一线程,并向该线程处理函数传递以结构体*/#include#include#include#includestruct member{ int a; char *s;};/*线程执行函数*
2011-09-02 19:26:10
3343
原创 select_tcp
/*select_tcp.c*/#include#include#include#include#include#include#include#include#include#include#define portnumber 3
2011-09-01 16:12:16
857
原创 tcp网络客户端程序
/*tcp_client.c*/#include#include#include#include#include#include#include#include#define portnumber 3333int main(int argc
2011-08-31 20:55:00
406
原创 tcp网络服务器程序
/*tcp_server.c*/#include#include#include#include#include#include#include#include#define portnumber 3333int main(){ i
2011-08-31 20:54:16
502
原创 多客户网络程序
/*multisevertcp.c*/#include#include#include#include#include#include#include#include#include#define portnumber 3333int
2011-08-31 20:52:25
405
原创 select
Select函数对数据结构fd_set进行操作,它是由打开的文件描述符构成的集合。有一组定义好的宏可以来控制这些集合#include#includeVoid FD_ZERO(fd_set *fdset);Void FD_CLR(int fd,fd_set *fds
2011-08-31 17:48:44
485
原创 win7系统下使用telnet登陆到虚拟机中的linux系统
一、首先配置win7系统开启telnet服务控制面板--程序--打开和关闭windows功能勾上telnet服务二、linux系统配置(本人用的是linux enterprises 5)使用命令rpm -qa telnet查看是否安装telnet。(一般这个都是安装的
2011-08-26 16:23:28
3115
1
原创 进程间通信--共享内存
共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方式,一个进程向共享内存区域写入数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。共享内存实现分两个步骤:创建共享内存,使用shmget函数映射共享内存,使用shmat函数共享内
2011-08-25 16:23:28
582
原创 进程间通信--信号
/*kill_raise.c*/#include#include#include#include#includeint main(){ pid_t pid; int ret; /*创建一子进程*/ if((pid=fork()) {
2011-08-25 09:28:37
341
原创 进程间通信--管道
进程间通讯方式:(1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。(2)信号(Signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用
2011-08-25 09:25:57
314
原创 多进程一例子
/*multi_proc.c*/#include#include#include#include#includeint main(){ pid_t child1,child2,child; /*创建两个子进程*/ child1=fork()
2011-08-23 09:41:55
494
原创 ioctl驱动实现
#include #include #include #include #include #include #include #include #include #include #include #include "memdev.h"
2011-08-22 21:19:48
590
原创 waitpid
/*waitpid.c*/#include#include#include#include#includeint main(){ pid_t pc,pr; pc=fork(); if(pc { printf("error fork
2011-08-22 11:18:33
363
原创 exec函数族
使用exec函数族主要有两种情况· 当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用exec函数族中的任意一个函数让自己重生; · 如果一个进程想执行另一个程序,那么它就可以调用fork()函数新建一个进程,然后调用exec函数族中的任意一个函数,这样看起来
2011-08-22 10:30:28
423
原创 进程基本概念
一、 进程的定义程序的一次执行过程,同时也是资源分配的最小单元,它与程序有着本质的区别,程序是静态的,它是一些保存在磁盘上的指令有序集,没有任何的执行概念,而进程是动态的概念,它是程序执行的过程,包括了动态创建,调度和消亡的整个过程,对系统而言,当用户执行一个程序的时
2011-08-21 15:21:23
464
原创 字符驱动设计文档
在linux2.6内核中,使用cdev结构体描述一个字符设备Linux用户程序通过设备文件(设备节点)来使驱动操作字符设备。设备文件在啊?字符设备通过字符设备文件来存取。字符设备文件通过主设备号与驱动建立联系。二、创建设备文件1、使用mknod命令手工创建2、
2011-08-19 16:12:00
544
原创 嵌入式linux串口通信自发自收测试程序
/*串口自收自发程序主函数*/#include"uart_api.h"int main(){ int fd; char buff[BUFFER_SIZE]; char buff2[]="Hello NUAA2440!\n"; int nread,nwr
2011-08-15 20:46:27
5499
原创 嵌入式linux串口编程(二)
/*com_writer.c*/#include "uart_api.h"int main(void){ int fd; char buff[BUFFER_SIZE]; if((fd=open_port(HOST_COM_PORT)) { per
2011-08-14 18:26:43
2573
原创 嵌入式linux串口设置(一)
在linux中,所有的设备文件一般都位于“/dev”下,串口1和串口2对应的设备名依次为“/dev/ttyS0”, “/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”,在linux下对设备的操作方法与对文件的操作方法一样。串口开发步骤:串
2011-08-13 10:55:09
2734
原创 struct成员对齐问题
/*struct的成员对齐*/#include #pragma pack(8) struct example1 { short a; long b; }; struct example2 { char c; ex
2011-08-12 20:49:01
535
原创 IO多路复用
Select函数使我们可以执行I/O多路转接,传向select的参数告诉内核:1、我们所关心的描述法2、对于每个描述符我们关心的状态3、愿意等待的时间4、已准备好的描述符的数量5、对于读写或异常三个状态中的哪一个已准备好函数原型:Int select(
2011-08-12 17:33:22
499
原创 简单内核模块
#include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("WHY");MODULE_DESCRIPTION("Hello world module"); static int __init hell
2011-08-12 11:10:25
322
原创 Uboot启动流程
开发板上电后,执行U-Boot的第一条指令,然后顺序执行U-Boot启动函数。看一下board/smdk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。第一个要链接的是cpu/arm920t/start.o,那么U-Boot的入口指令一定位于这个程序
2011-08-11 22:45:28
676
原创 简单的一个字符设备驱动
#include #include #include #include #include #include #include #include #include #include #include #include /*包含内存管理两个
2011-08-11 22:39:13
428
原创 记录锁
/*write_lock.c*//***首先给flock结构体的对应位赋值,两次调用fcntl()函数,分别用于判断是否可以上锁,和给相关文件上锁。*//*lock_set.c*/#include#include#include#include
2011-08-11 22:01:28
327
原创 copy
/***函数基本功能是从一个文件中读取最后10KB数据并复制到另一个文件中*/#include#include#include#include#include#include#define BUFFER_SIZE 1024 /*每次读写缓冲
2011-08-11 17:41:22
953
原创 uboot移植(二)
二、修改NorFlash驱动支持现在检测到的Flash容量是512kB的,因为uboot默认的NorFlash配置是AM29LV400,nuaa2440上使用的NorFlash型号为S29AL016J(容量2M),我们需要修改成2M NorFlash的配置注意:以下仅仅是
2011-08-06 22:00:57
830
原创 嵌入式学习之uboot移植
uboot版本:uboot2010.03硬件平台:NUAA2440开发板主机编译环境:linux --- enterprise5交叉编译器:arm-linux-gcc 4.1.2 支持EABI 一、基础移植,增加对S3C2440平台的支持修改主目录下的Ma
2011-08-04 10:55:33
778
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人