自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

转载 210板wince键盘驱动分析和移植

主要是bsp包里面的3个cpp文件的分析。首先是pddlist.cpp文件这个文件介绍了3种键盘的wince的api入口函数名前面加winapi),本文只关心第二种矩阵键盘。然后在kbd.cpp文件中可以找到这个入口函数Matrix_Entry。这里值得注意的是,本驱动是全键盘驱动,里面涉及到一些shift键和fn键的处理,即组合键的处理,这里先不分析,因为暂时没有用到。分析这

2012-11-30 17:05:49 700

转载 TCP/IP四层模型

TCP/IP参考模型    ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。            图2-1  TCP/IP参考模型  2.1 TCP/IP参考模型的层次结构  TCP/IP协议栈是美国国防部高级研究计划局计

2012-11-30 15:29:14 699

转载 简述TCP/IP四层体系结构及每层作用

应该说是Internet四层体系结构 1.数据链路层 2.网络层 3.传输层 4.应用层 ,其中IP是在第二层网络层中,TCP是在第3层传输层中,Internet体系结构最重要的是TCP/IP协议,是实现互联网络连接性和互操作性的关键,它把许多台的Internet上的各种网络连接起来。Internet的其他网络协议都要用到TCP/IP协议提供的功能,因而称我们习惯称整Internet协议族

2012-11-30 15:27:47 8666

转载 C/C++中near和far的区别

