<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jjjfox的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jjjfox</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jjjfox]]></copyright><item><title><![CDATA[S3C2440中断体系介绍]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/8561935</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/8561935</guid><author>jjjfox</author><pubDate>Fri, 01 Feb 2013 09:53:48 +0800</pubDate><description><![CDATA[1、中断处理过程 
SUBSRCPND和SRCPND寄存器表明有哪些中断被触发了，正在等待处理（Pending）；SUBMASK（INTSUBMSK寄存器）和MASK（INTMSK寄存器）用于屏蔽某些中断。 
1)         Request sources（without sub-register）中的中断源被触发后，SRCPND寄存器中相应位被置1，如果此中断没有被INTMSK寄存器屏]]></description><category></category></item><item><title><![CDATA[ARM处理器异常处理]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/8560042</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/8560042</guid><author>jjjfox</author><pubDate>Thu, 31 Jan 2013 15:44:20 +0800</pubDate><description><![CDATA[1.1  ARM处理器异常处理
所谓异常就是正常的用户程序被暂时中止，处理器就进入异常模式，例如响应一个来自外设的中断，或者当前程序非法访问内存地址都会进入相应异常模式。
1.1.1  异常分类
（1）复位异常
当CPU刚上电时或按下reset重启键之后进入该异常，该异常在管理模式下处理。
（2）一般/快速中断请求
CPU和外部设备是分别独立的硬件执行单元，CPU对全部设备进行管理和资]]></description><category></category></item><item><title><![CDATA[ARM发生异常时返回时程序计数器（PC）的计算]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/8559971</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/8559971</guid><author>jjjfox</author><pubDate>Thu, 31 Jan 2013 15:37:21 +0800</pubDate><description><![CDATA[这里PC代表当前执行指令地址。
实际在ARM三级流水线中，PC始终指向当前执行指令的后2条指令，也就是说当前执行指令地址始终为PC-8。
在ADS环境中，PC显示为当前执行指令地址，实际值也是当前值+8。]]></description><category></category></item><item><title><![CDATA[TCP同步与异步,长连接与短连接]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/8212271</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/8212271</guid><author>jjjfox</author><pubDate>Thu, 22 Nov 2012 14:42:14 +0800</pubDate><description><![CDATA[首先我简单介绍一下同步TCP编程 与异步TCP编程。
在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接，在服务端可以用同步的方式来接收，也可以用异步的方式去接收。比如：
TcpListene server = newTcpListener(IPAddress.Parse("127.0.0.1"), port);
TcpClient tc =server]]></description><category></category></item><item><title><![CDATA[WinCE流式接口驱动架构]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/7916477</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/7916477</guid><author>jjjfox</author><pubDate>Tue, 28 Aug 2012 15:42:28 +0800</pubDate><description><![CDATA[WinCE流式接口驱动架构  








1、流式接口驱动程序简介
       驱动程序是对底层硬件的抽象。应用程序开发者不需要真正理解底层驱动的工作原理，他们只需要通过Windows CE提供的API函数，就可以直接与硬件进行交互。
       WinCE的流式接口驱动程序以动态链接库的形式存在，由设备管理器（通常是device.exe或者gwes.exe）统一加]]></description><category></category></item><item><title><![CDATA[C#字符串格式化说明大全]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/7376657</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/7376657</guid><author>jjjfox</author><pubDate>Wed, 21 Mar 2012 09:51:22 +0800</pubDate><description><![CDATA[1 前言

   如果你熟悉Microsoft Foundation Classes（MFC）的CString，Windows Template Library（WTL）的CString或者Standard Template Library（STL）的字符串类，那么你对String.Format方法肯定很熟悉。在C#中也经常使用这个方法来格式化字符串，比如下面这样：

int x = 16]]></description><category></category></item><item><title><![CDATA[自定义事件详细实例]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/7360568</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/7360568</guid><author>jjjfox</author><pubDate>Fri, 16 Mar 2012 13:25:05 +0800</pubDate><description><![CDATA[using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication6
{
  

  class Program
    {
        static void Main(string[] args)
        {]]></description><category></category></item><item><title><![CDATA[c#  Windows消息处理过程探究]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/7360378</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/7360378</guid><author>jjjfox</author><pubDate>Fri, 16 Mar 2012 13:01:44 +0800</pubDate><description><![CDATA[一、消息概述

    Windows下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎，我们需要理解掌握编程语言是如何封装消息的原理。


1 什么是消息(Message)


    消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性]]></description><category></category></item><item><title><![CDATA[在VS中控制excel]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/7264039</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/7264039</guid><author>jjjfox</author><pubDate>Thu, 16 Feb 2012 12:41:07 +0800</pubDate><description><![CDATA[在VS中控制excel:
以下是在VS 2005中对excel 2003操作时，要用到的一些常用操作，在其他的环境组合里，如VS 2005和excel2007，一些配置和操作会有些不同。
1. 要添加引用一个COM(dll)：Microsoft Excel 9.0 Object Library。
2. 一些控制代码如下：
//创建excel对象 Excel.Application exce]]></description><category></category></item><item><title><![CDATA[c# ms chart 控件使用方法]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/7259486</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/7259486</guid><author>jjjfox</author><pubDate>Tue, 14 Feb 2012 21:50:54 +0800</pubDate><description><![CDATA[第一个简单的chart： spline// Create new data series and set it's visualattributes
       Series series = new Series("Spline");
       series.ChartType = SeriesChartType.Spline;
       series.BorderWidth =]]></description><category></category></item><item><title><![CDATA[C#中调用C++的dll的参数为指针类型的导出函数]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6681690</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6681690</guid><author>jjjfox</author><pubDate>Fri, 12 Aug 2011 14:07:16 +0800</pubDate><description><![CDATA[C#中调用C++的dll的参数为指针类型的导出函数（包括二级指针的情况）
         严格来说这篇文章算不上C++范围的，不过还是挂了点边，还是在自己的blog中记录一下吧。

         C++中使用指针是家常便饭了，也非常的好用，这也是我之所以喜欢C++的原]]></description><category></category></item><item><title><![CDATA[从C#下使用WM_COPYDATA传输数据说到Marshal的应用]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6459506</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6459506</guid><author>jjjfox</author><pubDate>Wed, 01 Jun 2011 16:01:00 +0800</pubDate><description><![CDATA[<br /> 
<br />从C#下使用WM_COPYDATA传输数据说到Marshal的应用<br />       笔者曾在一个项目的实施过程中，需要使用WM_COPYDATA在本地机器的两个进程间传输数据。在C++中实现非常简单，但在C#中实现时却出现了麻烦。由于没有指针，使用COPYDATASTRUCT结构传递数据时，无法正确传递lpData。从网上搜寻文档，找到一个例子，是将COPYDATASTRUCT结构的lpData声明为string。这样虽然能传递字符串，但不能传递随意的二进制数据。<br]]></description><category></category></item><item><title><![CDATA[Modbus协议介绍]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6411719</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6411719</guid><author>jjjfox</author><pubDate>Wed, 11 May 2011 13:33:00 +0800</pubDate><description><![CDATA[<br />      Modbus协议包括ASCII、RTU、TCP等，并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构，而不管它们是经过何种网络进行通信
的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方
式，数据通讯采用Maser/Slave方式，Master端发出数据请求消息，Slave端接收到正确消息后就可以发送数据到Master端以响应请
求；Master端也可以直接发消息修改Slav]]></description><category></category></item><item><title><![CDATA[ModBus RTU协议CRC校验方式最简实现]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6411694</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6411694</guid><author>jjjfox</author><pubDate>Wed, 11 May 2011 13:22:00 +0800</pubDate><description><![CDATA[<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 />
          ]]></description><category></category></item><item><title><![CDATA[C#反射]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6213124</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6213124</guid><author>jjjfox</author><pubDate>Mon, 28 Feb 2011 14:27:00 +0800</pubDate><description><![CDATA[<br />首先了解C#反射的概念，反射是一个运行库类型发现的过程。通过反射可以得到一个给定程序集所包含的所有类型的列表，  <br />
 这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他  <br />
 相关信息如基类、命名空间、数据清单等。  <br />
  <br />
 C#反射命名空间详细介绍：  <br />
  <br />
 1.System.Reflection命名空间内的各类型  <br />
  <br />]]></description><category></category></item><item><title><![CDATA[《Win32类型和.net类型的对应表》及感悟例子]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6164970</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6164970</guid><author>jjjfox</author><pubDate>Wed, 26 Jan 2011 15:40:00 +0800</pubDate><description><![CDATA[
《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]]></description><category></category></item><item><title><![CDATA[WINCE开机自动运行指定程序]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6125927</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6125927</guid><author>jjjfox</author><pubDate>Sun, 09 Jan 2011 22:57:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[使用API方式调用软键盘]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6125902</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6125902</guid><author>jjjfox</author><pubDate>Sun, 09 Jan 2011 22:41:00 +0800</pubDate><description><![CDATA[
不使用 System.WindowsCE.Forms命名空间 调用软键盘方法<br />        /// <summary>
        /// 显示/隐藏软键盘
        /// </summary>
        /// <param name="SIP_STATUS"></param>
        /// <returns></returns>
        [DllImport("coredll", EntryPoint = "SipShowIM")]
   ]]></description><category></category></item><item><title><![CDATA[c# 快捷键]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6119933</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6119933</guid><author>jjjfox</author><pubDate>Thu, 06 Jan 2011 12:06:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[Invoke 和 BeginInvoke 的区别 ]]></title><link>https://blog.youkuaiyun.com/jjjfox/article/details/6117972</link><guid>https://blog.youkuaiyun.com/jjjfox/article/details/6117972</guid><author>jjjfox</author><pubDate>Wed, 05 Jan 2011 14:52:00 +0800</pubDate><description><![CDATA[Invoke 和BeginInvoke 的区别在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。一、为什么Control类提供了Invoke和BeginInvoke机制？关于这个问题的最主要的原因已经是dotnet 程序员众所周知的，我在此费点笔墨再次记录到自己的日志，以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的，有个主线程维护着一个消息泵。这个消息泵让windows 程序生生不息。                    ]]></description><category></category></item></channel></rss>