
工作笔记
t_larry
主要负责研发中心的管理工作及公司主要产品设计及研发工作。熟悉基于ISO14443标准的HF射频技术,开发第二代居民身份证阅读设备的下位机软件及指纹采集与核验软件。申请专利多项。
展开
-
调试EPSON MU110II打印头驱动程序的感想。
最近一段时间一直在调试EPSON MU110II的打印头,颇有感想。先说说EPSON的文档,EPSON的文档写的真不错。每一款产品针对不同的用户有不同方面的说明手册。就是里面的一些专业词汇好像是由日语转译成英语的,让人看着摸不着头脑。我仔细看了看他的spec手册,里面连打印头的控制程序都讲了一遍。可我按照他的方法写了一遍却怎么也达不到目的。比如说打印时出针和两个马达的时序控制吧,我就搞原创 2006-01-17 12:06:00 · 1381 阅读 · 0 评论 -
SED1335“雪花”现象的消除
0 引 言 液晶显示控制SED1335是EPSON公司为中分辨率点阵液晶显示器设计的字符和图形显示控制器,是一种专用集成电路芯片,可以和微处理器直接相连,在其内部时钟周期内,以全速接应微处理器的访问。所谓“雪花”现象是指在显示器屏刷新的过程中,屏幕上出现的闪烁不定的小亮点的过程,就好像屏幕上面下着许多雪花一样。“雪花”现象的产生是由于当SED1335完成了初始化之后便根据显示转载 2006-04-27 00:08:00 · 2175 阅读 · 0 评论 -
编程修养
什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。我认为好的程序员应该有以下几方面的素质: 1、有专研精神,勤学善问、举一反三。 2、积极向上的态度,有创造性思维。 3、与人积极交流沟通的能力,有团转载 2006-04-27 00:22:00 · 855 阅读 · 0 评论 -
教你理解复杂的C-C++声明
介绍 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的 C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地 理解任何C/C++声明的“右左法则”。需要强调一下的是,复杂的C/C++声明并不是好的编程风转载 2006-04-27 23:25:00 · 929 阅读 · 0 评论 -
Subversion 的日常使用
Subversion 是一个非常不错的版本控制系统,对我日常的开发工作帮助相当大。不过 Subversion 是命令行操作的,用起来不是很方便。所以我在客户端都是使用 TortoiseSVN 这个出色的图形界面客户端。下载地址TortoiseSVN 安装完成后,就完全集成到 Windows 资源管理中了。在文件夹中点击鼠标右键就能看到 TortoiseSVN 的菜单。从转载 2006-09-08 23:20:00 · 904 阅读 · 0 评论 -
uC/OS V2.51安装调试指南
uC/OS是一种体积小巧而实用的实时操作系统,由于其代码的开放性,近年来普遍受到人们的关注,许多人开始从事这一操作系统的学习及应用工作,但由于其文档较少,特别是关于安装和使用方面的指导性文章不够充足,使很多初学者,特别是刚刚接触嵌入式操作系统的朋友们不知道如何进行系统的安装及调试,为此我结合自己使用的切身体会,谈一谈它的安装及调试问题,希望对大家能起到一定的帮助作用。文中的开发工具及开发包如下原创 2006-04-27 23:41:00 · 2421 阅读 · 7 评论 -
模块化编程的分层设计经验
操作要点: 1、每一层直接对下一层操作,尽量避免交叉调用或越级调用 2、某些器件会把硬件驱动层合并成一个文件时,则归于较高的层 3、相同功能的外部函数尽量一致,尽量保证通用性 4、对于初次编程的模块,要严格保证中间各层的正确性 好处: 1、对于后期维护扩展,只需修改应用层和物理层,根据需要扩展功能层 2、一个新项目只需把要用到的文件加入工程,简单修改调试就出来了 3、随着模块的不断积累,新的项目将原创 2006-04-30 00:52:00 · 1476 阅读 · 2 评论 -
基于精简TCP/IP协议栈的信息家电网络服务器
通过分析和实验,研究嵌入式TCP/IP协议栈S1C33-Stack的结构及运行原理,给出以S1C33-Stack构造单芯片嵌入式网络服务器,将信息家电组网及接入Internet的实现方案。研究单芯片嵌入式网络服务器中S1C33-Stack与用户程序的接口方案,用户登录软件及信息家电监测软件的设计方法。引言S1C33209是EPSON公司推出的RISC结构的32位高性能CMOS微处理器,具有转载 2006-04-30 22:45:00 · 1867 阅读 · 0 评论 -
解读Makefile
一、Makefile 初探Linux的内核配置文件有两个,一个是隐含的.config文件,嵌入到主Makefile中;另一个是include/linux/autoconf.h,嵌入到各个c源文件中,它们由make config、make menuconfig、make xconfig这些过程创建。几乎所有的源文件都会通过linux/config.h而嵌入autoconf.h,如果按照通常方法建立文转载 2006-05-08 23:01:00 · 1372 阅读 · 0 评论 -
C/C++去空格的函数
C/C++去空格的函数经过测试不会疏漏任何一种空白字符,准确可靠----------------------------------------C---------------------------------------#include #include #include char * trim(char * ptr){ int start,end,i; if (ptr) {转载 2006-06-12 11:25:00 · 4601 阅读 · 4 评论 -
Linux程序设计入门--文件操作
Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 ---------------------------------------------------------------------------- ---- 1。文件的创建和读写 我假设你已经知道了标准级的文件操作的各个函数(fopen,fread转载 2006-08-15 23:11:00 · 715 阅读 · 0 评论 -
Linux程序设计入门--进程介绍
Linux下进程的创建 前言: 这篇文章是用来介绍在Linux下和进程相关的各个概念.我们将会学到: 进程的概念 进程的身份 进程的创建 守护进程的创建 ---------------------------------------------------------------------------- ---- 1。进程的概念 Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系转载 2006-08-15 23:12:00 · 818 阅读 · 0 评论 -
程序设计入门--时间概念
这一章我们学习Linux的时间表示和计算函数 时间的表示 时间的测量 计时器的使用 1。时间表示 在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令 的输出结果.这个时候我们可以使用下面两个函数 #i nclude time_t time(time_t *tloc); char *ctime(const time_t *clock); time函数返回从1970年1月1日0点以来转载 2006-08-15 23:16:00 · 875 阅读 · 0 评论 -
Linux程序设计入门--网络编程
Linux系统的一个主要特点是他的网络功能非常强大。随着网络的日益普及,基于网络的应用也将越来越多。 在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处于不败之地,学习Linux的网络编程,可以让我们真正的体会到网络的魅力。 想成为一位真正的hacker,必须掌握网络编程技术。现在书店里面已经有了许多关于Linux网络编程方面的书籍,网络上也有了许多关于网络编程方面的教材,大家都可以转载 2006-08-15 22:54:00 · 1030 阅读 · 0 评论 -
Linux下C开发工具介绍
Linux的发行版中包含了很多软件开发工具. 它们中的很多是用于 C 和 C++应用程序开发的. 本文介绍了在 Linux 下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程.GNU C 编译器GNU C 编译器(GCC)是一个全功能的 ANSI转载 2006-08-15 22:56:00 · 1708 阅读 · 0 评论 -
Linux程序设计入门--文件操作
Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 ---------------------------------------------------------------------------- ---- 1。文件的创建和读写 我假设你已经知道了标准级的文件操作的各个函数(fopen,fread转载 2006-08-15 23:10:00 · 738 阅读 · 0 评论 -
Linux程序设计入门--线程操作
前言:Linux下线程的创建介绍在Linux下线程的创建和基本的使用. Linux下的线程是一个非常复杂的问题,由于我对线程的学习不时很好,我在这里只是简单的介绍线程的创建和基本的使用,关于线程的高级使用(如线程的属性,线程的互斥,线程的同步等等问题)可以参考我后面给出的资料. 现在关于线程的资料在网络上可以找到许多英文资料,后面我罗列了许多链接,对线程的高级属性感兴趣的话可以参考一下. 等到我对转载 2006-08-15 23:01:00 · 749 阅读 · 0 评论 -
Linux程序设计入门--信号处理
Linux下的信号事件 前言:这一章我们讨论一下Linux下的信号处理函数. Linux下的信号处理函数: 信号的产生 信号的处理 其它信号函数 一个实例 1。信号的产生 Linux下的信号可以类比于DOS下的INT或者是Windows下的事件.在有一个信号发生时 候相信的信号就会发送给相应的进程.在Linux下的信号有以下几个. 我们使用 kill -l 命令可以得到以下的输出结果: 1) SI转载 2006-08-15 23:05:00 · 700 阅读 · 0 评论 -
wince开发经验汇总
WindowsCE下Unicode和Ansi字符间互相转换的例子纵所周知,WindowsCE下编程99%的问题都和Unicode有关.比如文件编辑,一般都保存为Ansi格式;无线通讯中控制Modem需要发送的AT指令,必须是Ansi格式;网络通讯中,PC端一般都是Ansi的,为了和PC上协议兼容,在WindowsCE中必须把要发送的一个指令从Unicode转换成Ansi格式...等等转载 2006-12-27 23:17:00 · 2664 阅读 · 0 评论 -
自动上网抓数据的机器人
自动拨号上网、自动处理中途掉线、任务完成后自动挂断,这些都是“上网机器人”的最基本的功能之一。它还能给你带来明显的经济回报:如果你让“机器人”在晚间至凌晨的上网费优惠期内拨号上网去自动冲浪,那真可称得上是典型的“一石三鸟”----你睡觉、它工作、还省钱!有关这方面的细节将在本文的第三部分里讨论。该部分提供了实现上述各功能的若干方法,并比较了这些方法各自的优劣。本文的第一和第二部分分别以两转载 2006-12-27 23:19:00 · 1782 阅读 · 0 评论 -
bcb编译lua
第一步,下载源码。虽然Lua有提供二进制版本下载,但是因为我是用Turbo C++ Explorer(即C++Builder的免费版),所以我决定还是自己编译一下源码。下载位置当然是Lua的官方网站:http://www.lua.org。第二步,编译安装。源码里只提供了GCC用的MAKE文件和VC用的一个BAT文件,BCB则需要自己动手了。开始不知道什么地方搞错,总是编译不对——虽然编译成功,原创 2007-08-17 23:24:00 · 946 阅读 · 0 评论 -
用Platform Builder为模拟器定制汉化包
WinCE5.0自带的模拟器是英文的,不支持中文,导致显示中文时为乱码。 入门程序一般为hello world,模拟器不好用,连入门都不能。所以,这是我接触WinCE开发遇到的第一个问题。 解决方法有2个:下载一个新的支持中文的模拟器;自己定制汉化包。当然方法一比较容易,但我死活没找到可以下载的地方。自己动手,丰衣足食。 牛人的话+我的实践=以下内容。原创 2007-11-07 19:20:00 · 898 阅读 · 0 评论 -
BCB5的补丁下载地址
节前重装系统后,BCB5的补丁找不到在网上找到一个,记在这里备用。 bcb5.0的升级补丁下载地址: ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/bcb5entupdate1.exe bcb5.0的ado的补丁下载地址: ftp://ftpc.borland.com/p原创 2008-02-14 10:42:00 · 1788 阅读 · 2 评论 -
支持UNICODE/UTF8/ANSI之间的转换的类
ZUtf8_16.h文件://---------------------------------------------------------------------------#ifndef ZUtf8_16H#define ZUtf8_16H//--------------------------------------------------------------------------转载 2008-03-04 21:51:00 · 652 阅读 · 0 评论 -
为WINCE5订制系统界面
为WINCE5订制系统界面以下为个人的工作笔记,为防止下次做同样的工作.如果有什么错误的地方欢迎批评.硬件显示屏为320X240横向显示,所以要在项目的 Catalog中去掉Quarter VGA Resources - Portrait Mode这个Items.所有和控制面板相关的资源都放在C:/WINCE500/PUBLIC/WCESHELLFE/OAK/CTLPNL这个目录下所有和网络相关原创 2007-12-11 12:12:00 · 817 阅读 · 0 评论 -
WINCE下开发OCX控件
在WinCe下使用ActiveX控件与Window(2k,xp)下最大的不同之处就是要编译两个版本的ocx,一个安装到window上,这样就可以在EVC环境下使用该ocx进行编程了,一个安装到wince上,用于使用这个ocx的程序调用。 在此做了个简单的ocx试了试,能够在EVC4.2/模拟器wince4.2下成功。具体步骤如下: 1. 开发CE版OCX控件。先在EVC中开发自己的OC原创 2007-12-11 14:46:00 · 1176 阅读 · 0 评论 -
这几天关于流媒体服务器方面学习的总结
这几天学习了一下流媒体服务器方面的知识,把一些常用的网址留在这里一来自己备忘,二来让那些和我一样迷茫的人少花一些时间.WMS相关Microsoft的流媒体服务器,支持wmv,wma,mpeg4,不是开源的随windows2000或windows2003自带DARWINApple的开源流媒体服务器,支持.264和mpeg4主页:http://developer.apple.com/opensourc原创 2008-01-02 17:56:00 · 3142 阅读 · 2 评论 -
怎样获取未知DLL的接口参数
首先需要知道该函数有几个参数,然后再细化参数类型。详细分析过程如下: 可以通过反汇编来知道接口函数的参数,建议使用W32DSM来分析,也可以直接使用VC来分析,就是麻烦一点。现在使用W32DSM来具体说明:1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。它可以直接定位到该函数。2。看准该函数的入口,一般函数是以以下代码作为入口点的。push ebpmo原创 2008-01-03 15:34:00 · 718 阅读 · 0 评论 -
Python网络编程例子
服务端from socket import *# Set the socket parametershost = "192.168.1.102"port = 3550buf = 1024addr = (host,port)# Create socket and bind to addressUDPSock = socket(AF_INET,SOCK_DGRAM)UDPSock.bind转载 2008-01-12 23:50:00 · 1390 阅读 · 0 评论 -
url解析c算法
int parse_url(char *url, char **serverstrp, int *portp, char **pathstrp){ char buf[256]; int serverlen, numread=0; /* go through the url */ /* reset url to point PAST the http:// */ /* assume原创 2008-01-12 23:47:00 · 1764 阅读 · 1 评论 -
objdump的使用方法
objdump有点象那个快速查看之流的工具,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。对于一般只想让自己程序跑起来的程序员,这个命令没有更多意义,对于想进一步了解系统的程序员,应该掌握这种工具,至少你可以自己写写shellcode了,或者看看人家给的exploit中的shellcode是什么东西。目录: ★ 测试练习前的准备工作 ★ R转载 2008-06-21 16:54:00 · 2270 阅读 · 0 评论 -
obj analysis2
最近由于工作需要,研究了以下gcc环境的相关工具。从wtzmax的专栏上发现了这篇 文章非常不错。前言如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面 的工具:objdump, nm, ar。当然,本文不可能非常详细的说明它们的使用方法和功能。如果你觉得本文不够清楚,你可以使用:man. 我的计划只是想让更转载 2008-06-21 16:45:00 · 517 阅读 · 0 评论 -
打印头马达控制代码
程序控制的是两个4相步进马达,马达的换相时间控制没有使用硬件定时器。 #include /*标准输入输出定义*/#include #include /*IO操作定义*/#include /*标准函数库定义*/#include /*Unix 标准函数定义*/#include #include /*文件状态查询定义*/原创 2008-06-21 17:09:00 · 934 阅读 · 0 评论 -
栽在指针的指针上
今天在项目中,测试人员告诉我有个模块输出的数据不正确。怎么可能?!我查遍了代码没发现问题,以下是代码:unsigned char TAX_QUERYSAuditRecord( unsigned char *StartTime, unsigned char *EndTime, unsigned char ucAuditType, unsigne原创 2008-10-06 19:31:00 · 618 阅读 · 0 评论 -
嵌入式资源LINK集
嵌入式资源LINK集来源 atmarkit 整理 东北藏・嵌入式Linux・ITRON系列OS・嵌入式OS/RTOS・ICE/JTAG Emulator・嵌入式开发环境/工具・嵌入式GUI环境・嵌入式Java・嵌入式数据库・半导体・各种组织 ■嵌入式LinuxFSMLabs 实时OS「RTLinux」等エフエスエムラボ・ジャパン转载 2008-11-07 13:27:00 · 1476 阅读 · 0 评论 -
iTron3学习笔记(一) System Calls of Memory Pool Management Functions
iTron3学习笔记(一) System Calls of Memory Pool Management Functions1、创建固定内存池(Create Fixed Memory Pool)说明:在RAM中的固定位置,创建一块内存池。函数声明:ER vcre_mpf(ID mpfid,VP start_addr,VP end_addr,INT blfsz)参数说明: ID mp原创 2008-11-07 17:33:00 · 870 阅读 · 0 评论 -
代码解析技术
代码解析技术By青木峰郎 translated by 东北藏 ■本文写作动机经常听到“请读一下代码”或“读代码”等诸如此类的话,却没有见过有人写出怎样能读好代码的文章。是不是既然是程序员就理所当然知道程序的阅读技巧了呢?但谁都不能否认读懂别人写的代码绝对不是件轻松的事。其实读代码不但是必要的,跟写代码一样也有技术或模式可言。那么,代码应该怎么读呢?以C语言为前提,不知不觉总结转载 2008-11-07 13:29:00 · 1020 阅读 · 0 评论 -
中断触发方式的比较
中断触发方式的比较 在前后台系统或者带有OS的系统,中断处理程序是相对比较难的,对系统的性能影响比较大。在带有OS的系统中,中断作为一个异步使剑,还可以引发任务调度。在带有OS的系统中我们经常会关闭中断,而在ISR中我们常常也需要关闭一些中断,关闭中断如果处理得不好,很可能会出现很多想不到的结果,所以处理好中断非常的 关键。 在这里对中断的转载 2008-11-27 14:40:00 · 1702 阅读 · 0 评论 -
USB驱动学习笔记 (转)
这个礼拜由于突然被安排进了一个项目,所以终止了在进行当中的USB驱动的培训。作为自己学习的总结,也希望能为有想法要往这个方向发展但暂时还没有向这个方向发展的同学们提供一些微薄的帮助。这个项目可能要写bootloader或者sd卡/camera驱动,反正到时学会了再回来写篇笔记,希望大家喜欢:)开始写这篇文章之前感觉能写得比较好,可开始写了发现写这样的一篇东西有难度啊,又想不要象规范那样累赘,有转载 2009-05-26 16:08:00 · 1135 阅读 · 0 评论 -
用Diff和Patch工具维护源码
用Diff和Patch工具维护源码(转自http://www.ibm.com/developerworks/cn/linux/l-diffp/)在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作。转载 2009-08-10 13:53:00 · 1864 阅读 · 0 评论