在80286以前的微处理器(CPU)组成的确16位机上,Windows操作系统(包括DOS)对于内存是分段使用的(分段内存模式,Segment   Memory   Mode)。运行在这些16位CPU微机上的Windows(Windows   1.0-3.1)被称为“Win16”。从80386开始的32位CPU开始,为了兼容,也采用上述分段内存模式,这就导致了near(short)、 far(lo

2012-11-30 15:25:33 1389 1

转载 char * 转LPCTSTR若干方法

如何将char* 转换为LPCTSTR??rainForestBache (百奇)     2004-10-19 20:17:48 在 VC/MFC / 基础类 提问请多多指教问题点数:20、回复次数:101楼  stephen_young   ()   回复于 2004-10-19 20:33:45  得分 5 实际上将char*转换成CString对象就成了.

2012-11-30 01:52:46 2145

转载 etherpeek nx在网络维护中的应用

摘要:该文分析了etherpeek nx的工作原理,主要利用etherpeek nx的数据包截取和分析功能来对netrobocop(网络执法官)数据包的分析,了解局域网和netrobocop的基本原理,从而更好地维护网络的安全和畅通。关键字:etherpeek nx ,netrobocop ,arp欺骗一、前言随着计算机网络技术的发展,特别是internet的广泛使用,网络也被各行各业

2012-11-29 15:38:02 1513

转载 ARMV4,ARMV4T,ARMV4I的意义

ARMV4,ARMV4T,ARMV4I以上表示的是指令的版本也就是三种指令集:ARMv4 -> 它只支持 32 位 ARMv4 指令ARMv4T ->“T”代表 Thumb(16 位指令模式)ARMv4I ->“I”代表交互作用 (Interworking)。它允许 32 位指令和 16 位指令共存一些经常出现的CPU支持的指令类型:XScale->支持ARMv

2012-11-29 00:49:13 2487

转载 JOJ的2042面试题目的数学推导过程

JOJ的2042题目是一个程序理解题目,这个题目非常有意思,给出了下面一段C++源代码,要求计算出最后的输出结果,源代码如下:#includeint main(void){     int x = 987654321, c = 0, d = 1, e = 6;     while(x--){         c += d,         d += e,

2012-11-28 23:55:29 591

转载 Linux编程练习 --进程间通信2--两个管道实现双向通信

利用两个管道进行进程间双向通信在第一篇练习已经大致作出说明,下面将进行一个更为综合的练习首先看题目:设有二元函数f(x,y) = f(x) + f(y)其中: f(x) = f(x-1) * x (x >1)f(x)=1 (x=1)f(y) = f(y-1) + f(y-2) (y> 2)f(y)=1 (y=1,2)请编程建立3 个并发协作进程,它们分别完成f(

2012-11-28 23:54:40 3108 1

转载 Linux编程练习 --进程间通信1--无名管道

进程间通信系列--管道管道可以说是最古老的IPC形式,所谓管道,是指进程间建立的一条通信的通道,从本质上看,管道是UNIX文件概念的推广管道通信的介质是文件,先看一下管道的特点: 1.管道的特点:  (1)管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;  (2)无名管道只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);后来

2012-11-28 23:54:11 1031

转载 Linux编程练习 --多线程5--信号量(semaphore)

这一篇练习信号量的应用信号量本质上是一个非负的整数计数器,也是UNIX中古老的实现进程互斥和同步的手段,Linux下信号量概念是在线程中,信号则在进程控制中,不过原理差不多,最基本最经典的操作莫过于P、V操作了,能实现进程、线程的互斥和同步操作,非常值得深入理解。1.P、V操作原语 P操作: proceduce P(var s:semaphore){

2012-11-28 23:53:33 610

转载 Linux编程练习 --多线程4--条件变量

上一篇练习了互斥锁的用法和原理,这次学习和互斥锁一起应用的cond--条件变量1.互斥锁的存在问题:互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。设想一种简单情景:多个线程访问同一个共享资源时,并不知道何时应该使用共享资源,如果在临界区里加入判断语句,或者可以有效,但一来效率不高,二来复杂环境下就难以编写了,这是我们需要一个结构,能在条件成立时触发相应线程,进行变量修改和访问

2012-11-28 23:52:58 420

转载 Linux编程练习 --多线程3--mutex

互斥指互相排斥的锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源        1.数据类型: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t,我们定义一个互斥数据可以这样:              pthread_mutex_t mutex; 2.函数说明:头文件:     pthread.h(1).互斥锁初始化:

2012-11-28 23:52:28 444

转载 Linux编程练习 --多线程2--属性的设置

在上一篇的练习里,我们用pthread_create函数创建了一个线程,在这个线程中,我们使用了默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。属性设置  属性结构为pthread_attr_t,它同样在头文件/usr/include/pthread.h中定义      属性值不能直接设

2012-11-28 23:51:55 491

转载 Linux编程练习 --多线程1--线程创建

POSIX线程—轻量级进程,线程调度是由内核调度程序完成的,线程所消耗的系统资源比较少,相互通讯也比较容易。多线程的优点:1.资源消耗量少。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花

2012-11-28 23:51:21 629

转载 学习linux/unix编程方法的建议[转]

首先先学学编辑器,vim, emacs什么的都行。然后学make file文件,只要知道一点就行,这样就可以准备编程序了。   然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。   如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。

2012-11-28 23:50:38 873 1

转载 进程控制3--signal

signal信号是一种比较古老的进程控制手段,可以在进程内和进程间传递事件,通常被用来通知进程产生了异常事件信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。首先回忆硬中断:有单片机或者做过微机原理的都对硬中断比较熟悉了,中断有外部中断和内部中断,是一些异常事件发生,然后计算机停止当前执行任务转而去处理中断任务

2012-11-28 23:50:09 532

转载 进程控制2--exec族

系统调用exe函数族对当前进程进行替换,替换着为一个指定程序,其参数包括文件名filename,参数列表argv,以及环境变量envp整个函数家族如下:#include extern char **environ;int execl(const char *path, const char *arg, ...);int execlp(const char *file

2012-11-28 23:49:38 384

转载 进程控制1--fork vfork函数

linux系统调用fork()创建一个和当前进程完全相同的拷贝进程,其中父进程和子进程的代码段,堆栈段,数据段均独立 进程必须的4要点:a.要有一段程序供该进程运行b.进程专用的系统堆栈空间。c.进程控制块,在linux中具体实现是task_structd.有独立的存储空间。当一个进程缺少其中一个条件时候,我们称其为线程。 1

2012-11-28 23:49:04 517

转载 串口通讯编程一日通3(COMMTIMEOUTS DCB整理)

上一篇看了Overlapped IO模型后,接下来看剩下两个重要结构:  2.COMMTIMEOUTS结构 超时设置COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下:         typedef   struct   _COMMTIMEOUTS   {       DWORD   ReadInter

2012-11-28 23:47:39 610

转载 串口通讯编程一日通2(Overlapped IO模型)

第一篇初步了解串口的大致运作,接下来我们看基本操作先看串口操作的数据结构:串口操作有几个比较重要的Struct1.Overlapped I/O 异步I/O模型异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知

2012-11-28 23:41:08 1468

转载 串口通讯编程一日通1(整合资料) .

本文以VC++为平台进行串口通信编程串口通讯在VC++下实现方式有很多,控件自然是最简单话的方式了,但由于控件只支持对话框程序,有些场合又不需要对话框,所以用Windows API实现是比较好的方式串行通信的操作方式1.同步方式同步方式中,读串口的函数试图在串口的接收缓冲区中读取规定数目的数据,直到规定数目的数据全部被读出或设定的超时时间已到时才返回[cpp]

2012-11-28 23:33:30 693

转载 解析 Linux 中的 VFS 文件系统机制

简介: 本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。本文侧重于通过具体的代码分析来解释 Linux 内核中 VFS 的内在

2012-11-28 23:30:03 490

转载 设备I/O之OVERLAPPED

OVERLAPPED,顾名思义为重叠,乍一看会很奇怪,重叠?谁跟谁重叠?似乎在WIN32的Programming中没有这个概念呀?要讨论这个问题就要追溯到对设备I/O的访问中。     在WIN32中,用户不能象以前那样直接对硬件进行访问,使得这一层对开发者而言是个"黑盒",而提供了一组对应的API的接口.让开发者基于提供的接口进行开发,而把低层的访问交给了Driver或者内核.在WIN3

2012-11-28 23:28:03 510

转载 串口握手协议的XON\XOFF原理

串口握手协议的XON\XOFF原理有人可能搞不清楚,看看下面这个例子你应该能有所感悟。假设电脑A和电脑B通过RS232串口通信A 和 B协商使用软件握手协议(dcb.fOutX = TRUE), 定义XonChar \ XoffChar 比如XonChar = 1,XoffChar = 2.现在, A向B发送字符2, B向A发送字符串"helloworld". A能

2012-11-28 22:26:52 4208

转载 DCB(串口的DCB结构)

串口通讯中的DCB结构 typedef struct _DCB {// dcbDWORD DCBlength; // sizeof(DCB)DORD BaudRate; // current baud rate 指定当前的波特率DWORD fBinary: 1; // binary mode, no EOF check 指定是否允许二进制模式WIN9

2012-11-28 22:01:14 1426

转载 wince串口驱动分析(转)

wince串口驱动分析串行通讯接口主要是指UART(通用串行)和IRDA两种。通常的串行连接电气连接上有3wire和9wire两种。3wire的接线方式下定义了发送、接收和地三根连接。其用途就如名称一样分别用于发送、接收。通常在串行接口控制器上会有两个FIFO用作接收和发送的缓冲,当接收到数据后会直接将接收到的数据置入该缓冲器,并同时由控制电路向本地总线发出通知,以便让本地总线将缓

2012-11-25 03:16:16 592

转载 winCE下Unicode编码

Unicode :宽字节字符集1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数?可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。2. 如何对DBCS(双字节字符集)字符串进行操作?

2012-11-25 02:20:32 701

转载 二叉树序列化

文件的大小尽可能的小。     想了四种方法:     第一种方法:把二叉树按前序和中序遍历一遍,存两次二叉树。     第二种方法:将二叉树按左枝为0,右枝为1进行路径编码,那么每个节点都可以表示成,节点信息和路径信息进行永久化。      第三种方法:将二叉树变成满二叉树,采用数组存储满二叉树,那么数据index和根据二叉树的节点信息进行永久化。01

2012-11-24 22:59:45 2108

转载 程序员找工作那点事儿

从7月中旬回武汉之后开始系统的复习,到9月下旬正式开始找工作,最后到10月中旬结束,前后历时三个月,从前期的职业定位,到中期的复习准备,最后到后期真枪实弹的笔试面试,个人感觉找工作就是个系统的工程,是个很复杂的事情,至少对于我是这样的。经历了感触颇深,在这里,我想将我这几个月,尤其是最后半个多月笔试面试的经历与感受记录下来,一来祭奠我那些由于高强度笔试面试牺牲的脑细胞,二来希望能给学弟学妹们半点借

2012-11-24 22:56:04 717

转载 二叉树

[cpp] view plaincopy#include    #include    #include    #include    #include    //定义ElemType为char   typedef char ElemType;   //单链表中结点的类型   typedef struct BiTNode  {

2012-11-24 19:33:59 499

转载 VS2005开发WinCE6.0应用程序 更换SDK后工程的移植

在应用VS2005开发嵌入式应用程序的时候,一旦平台的SDK发生改变,原先的应用程序就打不开了。搞的偶是非常郁闷,一旦添加了或者更改了驱动程序,重新导出平台SDK以后都要重新建工程,再把代码拷贝到新的工程中,非常的费时费力,还老是出错。现在这个问题终于解决了,O(∩_∩)O~,以后就没有那么费力了哦     比如,我原来有一个工程为EBIAccess,用VS2005打开工程的时

2012-11-24 19:33:14 833

转载 发一个自己写的2440驱动1602的资料(电路+代码)

上个星期把MINI2440板上的富余数据线引了出来,看着以前丢下的1602突然有了想用ARM9驱动它的冲动,于是就开始干了。代码是从以前刚学C51的时候改的,呵呵,看见以前写的代码真觉得很烂,现在已经整理好了。虽说有点牛刀杀鸡的味道,但驱动起来真的费了不少劲。如果有裤子穿就好了 ^_^驱动方式:2440+HC595+LCD1602电路图:电路图 (原文件名:

2012-11-24 13:48:10 809

转载 WinCE驱动的动态卸载

//=====================================================================//TITLE://    WinCE驱动的动态卸载//AUTHOR://    norains//DATE://    Wednesday 21-April-2010//Environment://    Windows C

2012-11-22 06:57:14 623

转载 大话WinCE与WinXP应用程序开发的差异性

//=====================================================================//TITLE://    大话WinCE与WinXP应用程序开发的差异性//AUTHOR://    norains//DATE://    Wednesday 21-April-2010//Environment://

2012-11-22 06:55:58 586

转载 自己动手写TCC7901的GPIO驱动

//=====================================================================//TITLE://    自己动手写TCC7901的GPIO驱动//AUTHOR://    norains//DATE://    Monday 12-July-2010//Environment://    Window

2012-11-22 06:55:27 854

转载 获取WinCE已加载驱动的信息

//=====================================================================//TITLE://    WinCE驱动的动态加载//AUTHOR://    norains//DATE://    Monday 22- February-2010//Environment://     WINDOWS

2012-11-22 06:50:25 510

转载 WinCE驱动的动态加载

//=====================================================================//TITLE://    WinCE驱动的动态加载//AUTHOR://    norains//DATE://    Monday 22- February-2010//Environment://     WINDOWS

2012-11-22 06:49:05 615

转载 WinCE驱动调试助手V2.5

http://www.cnblogs.com/we-hjb/archive/2008/12/15/1280822.html     http://blog.chinaunix.net/u1/49088/showart.php?id=1279989     工欲善其事,必先利其器。做WinCE驱动的开发已有一段时间了,WinCE驱动调试助手也跟着更新了很多功能。现在只要做驱动,DM是

2012-11-22 01:02:39 1689 1

转载 WINCE6.0 DM.EXE 激活驱动失败的原因之一

前些天把WINCE6.0的开发环境建好了,今天定制了一个系统,练习了一下驱动的编写和调试。把DLL文件通过VS2005部署到开发板上,用一位大侠写的DM.EXE工具进行激活,但是发现点击激活按钮式无反应,驱动还是停在“停用”状态,郁闷了几个小时。。。    后来在网上发现这个软件有了新版本V2.9,原来的是V2.5,赶紧下了个。试了一下,还是不能激活,但是驱动列表中显示了全部驱动,而原来的

2012-11-22 00:56:46 763

RT5350用户手册

RT5350中文手册,这是对ralink原厂sdk手册的补充,因为ralink的sdk的编译流程和一般的嵌入式开发板的编译流程有不少差别,所以写了这个中文手册。对于第一次接触路由方案的开发人员,有相当的参考价值。

2014-04-25

ucGUI学习笔记 -- 仿真器

ucGUI学习笔记 -- 仿真器 原创

2012-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除