- 博客(70)
- 收藏
- 关注
转载 UART的一点总结
串口即通用异步收发器(UART,Universal Asynchronous Receiver Transmitter)。UART很早以前做的一个协议,做的细节有的记的不太清了,最近又用到它了,不过当时做完就做成模块了直接用的!做个总结可能以后还要再改!发送部分:1:数据线空闲时呈现为高或“1”状态。2:发送起始位的逻辑位“0”。3:发送8个数据位,先发送数据的最
2008-04-15 22:56:00 1653 1
原创 拷贝构造函数
在介绍拷贝构造函数之前,先来说几个背景知识。首先来说一下c++里的referrence。referrence可以看作是一个常量指针,在定义一个refferrence的时候必须为他指派一个地址,而且以后不能再更改。int x = 0;int &y = x;b.y = 1;y++;//对y的更改就是对x的更改。。执行完之后y和x的值都是1 大家看到的
2008-02-07 20:28:00 958
转载 VHDL:理解信号与变量、并行语句与顺序语句
初学VHDL,对一些问题总是感到困惑。比如,同样的赋值语句,在什么场合是并行的,什么时候又是顺序的?信号与变量有什么区别,为什么在PROCESS 里,对信号赋值的结果要等到进程挂起才起作用,而变量赋值却立刻起作用?其实,从语句产生的电路这个角度,可以更深刻地理解这些问题,下面是我自己摸索的一些理解方法,有不妥之处请大虾们指正!1、赋值语句。 同样a a) 如果a b) 如果是
2007-12-23 14:36:00 1892
转载 ARM 中断程序的原理和实现
摘要:本文首先简要概述了ARM处理器的异常中断种类、响应和返回过程;然后重点讨论了中断解析程序的原理和实现,并分别给出了普通中断和向量中断的处理示例流程图和详细的参考代码。关键词:异常中断;中断解析程序;向量中断;ARM处理器引言 ARM编程特别是系统初始化代码的编写中通常需要实现中断的响应、解析跳转和返回等操作,以便支持上层应用程序的开发,而这往往是困扰初学者的一个难题。中断处理的编程
2007-12-11 14:45:00 1334
转载 利用共享内存实现进程间通信
在两个进程间共享数据的方法,至今为止我们只说过利用管道。管道只是利用了输入输出重定向的原理,非常简单。而且只能在父子进程间使用。很多场合下这种方法是无法满足我们的要求的。那么现在,我们又有了一种新的方法——利用共享内存(shared memory)。这可以使我们在任意两个进程间传递数据,而且也是相对简单容易实现的一个方法。注意:在正常情况下,一个进程的所使用的内存区是不允许其它进程访问的。这里我们
2007-11-30 16:19:00 1120 1
转载 实时操作系统与通用操作系统的一些比较
嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;而作为一种实时操作系统(本文对实时操作系统特性的讨论仅限于强实时操作系统,下面提到的实时操作系统也均指强实时操作系统),它与通用操作系统(如Windows、Unix、Linux等)相比有很大的差别,下面我们将通过比较这两种
2007-11-30 16:08:00 622
转载 c与c++ static函数的区别
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, registe
2007-11-06 22:54:00 574
转载 c/c++字节对齐
什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取
2007-11-06 22:46:00 609
转载 c可变函数参数
--------------------------------------------------------------------------------------------------------from The C Programming Language (2nd edition)---------------------------------------------------
2007-11-05 17:25:00 689
转载 关于inline函数的一些总结
inline函数我们看下面的函数,函数体中只有一行语句: double Average(double total, int number){ return total/number; } 定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它被频繁地调用的时候,由于调用函数的开销,会对应用程
2007-08-31 17:02:00 1032
原创 如何判断自己的IP是公网ip还是内网ip
如何判断自己的IP是公网ip还是内网iptcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0~10.255.255.255 172.16.0.0/12:172.16.0.0~172.31.255.255 192.168.0.0/16:192.168.0.0~192.168.255.255 使用保留地址的网络
2007-08-22 22:13:00 6058
原创 PE文件结构的一些基础知识
原来在DOS操作系统上面的可执行文件(COM)只包含代码,程序被载入后第一句就是一条指令。这样让程序很不灵活,所有的代码,数据,堆栈都存放在一起,程序不能跨段操作。所有Windows操作系统为了解决这个问题就引入了PE文件结构。 PE文件的基本结构 PE文件头:包括文件的入口,堆栈位置,重定位表等信息
2007-08-02 20:32:00 1334
原创 WIN32汇编的一些基础知识
x86的工作模式 实模式 只使用到了32根地址线中的20根 寻址方式:段寄存器*16+offset 不分页 所有的段可读,写,执行 不分优先级 中断是通过中断向量表定位中断服务程序
2007-07-24 14:06:00 850
转载 C++构造/析构函数Q&A
初始化C++类成员和在你的MFC应用中加入位置栏 Paul DiLascia 问题 我的问题是关于初始化C++类成员的。我见过许多这样的代码(包括在你的栏目中也见到过): CSomeClass::CSomeClass() { x=0; y=1; } 而在别的什么地方则写成下面的样子: CSomeClass::CSomeClass() : x(0), y(1) { }
2007-06-19 17:56:00 1021
原创 object manager
Windows2000 实现了一个对象模型,提供一种对许多内部服务的一致性,安全性的访问.对象管理的设计是为了下面几个目标: Provide a common, uniform mechanism for using system resources Isolate object protection to one location in the operating
2007-06-09 22:44:00 990
原创 Structured Exception Handling(SEH)
SEH可以让你程序在运行期发生错误时,捕捉到它,并且能按照你的意思做出处理. SEH分为两个部分:termination handling和exception handlingtermination handling(结束处理程序)visual c++中是用这样的格式实现结束处理程序的_try{ //Guarded code .....
2007-06-05 00:22:00 759
原创 windows2000中断处理
在开始说windows2000 中断处理之前,先介绍几个名词: trap:CPU中断正常的程序流程,转入到特定的地方.WINDOWS2000是把中断转给trap handler Figure 1 Trap dispatching interrupt:trap的一种(中断).他是一个异步时间(随时可能发生).与CPU的执行无关,主
2007-06-02 16:03:00 1396
原创 游标的使用
先举例说下游标的基本用法:DECLARE @name varchar(40) DECLARE test_cursor CURSOR --test_cursor 为游标名称 FOR SELECT au_fname FROM authors --你要逐条记录滚动的表authors OPEN test
2007-05-23 21:37:00 623
原创 常见的D/A和A/D
8 位分辨率数模转换器 DAC (23) Part Number Description DAC5571 具有高速 I2C 输入的低功耗 8 位 DAC
2007-05-23 21:06:00 7097
原创 struts中文乱码问题解决
近日,使用struts 1.1,发现讨厌的中文乱码问题,在form的传送过程和入库时候出现。就我在网络上找的方法罗列如下:(Tomcat 5.0.28+struts 1.1+hibernate 2.1+sqlserver2k)1.直接转编码public static String isoToGB(String src){ String strRet=null; try{
2007-04-15 21:58:00 859
转载 数据验证以及ActionError
数据验证以及ActionError 创建一个数据验证逻辑对任何应用来说都是一个重要的和花费时间的部分。幸运的是,Struts提供了一个易用的、强大的
2007-04-15 21:03:00 936
原创 DataReader, DataAdapter & DataSet - When to use?
DataReader, DataAdapter & DataSet - When to use? ADO.NET offers two central Data Access Components. In this Article we will discuss about their features and when to use what.ADO.NET provides two cen
2007-04-01 12:16:00 834
原创 用内核对象同步线程
用户方式同步具有速度快的优点。但是它的缺点特是显而易见的。 首先,用互锁函数家族的时候,这些函数只能用在单值数据上 如果用关键代码段的话,只能对单个进程中的线程进行同步。而且容易出现死琐,而且不能设置等待时间那么内核对象就克服了用户方式同步的几个缺点,能够在不同进程间对线程实施同步,而且处理完全不止在单值数据上。但是内核方式同步线程时,必须将线
2007-03-01 03:33:00 1116
原创 c++构造函数与析构函数的几个要点
构造函数的基本定义1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象。 2.若没有提供任何构造函数,那么c++提供自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而不做任何赋值操作。 3.只要类中提供了任意一个构造函数,那么c++就不在自动提供默认构造函数。 4.类对象的定义和变量的定义类似,使用默认构造函数创建对
2007-02-28 20:26:00 1039
原创 线程的调度,优先级和亲缘性
首先说明下WINDOWS是一个强占式的操作系统 ,WINDOWS会每隔20MS左右就查看线程内核对象,找出某个优先级高的可调度线程进行执行,并将内核对象中的上下文放置到CPU寄存器中。还有一种操作系统是实时性的,比如LINUX,意思是能够让某个线程在特定时间运行,运行多久,但是这种操作系统要求明确的知道它在什么硬件上运行。而WINDOWS是被设计成能在各种不同的硬件上运行,所
2007-02-18 04:03:00 1205
原创 线程
前面学习了进程,现在来看看线程。进程可以说是一个正在运行的程序的实例,其实它只是一个运行的程序的一个运行环境,可以说是一个监控者,它负责程序的初始化, 运行期的流程控制,结束时的一些清除工作。而执行程序真正的工作者是线程。现在就来介绍下线程。 线程和进程的组成非常相似,由下面两部分组成 线程内核对象。线程内核对象和进程内核对象相似,是用来存储线程的一些
2007-02-15 20:11:00 820
原创 进程
进程这个词我们在操作系统中经常要到 ,但是什么是进程呢?现在就来说下的它的定义。WINDOWS核心编程是这样定义它的:进程的就是一个正在运行的程序的实例。它有两部分组成: 管理进程的内核对象(进程内核对象),这个内核对象就是是一个简单的数据结构,保存系统中进程的一个统计信息。 运行程序的地址空间。包括EXE模块,所有的Dll模块,线程的堆栈,堆等等) p
2007-02-13 20:20:00 682
原创 WINDOWS内核对象
首先说一下什么是内核对象,之所以叫内核对象就是这个对象是由内核创建,由内核维护,不属于某一个进程,而是属于整个系统的。比如互斥对象,文件印象对象等等。。内核对象有两个比较重要的特性: 每个内核对象都不属于某个进程,而属于整个系统,几乎每个内核对象都有一个计数器,计数正在使用这个对象的进程数 每个内核对象都会有一个安全描述符,描述了谁创建了这个对象,谁能访问它,谁不能访
2007-02-11 23:11:00 866
原创 不知不觉
不知不觉的一个学期就过去了。。。这个学期看似很快,但是还是收获颇丰啊。。。。这个学期最重要的就是得到了一次实战的机会,给一个小公司做了个财会类软件,用C#+SQL SERVER.在这次项目中我是学到了很多很多的实战经验,客户需求方面,user interface,软件的架构,等等等。。还有就是作为一个程序员的责任心,虽然不能完全满足客户的需求,但是也要尽自己所能。 学
2007-01-29 22:16:00 706
原创 子窗口控件
首先说下子窗口控件的一些基本用途: 子窗口控件可以用于将一个大的用户程序从界面上分成很多个功能小模块,比如说为一个应用程序添加一个Button,那么Button自己可以接受鼠标的事件,然后自己做处理(比如说按钮被按下的高亮效果),再把处理后的结果以新的消息的形式传送回父窗口.hwndParent = GetParent (hwnd) 用于得到父窗口的句柄.再用SendMessage
2006-12-26 22:58:00 1022
原创 定时器
定时器,看上去好象是没什么用的,和键盘和鼠标的功能差的太远了.但其实这是不了解定时器的表现 ,定时器在windows的程序中起到了举足轻重的作用,首先先列下几个定时器的应用: 操作系统的多任务:操作系统有时候会执行一个非常大的任务,这个任务要完成会占用很多的CPU时间,当然为了完成这个任务而让其他任务等待是不合理的,现代操作系统的多任务都是将一个大的任务分成很多的
2006-12-25 23:58:00 724
原创 鼠标
一些新定义: 热点:鼠标其实就是一个位图,但是从应用的角度看,他在用户区域里,其实指向唯一的一个像素,这个像素就是热点(hot spot)。参数: 当鼠标移过窗口的显示区域时,窗口消息处理程序收到WM_MOUSEMOVE消息。当在窗口的显示区域中按下或者释放一个鼠标按键时,窗口消息处理程序会接收到下面这些消息:
2006-11-15 13:19:00 922
原创 键盘
一.键盘1.同步:windows将硬件的扫描码转换成消息格式,先传送给系统的消息队列,只有当windows处理完前一个使用者的输入信息之后,再把消息传送给应用程序。为什么要这样做呢?是因为需要同步的缘故:假设用户的输入速度比应用程序的处理速度要快,并且输入的按键中有将输入焦点转移的按键,这时,如果把消息直接的传给某个应用程序的话,则转移焦点后面的消息将无法转到对应的消息队列中。所以要先将
2006-11-09 22:27:00 660
原创 比较x86跟PowerPC的好文一篇
Analysis: x86 Vs PPCBy Nicholas Blachford - Posted on 2003-07-09 16:43:53at OSNews [http://www.osnews.com/]This article started life when I was asked to write a comparison of x86 and PowerPC CPU
2006-10-11 22:53:00 5800
原创 Heap
Heap中文翻译过来叫做堆,但他并不是大家所说的内存中的堆栈区,而是一种用数组来实现的弱序的完全二叉树。他是一种数据结构。Heap 很像前面所说的二叉搜索树,但是他并没有二叉搜索树那样有严格的顺序规定。二叉搜索树中,父接点必须大于它的左孩子,而小于他的右孩子;但是在Heap中,只要规定父接点大于两个子接点就可以了,而且其中的每个元素并不是通过Link来连接的,而是对这个完全二叉树进行编
2006-09-14 20:48:00 938
原创 Hash Table的补充
上一篇文章已经说了Hash Table作为一个数组以开放式寻址的方式实现 ,用开放式寻址去解决Key的冲突比较麻烦,不管是用线性探针,二次方探针,即便是二次Hash也还是有缺陷,一旦数组变的比较满的时候,算法的效率就会大打折扣,而且用开放式寻址就不能真正意义上的去删除一个数据项,如果删除一个数据项,以后的搜索某个数据就会发生错误。 用Linked List来代替数组中的元
2006-09-10 20:35:00 1557 1
原创 Hash Table
刚到学校的时候把宽带的密码搞忘了,跑了两次新华公园的电信这才可以上了。前几天因为忙着做一个定单的项目,没有抽时间来看数据结构。到了今天才把软件的大体框架完成,准备拿过去给客户看了。刚才抽了点时间看了下Hash Table,现在就把看的东西记下来。。。 Hash Table这种数据结构比以前见到的Binary Tree的搜索,插入,删除所需要的时间还要短,时间复杂度逼近O(1)。在
2006-09-09 22:12:00 1569
转载 SQL-JOIN
The join clause combines columns of one table to that of another to create a single table. Join matches up a column with one table to a column in another table. A join query does not alter either t
2006-09-06 22:08:00 785
原创 这个学期的安排
这个暑假看了professional hibernate的前5章,对hibernate有了一个初步的了解了,觉得hibernate做持久确实很方便,而且支持hibernate的开源项目也是很多,比如报表程序jasperreports。。。 这个学期就要把他看完。。 至于数据结构,从大2上就开始看,一路是走走停停,今年暑假努力了一个月,终于看的差不多了,这个学期当然要把这个看完了。这
2006-08-31 20:17:00 717
原创 回忆排序
有关排序的东西还是半年前看的,很多东西都忘了。所以今天拿出来再回忆一下。。简单的排序方法有:冒泡排序,选择排序,插入排序。其中冒泡排序算法最差,效率最低。算法基本思路是从树组的第1个元素开始,将它与其数组的其他元素进行比较,大的放在后面,这样每论下来能选出一个最大的,这样就进行了由小到大的排序。选择排序不同于冒泡排序的是,它是从最左边开始,也就是将数组中小的元素先进行
2006-08-23 23:43:00 610
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人