- 博客(24)
- 收藏
- 关注
转载 S3C2440中断体系介绍
1、中断处理过程 SUBSRCPND和SRCPND寄存器表明有哪些中断被触发了,正在等待处理(Pending);SUBMASK(INTSUBMSK寄存器)和MASK(INTMSK寄存器)用于屏蔽某些中断。 1) Request sources(without sub-register)中的中断源被触发后,SRCPND寄存器中相应位被置1,如果此中断没有被INTMSK寄存器屏
2013-02-01 09:53:48
478
转载 ARM处理器异常处理
1.1 ARM处理器异常处理所谓异常就是正常的用户程序被暂时中止,处理器就进入异常模式,例如响应一个来自外设的中断,或者当前程序非法访问内存地址都会进入相应异常模式。1.1.1 异常分类(1)复位异常当CPU刚上电时或按下reset重启键之后进入该异常,该异常在管理模式下处理。(2)一般/快速中断请求CPU和外部设备是分别独立的硬件执行单元,CPU对全部设备进行管理和资
2013-01-31 15:44:20
517
转载 ARM发生异常时返回时程序计数器(PC)的计算
这里PC代表当前执行指令地址。实际在ARM三级流水线中,PC始终指向当前执行指令的后2条指令,也就是说当前执行指令地址始终为PC-8。在ADS环境中,PC显示为当前执行指令地址,实际值也是当前值+8。
2013-01-31 15:37:21
1090
转载 TCP同步与异步,长连接与短连接
首先我简单介绍一下同步TCP编程 与异步TCP编程。在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如:TcpListene server = newTcpListener(IPAddress.Parse("127.0.0.1"), port);TcpClient tc =server
2012-11-22 14:42:14
8694
转载 WinCE流式接口驱动架构
WinCE流式接口驱动架构 1、流式接口驱动程序简介 驱动程序是对底层硬件的抽象。应用程序开发者不需要真正理解底层驱动的工作原理,他们只需要通过Windows CE提供的API函数,就可以直接与硬件进行交互。 WinCE的流式接口驱动程序以动态链接库的形式存在,由设备管理器(通常是device.exe或者gwes.exe)统一加
2012-08-28 15:42:28
677
转载 C#字符串格式化说明大全
1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString或者Standard Template Library(STL)的字符串类,那么你对String.Format方法肯定很熟悉。在C#中也经常使用这个方法来格式化字符串,比如下面这样:int x = 16
2012-03-21 09:51:22
558
转载 自定义事件详细实例
using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication6{ class Program { static void Main(string[] args) {
2012-03-16 13:25:05
582
原创 c# Windows消息处理过程探究
一、消息概述 Windows下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握编程语言是如何封装消息的原理。1 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性
2012-03-16 13:01:44
5095
转载 在VS中控制excel
在VS中控制excel:以下是在VS 2005中对excel 2003操作时,要用到的一些常用操作,在其他的环境组合里,如VS 2005和excel2007,一些配置和操作会有些不同。1. 要添加引用一个COM(dll):Microsoft Excel 9.0 Object Library。2. 一些控制代码如下://创建excel对象 Excel.Application exce
2012-02-16 12:41:07
979
转载 c# ms chart 控件使用方法
第一个简单的chart: spline// Create new data series and set it's visualattributes Series series = new Series("Spline"); series.ChartType = SeriesChartType.Spline; series.BorderWidth =
2012-02-14 21:50:54
9447
转载 C#中调用C++的dll的参数为指针类型的导出函数
C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况) 严格来说这篇文章算不上C++范围的,不过还是挂了点边,还是在自己的blog中记录一下吧。 C++中使用指针是家常便饭了,也非常的好用,这也是我之所以喜欢C++的原
2011-08-12 14:07:16
1057
转载 从C#下使用WM_COPYDATA传输数据说到Marshal的应用
<br /> <br />从C#下使用WM_COPYDATA传输数据说到Marshal的应用<br /> 笔者曾在一个项目的实施过程中,需要使用WM_COPYDATA在本地机器的两个进程间传输数据。在C++中实现非常简单,但在C#中实现时却出现了麻烦。由于没有指针,使用COPYDATASTRUCT结构传递数据时,无法正确传递lpData。从网上搜寻文档,找到一个例子,是将COPYDATASTRUCT结构的lpData声明为string。这样虽然能传递字符串,但不能传递随意的二进制数据。<br
2011-06-01 16:01:00
688
转载 Modbus协议介绍
<br /> Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slav
2011-05-11 13:33:00
1015
原创 ModBus RTU协议CRC校验方式最简实现
<br /> private byte [] GetCRC( byte [] byteData)<br /> {<br /> byte[] CRC= new byte[2];<br /><br /> UInt16 wCrc =0xFFFF;<br /> for(int i=0; i< byteData.Length ; i++)<br />
2011-05-11 13:22:00
2879
1
转载 C#反射
<br />首先了解C#反射的概念,反射是一个运行库类型发现的过程。通过反射可以得到一个给定程序集所包含的所有类型的列表, <br /> 这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他 <br /> 相关信息如基类、命名空间、数据清单等。 <br /> <br /> C#反射命名空间详细介绍: <br /> <br /> 1.System.Reflection命名空间内的各类型 <br /> <br />
2011-02-28 14:27:00
451
转载 《Win32类型和.net类型的对应表》及感悟例子
《Win32类型和.net类型的对应表》Figure 2 Non-Pointer Data TypesWin32 TypesSpecificationCLR Typechar, INT8, SBYTE, CHAR†8-bit signed integerSystem.SByteshort, short int, INT16, SHORT16-bit signed integerSystem.Int16int, long, long int, INT32, LONG32, BOOL†, INT 3
2011-01-26 15:40:00
691
转载 WINCE开机自动运行指定程序
<br />WINCE开始默认是运行explorer.exe,是在shell.reg中设置的<br />[HKEY_LOCAL_MACHINE/init]<br />"Launch50"="explorer.exe"<br />"Depend50"=hex:14,00, 1e,00<br />因此只要在platform.reg或者project.reg中做类似的更改就可以实现开机自动运行指定AP的功能。<br />如:<br />[HKEY_LOCAL_MACHINE/init]<br />"L
2011-01-09 22:57:00
551
转载 使用API方式调用软键盘
不使用 System.WindowsCE.Forms命名空间 调用软键盘方法<br /> /// <summary> /// 显示/隐藏软键盘 /// </summary> /// <param name="SIP_STATUS"></param> /// <returns></returns> [DllImport("coredll", EntryPoint = "SipShowIM")]
2011-01-09 22:41:00
1160
原创 c# 快捷键
<br /><br />快捷键 功能<br />CTRL + SHIFT + B生成解决方案<br />CTRL + F7 生成编译<br />CTRL + O 打开文件<br />CTRL + SHIFT + O打开项目<br />CTRL + SHIFT + C显示类视图窗口<br />F4 显示属性窗口<br />SHIFT + F4显示项目属性窗口<br />CTRL + SHIFT + E显示资源视图<br />F12 转到定义<br />CTRL + F12转到声明<br />CTRL + AL
2011-01-06 12:06:00
455
转载 Invoke 和 BeginInvoke 的区别
Invoke 和BeginInvoke 的区别在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet 程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows 程序生生不息。
2011-01-05 14:52:00
424
转载 C#类型转换
<br /><br />C#类型转换<br /> <br />1. 装箱、拆箱还是别名<br /><br /> 许多 C#.NET 的书上都有介绍 int -> Int32 是一个装箱的过程,反之则是拆箱的过程。许多其它变量类型也是如此,如:short<-> Int16,long<-> Int64 等。对于一般的程序员来说,大可不必去了解这一过程,因为这些装箱和拆箱的动作都是可以自动完成的,不需要写代码进行干预。但是我们需要记住这些类型之间的关系,所以,我们使用“别名”来记忆它们之间的关系。<br
2011-01-05 14:45:00
1045
转载 SerialPort常用属性方法和事件
<br /><br />SerialPort常用属性方法和事件<br /> 一.概述<br /> 在Visual Studio 6.0中编写串口通讯程序,一般都使用MicrosoftCommunication<br />Control(简称MSComm)的通讯控件,只要通 过对此控件的属性和事件进行相应编程操<br />作,就可以轻松地实现串口通讯。但在Microsoft.Net技术广泛应用的今天,Visual<br />Studio.Net没有将此控件加入控件库,所以人们采用了许多方
2011-01-05 14:44:00
7807
原创 收集的类型转换
<br />字符串 ==== 字节数组<br />byte [] ucSendBuf = Encoding.Default.GetBytes(zkx);<br />string str=Encoding.Default.GetString(ucSendBuf ,index,length)<br /><br /><br />字符串 ====字符数组<br />zkx.ToCharArray()<br />chararray.tostring();<br /><br /><br />16
2011-01-05 14:40:00
490
转载 C#实现BCD码
<br />string _BcdText = Zgke.ConvertByte.BCD.GetBcdEncode(123456, Zgke.ConvertByte.BCD.BcdType.码8421);<br /><br /> ulong _Value;<br /><br /> if(Zgke.ConvertByte.BCD.GetBcdDecode(_BcdText,Zgke.ConvertByte.BCD.BcdType.码8421,out _Val
2011-01-05 14:26:00
4771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人