
程序相关
文章平均质量分 60
chehlcy
这个作者很懒,什么都没留下…
展开
-
一个和ARM体系结构相关的BUG
这个BUG是在之前的项目中遇到的,当时着实迷糊了几天,但一直没有时间整理,现在把它重现,并整理在这里,给其它朋友一些参考:先看下面这段测试的代码:#include #include #include #include #include #include #include typedef struct test_t{ char num1;原创 2009-07-24 18:09:00 · 709 阅读 · 0 评论 -
VC6多线程调试死机问题
<br />WINDOWS XP+VC6+VSSP6环境,多线程调试在线程中下断点时死机,决绝办法为在线程入口处添加sleep(10);原创 2010-10-13 11:14:00 · 1505 阅读 · 1 评论 -
字符编码的混乱世界 ASCII,GB2312,UNICODE,UTF
本文没有区分字符集和字符编码的概念,且不是从标准探讨的角度去认识字符编码,只是从程序员的角度去思考这个问题,资料来源要么是据说,要么是路边社,切勿全当真,信者有,不信者无哈。1.ASCII: 据说最早是由IBM制定的,当年那一帮老爷子估计压根儿没想到哪天全世界的人都会用上计算机,特别是使用差不多10W文字的中国人,所以人家当时规定只有128个字符也情有可原,鬼知道当年的笨拙的铁疙瘩现在原创 2010-04-08 11:35:00 · 937 阅读 · 0 评论 -
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 · 1012 阅读 · 0 评论 -
搞定ARM LINUX下用ntfsprogs(ntfsmount)挂载ntfs分区
折腾了几天,加了几天的班,不停的编译,不停的更换代码版本。总算搞定了。一个小小的功能,却让我把整个系统的基础翻了个底朝天。第一步:arm-linux-uclibc交叉编译工具链没有宽字符支持,无法编译ntfsprogs或者ntfs-3g.重新自己制作交叉编译工具链,花了不少于两天的时间,包括编译gcc,uclibc,linux kernel 这一步等整理过后一定做个记录,太不容易了。第二步原创 2010-04-06 20:46:00 · 5957 阅读 · 0 评论 -
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 · 7553 阅读 · 2 评论 -
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 · 2054 阅读 · 0 评论 -
LINUX下多线程和信号
说实话,信号是我讨厌的东西,在我些的代码中,我都想用最简单的办法来处理它,现在遇到多线程中信号的处理,APUE中的说法也看得不是很懂,优快云中一位朋友有如下的总结,先记在这里。 1. 默认情况下,信号将由主进程接收处理,就算信号处理函数是由子线程注册的 2. 每个线程均有自己的信号屏蔽字,可以使用sigprocmask函数来屏蔽某个线程对该信号的响应处理,仅留下需要处理该信号的线程来处理原创 2010-03-02 09:38:00 · 1070 阅读 · 0 评论 -
MSCOMM 串口控件的基本使用
因为一直在做嵌入式相关的工作,而串口在目前的嵌入式开发中依然占有非常重要的地位,想想从开始到现在,写过的串口工具也不少了,GSM模块短信发送,PTZ控制,U-BOOT出厂配置程序,以及一大堆儿的测试程序,都用MSCOMM控件实现,这个控件确实是个好东西。现给出基本使用方法,供有需要的朋友参考。1.初始化 m_comm.SetCommPort(1+mycom.m_port);//设置串口原创 2009-09-01 11:43:00 · 862 阅读 · 0 评论 -
消息机制在软件设计中的应用
消息机制是个实用的东西,不知道是何人发明,个人见识较少,最早见于WIN32编程,关键的几句代码大约是:while(GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; }这就是WIN32消息机制的最核心了,虽然当时对原创 2009-09-01 11:15:00 · 1374 阅读 · 0 评论 -
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 · 1728 阅读 · 0 评论 -
项目中的一些小经验
都是些在项目中的小感想,开个头,慢慢补充:1.千万不要假设别人提交给你的数据是合法的,不管是网络传输还是函数调用,自己的模块应该具有足够的免疫力。2.尽量减少和别的模块的耦合,当耦合不可避免时,尽量避免使用函数调用等紧密耦合方式,而应该使用消息队列,SOCKET等松耦合方式。3.当自己的模块不得不依赖于别人的实现时,在依赖发生点添加粘合层,使自己的模块除了系统调用和库函数外只依赖于自己原创 2009-08-12 09:33:00 · 805 阅读 · 0 评论 -
对assert,防错设计,除错设计的一些认识
1.assert是什么,做什么用:assert是个宏,多用于函数入口等地方检查参数有效性。2.assert的设计思想:最大化,在发现非法情况的时候,立即停止程序的执行,尽最大努力保留犯罪现场。3.assert存在的理由:除错设计的重要手段。 4.除错设计:除错设计要解决的是开发阶段的问题,是要帮助除掉程序员编码或者设计过程中的错误,如:设计错误,编码错误,各种各样的不小心,其中就包原创 2009-08-11 23:19:00 · 1208 阅读 · 0 评论 -
一个简单的makefile
之前写代码一直都是用别人的Makefile,自己写小型验证代码的时候也就直接gcc编译了事,最近总算闲了一点点,自己写一个简单的吧,以后有用得着的时候,目前只是能用,而且修改头文件后必须make clean后重新编译,有时间了再一点一点完善吧。#SRCFILE=$(wildcard *.c)SRCFILE=$(shell find ./ -name "*.c")OBJECTS=$(pats原创 2009-07-24 16:00:00 · 706 阅读 · 0 评论 -
debug用打印函数
目前公司的项目规模都不算大,但确都是多线程的程序,在调试上还是用最原始的看打印信息的方式,不知道之前有无考虑过gdbserver的方式。但是多线程的东西牵一发动全身,调试工具很多时候也会显得无能为力。在没有更好的调试方法之前,一组好用可靠的DEBUG打印函数能在很大程度上减小DEBUG的难度。最近闲一点,写了一个先贴在这里,不断去完善吧。#ifndef _CHEH_DEBUG_H#defi原创 2009-07-24 16:09:00 · 2830 阅读 · 0 评论 -
SQLITE与ACCESS性能简单测试
这段时间在做CMS(客户管理系统,不是内容管理)的访问管理功能,要求实现对服务提供设备,客户端,计费,权限认证等信息的存储统计,远程管理。要求系统发布要方便,远程管理软件要跑在WIN平台。考虑到系统规模,客户要求,最后选择了WIN+ACCESS的方案,而最近又发现一个免费的SQLITE,而且可能在以后的手持设备上用,花点时间做了如下的简单性能测试。ACCESS 插入性能测试:平台:SYS:原创 2010-01-06 13:45:00 · 8278 阅读 · 4 评论