- 博客(42)
- 资源 (1)
- 收藏
- 关注
转载 Huawei E180 3G模块驱动应用
(2011-12-12 15:48:30)转载▼标签:杂谈分类: 嵌入式技术一、环境3G modem:Huawei E180(WCDMA)3G SIM Card:China Unicom 3G Card(WO)CPU/BoardFSL P1
2014-07-31 09:22:03 1484
转载 基于OPC规范的客户应用程序实现
1 OPC的基本结构OPC由两套接口组成:OPC定制接口和OPC自动化接口,如图1所示。OPC服务器必须实现定制接口,可选择实现自动化接口。这两套标准接口的制定极大地方便了服务器和用不同语言开发的客户应用之间的通信,使用户对开发工具的选择有了较大的自由。 OPC接口可以潜在地应用在许多应用程序中。它们可以用于从最低层设备中读取未加工的数据,再转化至SCADA或者DCS系
2014-07-15 15:16:40 1735
转载 COM 接口 Interface
CComObjectRootExCStockPropImplCComControlIPersistStreamInitImplIOleControlImplIOleObjectImplIOleInPlaceActiveObjectImplIViewObjectExImplIOleInPlaceObjectWindowlessImpl IRunningObje
2014-07-14 16:04:21 2998
转载 OPC客户端开发过程整理
2013-09-02 17:01:44| 分类:window其它 | 标签:opc客户端 opc开发 |举报|字号 订阅OPC开发过程:1.注册OPC接口组件2.通过COM接口创建OPCServerList的接口指针CoCreateInstance只能遍历本机,CoCreateInstanceEx可遍历远程机器OPCCLSID_OPC
2014-06-26 11:38:23 23443 2
转载 Linux环境中以daemon方式运行的程序生成core dump
1 精要 在/etc/profile中添加: ulimit -c unlimited > /dev/null 2?&1 修改/proc/sys/kernel/core_pattern文件中的 core dump 文件格式为绝对路径,比如: /data/coredump/core-%e-%p-%t 注意/proc/sys/ker
2014-06-06 17:07:00 962
转载 如何让所有的后台程序(daemons)都可以产生core dumps文件?
Core dumps 默认是关闭的。强烈推荐您不要在生产机器上打开此功能。最好是在 开发的机器或者测试的机器上打开此功能。 为所有的后台程序打开core dumps功能,执行下面的步骤: 1. Edit the /etc/profile: vi /etc/profile 2. 替换第26行: ulimit -S -c 0 > /dev/null 2>&1
2014-06-06 15:00:39 970
转载 linux 下如何打开core dump文件开关
dump文件可以在程序crash时,方便我们查看程序crash的地方和上下文信息。在window下,要能生成dump文件,需要自己编写相应的代码。不过现在网上可以找到相应的代码,只要把它下载后然后加到自己的工程中去,就可以了! 在linux下面就简单的许多。只要打开相应的开关,linux会自动在程序crash时生成相应的core文件。这个文件和window下的dump文件类似。 下面是
2014-06-06 14:00:07 832
转载 在套接口上使用标准I/O
在套接口上使用标准I/O在前面章节的例子代码中我 们已经使用了read(2)或是write(2)系统调用在套接口上执行读取和写入操作。这个规则的一个例外就是recvfrom(2)和sendto (2)函数,这两个函数用来读写数据报。然而,使用read和writte函数调用却有一些程序上的缺点。这一章我们将会讨论以下内容:如何使用fdopen(3)将一个套接口与一个FILE流相关
2014-05-29 15:48:24 1501
转载 线程取消(pthread_cancel)
基本概念pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint)。取消点是线程检查是否被取消并按照请求进行动作的一个位置.与线程取消相关的pthread函数int pthread_cancel(pthread_t thread)发送终止信号给thr
2014-03-10 15:59:43 703
转载 C,C++宏中#与##的讲解
文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x)#x之后,下面二条语句就等价。 char *pChar = "he
2014-03-06 16:42:06 603
转载 Linux信号列表 2009-03-04 16:59:43
我们运行如下命令,可看到Linux支持的信号列表:~$ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM 15)
2014-03-06 16:22:07 565
转载 UNIX线程编程知识(2)
UNIX线程编程知识时间:2009-07-09 13:59来源: 作者:点击:391次介绍UNIX线程编程知识。1.单线程复制模型概念POSIX线程接口的fork()是单线程复制模型,即函数创建一个新的进程,复制父进程的地址空间,但在子进程中只复制父进程中调用复制fork()函数的线程。当需要在子进程中立即调用exec()函数时,使用这种模型就不需要复制所有的线程,
2014-03-06 16:19:31 852
转载 自动调整linux系统时间和时区与Internet时间同步 2011-11-08 09:07:04
分类: LINUX调整linux系统时间和时区与Internet时间同步 一、修改时区:# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改为中国的东八区# vi /etc/sysconfig/clockZONE="Asia/Shanghai"UTC=falseARC=false二、配置新的时间
2014-02-26 15:52:22 647
转载 linux setsockopt函数的用法
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历
2014-02-18 15:59:48 6760
转载 Linux下Socket连接超时的一种实现方法
发布时间:2007.06.06 06:07 来源:赛迪网 作者:skid目前各平台通用的设置套接字(Socket)连接超时的办法是:创建套接字,将其设置成非阻塞状态。 调用connect连接对端主机,如果失败,判断当时的errno是否为EINPROGRESS,也就是说是不是连接正在进行中,如果是,转到步骤3,如果不是,返回错误。用select在指定
2014-02-18 14:35:39 1142
转载 STL容器里存放对象还是指针(转)
摘自:http://hsw625728.blog.163.com/blog/static/3957072820091116115732821/一.问题的引出:容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题。就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程:1. 首先说下stl容器的工作方式 对于内建类型(int float char等),
2014-01-17 11:24:02 1599
原创 ubantu 12.10LTS 编译cppunit遇到的问题
1. ./configure 的时候没有生成makefile文件,提示sed认不到#1什么的。原因是父目录中含有一个&字符。重命名完全由英文字符组成的名字后,问题不再出现2. 第一个问题解决了,但是make的时候提示../../src/cppunit/.libs/libcppunit.so: undefined reference to `dlsym'../../src/cppun
2014-01-14 09:53:01 799
转载 gcc常用命令
1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C
2013-11-03 14:20:11 611
转载 初用CAsyncSocket遇到的问题[总结]
分类:网络编程2007-03-29 08:58 阅读(968)评论(0)一直以来都不知道mfc关于网络通信的封装类有哪些~只看到过WinInet和CSocket,前者功能太弱,而后者刚开始一直以为跟socket一样,然后断断续续啃了半年tcp/ip协议第三卷[实现],看了大堆的socket编程资料和程序,直到去用的时候才发现真的有点繁琐。而没看异步IO的时候,程序都是靠多线程的.w
2013-08-12 17:16:04 5278
转载 [VC技术内幕V5翻译]第22章动态链接库(第一节)
作者:finalday2005-04-20 11:11分类:默认分类标签:如果你想要编写模块化的软件,你就会对动态链接库感兴趣。你可能认为自己一直在编写模块化的软件——因为C++的类就是模块化的。但是,类是编译时模块,而 DLL是运行时模块。你在制作巨大的EXE程序时,每修改一次就必须重新编译并测试,但现在你可以编译更小一些的DLL模块,并独立地测试它们。比如,你可以将一个C++类
2013-07-19 10:02:08 817
转载 (转)MFC程序逆向 – 消息篇(上)
2009-03-13 11:10:35| 分类:vc |字号 订阅作 者: szdbg时 间: 2007-10-31,06:26链 接: http://bbs.pediy.com/showthread.php?t=54150前言:记得前一段时间,我刚接触软件破解和逆向这一行时,对于一些软件不知从何处跟踪按钮消息,试了好多方法,就是断不下来,
2013-07-18 17:17:30 699
转载 如何去掉菜单栏
概要对于大多数基于 Windows 的应用程序,菜单栏是用户界面的一部分。菜单栏提供了摘要功能,使用该程序的人员。但是,不是必需的每个基于 Windows 的应用程序必须包含菜单栏。本文介绍如何创建的 MFC 应用程序并没有菜单栏。对于基于 Windows 的应用程序由应用程序向导生成的 IDR_MAINFRAME 菜单资源是 SDI 和 MDI 应用程序的标准菜单资源。它是 SD
2013-05-25 19:30:36 1264
转载 C++二维数组&指针
//------------------------------------------不同形式的数组指针的区别 ---------------------------------C++中的指针和数据很让人头晕,尤其是二维的情形。1、int** ptr;//声明指向“一群”指向整数指针的指针。可以理解成ptr[N][N]。(N表示若干,以下同)2、int* ptr[5];//声明5个指
2013-05-02 09:51:54 856
转载 C++ 模板特例化
和函数一样,C++中的class也可以类型参数化,其中容器类是极具这一特征的。对于模板类的基本定义和使用,可以参考STL,这里就不做过多的赘述了。下面将主要介绍一下与其相关的高级实用特征。一、模板的特化: 这里可以先将类模板特化与面向对象中的多态进行一个简单的比较,这样可以便于我们对它的理解,也同样有助于指导我们在实际的开发中应用这一C++技巧。众所周知,对于多态而言,提供的
2013-04-24 12:59:11 2636 1
转载 sscanf,sscanf_s及其相关用法
#include 定义函数 int sscanf (const char *str,const char * format,........);函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表
2013-01-24 22:59:07 1464
转载 SetWindowsHookEx()详解
SetWindowsHookEx详解2010-06-17 18:21函数功能:该函数将一个应用程序定义的挂钩处理过程安装到挂钩链中去,您可以通过安装挂钩处理过程来对系统的某些类型事件进行监控,这些事件与某个特定的线程或系统中的所有事件相关.函数原形:HHOOK SetWindowsHookEx( int idHook, HOOKPROC lpfn,HINSTANCEhM
2012-11-30 13:24:01 20880
转载 理解文档/视图框架
了解文档和视图的相互作用关系是编写MFC程序的基本功。但是MFC的应用程序框架把文档和视图之间的关系封装了起来,初学的朋友往往不得要领,因此写程序往往被局限于在用向导生成的框架中。本文希望能够尽可能说明白文档视图框架之间是如何进行作用,希望能给一些朋友带来小小的帮助。 几个概念: (虽然大家都知道了,还是要重申一次) 文档对象:是用来保存数据的。 视图对象:是用来显示和编辑数据
2012-11-13 17:04:10 950
转载 用QueryPerformanceCounter实现Windows XP 下微秒级延时
windows的Sleep函数,睡眠线程指定毫秒数,可以用来做毫秒延时。对于微秒延时,没有一个现成的函数,但是可以通过QueryPerformanceFrequencyQueryPerformanceCounter来间接实现。原理就是用循环查询的方式不断调用QueryPerformanceCounter(在Winbase.h中)LARGE_INTEGER freq;LARG
2012-11-09 10:46:45 1709
原创 C++ 模板为什么不能分离编译
这两天写了一个循环队列的模板类,构建代码的时候总是报错bin/main.o(.text+0x182):main.cpp: undefined reference to `CCommDataBuf::CCommDataBuf(unsigned long)'bin/main.o(.text+0x1a6):main.cpp: undefined reference to `CCommDataBu
2012-11-08 22:29:06 1821
转载 CRITICAL_SECTION详解
很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTION是不能够“锁定”资源的,它能够完成的功能,是同步不同线程的代码段。简单说,当一个线程执行了EnterCritialSection之后,cs里面的信息便被修改了,以指明哪一个线程占用了它。而此时,并没有任何资源被“锁定”。不管什么资源,其它线程都还是可以访问
2012-11-08 16:47:55 2691 1
转载 互斥和二进制信号量的使用
1. 二进制信号量semBCreate (SEM_Q_FIFO/SEM_Q_PRIORITY , SEM_EMPTY/SEM_FULL)有两个作用:(1)任务间的互斥 -- 同一个任务获取和释放信号量,防止两个任务同时存取一个资源(2)任务间的同步 -- 一个任务获取信号量,另一个任务(或者中断)释放信号量2. 互斥信号量semMCreate(SEM_Q_PRIOR
2012-10-31 18:33:49 6831
原创 第一个linux模块编程纪实——两个疑问
代码本身非常简单,就是万能例子hello world#include #include int hello_init(void){ printk("hello world!"); return 0;}void hello_exit(void){ printk("Goodbye!");}module
2012-10-17 18:20:01 952
转载 I2S总线
引言I2S(InterIC Sound Bus)是飞利浦公司针对数字音频设备之间的音频数据传输而制定的一种总线标准,采用沿独立的导线传输时钟与数据信号的设计,通过分离数据和时钟信号,避免了时差诱发的失真。I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系统设计中,并不是所有的MCU都支持I2S总线格式,再加上I2S还没有统一的接口标准,不同的厂
2012-10-16 12:48:31 25200 3
转载 LINUX交叉编译
嵌入式系统的定义应当是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。比如现在ATM取款机就是一个典型RTOS,embedded os主要包括两部分,一部分是处理器,比如ARM、POWERPC、MIPC,一部分是OS,比如linux,wince,vxworks,us/os,etc。我现在主要学习的路线是arm+linux,
2012-10-13 19:26:10 840
转载 Linux下GCC 编译时如何指定链接库
-l参数和-L参数-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上l
2012-10-13 12:20:15 8348
转载 S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)
S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)S3C2440内部集成了一个Nand flash控制器。S3C2440的Nand flash控制器包含了如下的特性:l 一个引导启动单元l Nand Flash存储器接口,支持8位或16位的每页大小为256字,512字节,1K字和2K字节的Nand flashl
2012-10-12 17:56:14 1200
转载 S3C2440从 NAND FLASH 启动原理
不同与NOR FLASH,NAND FLASH对外接口中的数据与地址线是分时复用的,这也就造成了NAND FLASH本身对外没有专门的地址线可以直接连接到CPU的引脚上,NAND FLASH 与CPU的交互要通过一个中介来完成,那就是NAND FLASH 控制器,在S3C2440芯片中就集成有这样一个控制器。 由于NAND FLASH不能与CPU直连,而CPU在加电后会去0x0处
2012-10-12 17:29:14 862
原创 关于指针
<br />int a[5]={1,2,3,4,5};<br />int *ptr1=(@a+1);// 取数组a的地址,加1表示加一个a的长度,<br /> // 即如果数组a的地址为0,那么ptr1的值为0+1*(5*4)=20<br />int *ptr2=a+1; // 取数组a第一个元素的地址,加1表示一个一个数组元素的长度,<br /> // 即如果数组第一个元素a[0]的地址为0,那么ptr1的
2010-09-26 13:52:00 358
原创 vim 使用简介
<br />vim 命令<br />i:进入插入模式<br />esc:进入命令模式<br />:w [filename] 将内容写入文件中<br />hjkl 功能等同方向键<br />o:在当前行的后面插入新一行<br />O:在当前行的前面插入新一行<br />a:在当前光标位置后面插入一个字符<br />A:在当前光标所在行末插入一个字符<br />$:光标移动到行末<br />^:光标移动到行首<br />G:最后一行<br />crl+f/ctr+
2010-09-26 12:44:00 375
转载 Linux Find 命令精通指南
<br />作者:Sheryl Calish<br />简单介绍这一无处不在的命令的强大的方面以及混乱的方面。 <br />2008 年 7 月发布<br />Linux find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用 find 命令,您不但可以找到具这些属性任意组合的文件,还可以对它找到的文件执行操作。<br />本文的目的是,通
2010-09-21 16:49:00 354
TCP/IP详解(卷一)
2009-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人