- 博客(29)
- 资源 (6)
- 收藏
- 关注
原创 VC6多线程调试死机问题
<br />WINDOWS XP+VC6+VSSP6环境,多线程调试在线程中下断点时死机,决绝办法为在线程入口处添加sleep(10);
2010-10-13 11:14:00
1469
1
原创 宏观--微观
今天在看铃木雅臣的《晶体管放大电路设计》,在讲到OP+射击跟随器组成的功率放大器一节,有一个电路是用OP直接推动没有偏置电流的互补对管构成的射级跟随器,作者在文本中有这么一句话:虽然电路本身的效率非常高,在射级跟随器产生的开关失真因为负反馈而减少,微观得来看,电路的开关失真仍有残留。看到这里忽然有了些想法,记录在这里。 宏观的方法通常只能看到事物的结果,但不一定是事物的本质,极有可能是经过
2010-05-05 09:40:00
801
原创 字符编码的混乱世界 ASCII,GB2312,UNICODE,UTF
本文没有区分字符集和字符编码的概念,且不是从标准探讨的角度去认识字符编码,只是从程序员的角度去思考这个问题,资料来源要么是据说,要么是路边社,切勿全当真,信者有,不信者无哈。1.ASCII: 据说最早是由IBM制定的,当年那一帮老爷子估计压根儿没想到哪天全世界的人都会用上计算机,特别是使用差不多10W文字的中国人,所以人家当时规定只有128个字符也情有可原,鬼知道当年的笨拙的铁疙瘩现在
2010-04-08 11:35:00
904
原创 window下apache+php5+mysql的配置
因为后期有可能接触PHP的东西,先学学开发环境的搭建。原料:apache2.2,mysql5.0,php5操作流程:1.apache安装:相当简单,一路next即可。2.php5安装:要使用PHP网站上.zip格式的包,不用installer文件,解压ZIP后copy到c:/program files/下重命名为PHP.3.MYSQL 安装:也是一路next,步骤中根据需要做一
2010-04-07 11:43:00
987
原创 arm linux uclibc交叉编译工具链的制作
制作交叉编译工具链是件麻烦的事情,因为交叉编译ntfsprogs不得已从头做了一遍,现在把流程总结在这里,供以后参考。原料:binutils,gcc,linux kernel,uclibc我所用的版本为:binutils-2.16gcc-3.4.3linux-2.6.14uClibc-0.9.28基本流程:1.编译binutils2.编译不含库的gcc3.配
2010-04-06 21:56:00
7428
2
原创 搞定ARM LINUX下用ntfsprogs(ntfsmount)挂载ntfs分区
折腾了几天,加了几天的班,不停的编译,不停的更换代码版本。总算搞定了。一个小小的功能,却让我把整个系统的基础翻了个底朝天。第一步:arm-linux-uclibc交叉编译工具链没有宽字符支持,无法编译ntfsprogs或者ntfs-3g.重新自己制作交叉编译工具链,花了不少于两天的时间,包括编译gcc,uclibc,linux kernel 这一步等整理过后一定做个记录,太不容易了。第二步
2010-04-06 20:46:00
5882
原创 修改XP最大并发连接数的方法(非最大半开连接数)
最近写了一个EPOLL的server,正在用WINDOWS下的多线程程序做压力测试,一个进程开500个线程,连接到SERVER并发送少量数据,但在XP系统上,在开到第8个进程的时候连接成功数目总是小于500,也就是说整个系统能供用户主动打开的连接数不到4000个,在网上查找了一些资料,解决了这个问题,解决方法如下: 修改(添加)注册表,并重新启动系统: HKEY_LOCAL_MACHI
2010-03-23 09:13:00
11579
1
原创 bash again shell的启动文件
1.登录设立shell /etc/profile:shell 首先执行/etc/profile中的命令,超级用户可以为整个系统的用户建立默认配置 ~/.bash_profile,~/.bash_login,~/.profile:然后社shell执行这三个文件中找到的第一个,可以在该文件中为具体用户建立配置。 ~/.bash_logout:退出时执行 2.交互式非登录shel
2010-03-02 17:55:00
2014
原创 LINUX下多线程和信号
说实话,信号是我讨厌的东西,在我些的代码中,我都想用最简单的办法来处理它,现在遇到多线程中信号的处理,APUE中的说法也看得不是很懂,CSDN中一位朋友有如下的总结,先记在这里。 1. 默认情况下,信号将由主进程接收处理,就算信号处理函数是由子线程注册的 2. 每个线程均有自己的信号屏蔽字,可以使用sigprocmask函数来屏蔽某个线程对该信号的响应处理,仅留下需要处理该信号的线程来处理
2010-03-02 09:38:00
1041
原创 STM32 keil mdk启动代码发分析
学习STM32,看了一堆乱七八糟的文档,准备写程序了,先分析了下STM32的启动代码,看着这堆鬼鬼的汇编代码,挺吓人的,看看帮助,查查网路,还是不那么难懂。;// Stack Configuration;// Stack Size (in Bytes) ;// Stack_Size EQU 0x00000200
2010-01-09 14:03:00
17498
3
原创 SQLITE与ACCESS性能简单测试
这段时间在做CMS(客户管理系统,不是内容管理)的访问管理功能,要求实现对服务提供设备,客户端,计费,权限认证等信息的存储统计,远程管理。要求系统发布要方便,远程管理软件要跑在WIN平台。考虑到系统规模,客户要求,最后选择了WIN+ACCESS的方案,而最近又发现一个免费的SQLITE,而且可能在以后的手持设备上用,花点时间做了如下的简单性能测试。ACCESS 插入性能测试:平台:SYS:
2010-01-06 13:45:00
8221
4
原创 台式APE播放机 硬盘APE播放器 APE Player Ver0.1完成
折腾了这么久,总算做出一个能用的了,丑是丑了点,先上几张图片SHOW SHOW,也欢迎有兴趣的朋友一起交流,等完成的差不多了再把这个版本公布出来,独乐乐不如众乐乐嘛。硬件平台为EPIA-V8000,系统为WINXP裁剪版,播放器用directshow自己写,用PCM2706输出SPDIF到DAC,用S-VEDIO输出界面到TV,带遥控操作,支持FLAC,WAV,APE,MP3播放,支持CUE文
2009-12-24 23:01:00
3294
原创 MSCOMM 串口控件的基本使用
因为一直在做嵌入式相关的工作,而串口在目前的嵌入式开发中依然占有非常重要的地位,想想从开始到现在,写过的串口工具也不少了,GSM模块短信发送,PTZ控制,U-BOOT出厂配置程序,以及一大堆儿的测试程序,都用MSCOMM控件实现,这个控件确实是个好东西。现给出基本使用方法,供有需要的朋友参考。1.初始化 m_comm.SetCommPort(1+mycom.m_port);//设置串口
2009-09-01 11:43:00
838
原创 消息机制在软件设计中的应用
消息机制是个实用的东西,不知道是何人发明,个人见识较少,最早见于WIN32编程,关键的几句代码大约是:while(GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; }这就是WIN32消息机制的最核心了,虽然当时对
2009-09-01 11:15:00
1341
原创 posiX命名信号量和互斥体的性能测试
信号量和互斥体是多线程/进程中常用的同步手段,道理上说两者的使用都是越少越好,不停的得到锁和释放锁到底要耗掉多少时间。针对这个问题,特意做了个测试POSIX命名信号量:#include "stdinc.h"#include "os_sync.h"int main(){ int ret,i; sem_t *pmysem; char buff[128];
2009-08-25 15:24:00
1700
原创 51单片机写LCD1602代码
#include#include//-------------#define RW P1_0#define RS P1_1#define EN P1_2#define BUS_LCD P2#define BF P2_7//---------------------------- void init(void); void init_lcd(void);
2009-08-14 17:03:00
1937
1
原创 IO模拟I2C代码
这是N年前写的用51的IO口模拟I2C的代码,贴在这里,供有需要的朋友参考//---------------------------------------------------------#include//---------------------------------------------------------#define uchar unsigned char
2009-08-14 16:57:00
4900
3
原创 项目中的一些小经验
都是些在项目中的小感想,开个头,慢慢补充:1.千万不要假设别人提交给你的数据是合法的,不管是网络传输还是函数调用,自己的模块应该具有足够的免疫力。2.尽量减少和别的模块的耦合,当耦合不可避免时,尽量避免使用函数调用等紧密耦合方式,而应该使用消息队列,SOCKET等松耦合方式。3.当自己的模块不得不依赖于别人的实现时,在依赖发生点添加粘合层,使自己的模块除了系统调用和库函数外只依赖于自己
2009-08-12 09:33:00
781
原创 对assert,防错设计,除错设计的一些认识
1.assert是什么,做什么用:assert是个宏,多用于函数入口等地方检查参数有效性。2.assert的设计思想:最大化,在发现非法情况的时候,立即停止程序的执行,尽最大努力保留犯罪现场。3.assert存在的理由:除错设计的重要手段。 4.除错设计:除错设计要解决的是开发阶段的问题,是要帮助除掉程序员编码或者设计过程中的错误,如:设计错误,编码错误,各种各样的不小心,其中就包
2009-08-11 23:19:00
1172
原创 一个CUE文件解析类
网络上的APE文件通常附带一个CUE文件,该文件包含了此CD碟片的作者,曲目等信息,要能支持对APE文件的选曲以及必要信息的显示,必须实现CUE文件的解析。这是实现初步功能的CUE文件解析类,还有待完善。// Cue.h: interface for the CCue class./////////////////////////////////////////////////////
2009-08-11 22:48:00
2881
3
原创 NEC格式红外解码程序
好久没折腾过单片机的东西了,最近在折腾着自己DIY一个APE播放机,要用到红外控制,复习了下51的东西,用AT89C2051写了个红外解码程序,丢在这里吧,供以后参考; #ifndef _IR_H#define _IR_H#define ST_FREE 0X01#define ST_TRIGGED 0x02#define ST_CODE 0x03#defin
2009-08-11 21:57:00
4414
原创 8年后会是怎么样?
在OURAVR的一个帖子上看到了这么一些说法,对自己颇有影响,先贴在这里,时不时来看看吧。 8年开发经验还要能力很强,很有效率,很有效益。最重要8年了还有能服从管理,积极指导别人。这种人无论是生活态度和工作态度都要很好才行,性格还得比较合群那种。我周围有10年经验的,要么打算高升,要么保留经验,要么整天泡茶。很难有你说的这样情况的人。研发人员(不是工人)8年意味者什么?在国企那么已升到中级
2009-08-09 09:46:00
668
原创 一个和ARM体系结构相关的BUG
这个BUG是在之前的项目中遇到的,当时着实迷糊了几天,但一直没有时间整理,现在把它重现,并整理在这里,给其它朋友一些参考:先看下面这段测试的代码:#include #include #include #include #include #include #include typedef struct test_t{ char num1;
2009-07-24 18:09:00
677
原创 debug用打印函数
目前公司的项目规模都不算大,但确都是多线程的程序,在调试上还是用最原始的看打印信息的方式,不知道之前有无考虑过gdbserver的方式。但是多线程的东西牵一发动全身,调试工具很多时候也会显得无能为力。在没有更好的调试方法之前,一组好用可靠的DEBUG打印函数能在很大程度上减小DEBUG的难度。最近闲一点,写了一个先贴在这里,不断去完善吧。#ifndef _CHEH_DEBUG_H#defi
2009-07-24 16:09:00
2801
原创 一个简单的makefile
之前写代码一直都是用别人的Makefile,自己写小型验证代码的时候也就直接gcc编译了事,最近总算闲了一点点,自己写一个简单的吧,以后有用得着的时候,目前只是能用,而且修改头文件后必须make clean后重新编译,有时间了再一点一点完善吧。#SRCFILE=$(wildcard *.c)SRCFILE=$(shell find ./ -name "*.c")OBJECTS=$(pats
2009-07-24 16:00:00
684
原创 一次DEBUG经历
不久前在项目中遇到一个BUG,解决的过程不算复杂,但能说明一些问题。项目背景: 在项目中我负责的保全模块中(这个以后也写写),当用户开关保全以及设定条件被触发时使用音频解码通道播放一段G726格式音频。相关硬件:HI3510 ,WM8731 相关软件:音频解码播放代码,WM8731 driver 问题描述:测试人员发现有时会出现无声现象。 解决过程:1.怀疑
2009-06-20 13:57:00
953
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人