
程序开发
文章平均质量分 70
myaccella
这个作者很懒,什么都没留下…
展开
-
Dbus简介
Linux下基本的通信方式有如下8种:1. 管道pipe: 进程需要共同祖先2. 命名管道named pipe, 也就是fifo: 文件系统中有对应文件名3. mapped memory:把一个共享的文件映射到自己的进程地址空间4. 消息队列:信息量大,格式灵活5. 共享内存:速度最快6. 信号量:同步手段7. socket:最灵活8. signal:比较复杂,携原创 2011-11-21 11:26:18 · 2011 阅读 · 0 评论 -
爱心编程
唉, 现在真是爱心泛滥的年代啊, 怎么连编程也跟爱心挂上钩了?呵呵, 说真的,在编程的时候不妨也付出点爱心啦,因为你的爱,可以让它们更坚强!下面,我们来看看采取点什么爱心行动:杜绝内存操作越界内存越界是程序的主要杀手之一,不管是读越界还是写越界,都是致命性的。而且,很多内存越界造成的错误是随机的,很难查!所以在编程时的时候一定要小心,对传入参数,边界值一定要严格检查。原创 2011-11-11 11:06:02 · 3604 阅读 · 0 评论 -
实时嵌入式软件开发的25个常见错误(四)
#8 第一个正确答案不是唯一的答案没有经验的程序员特别容易认为他们得到第一个正确答案是唯一的答案。开发嵌入式系统软件经常会让人感到灰心。花了数天才搞明白怎样设置寄存器以让硬件按照自己的意愿工作。在某个时候,噢!它终于能跑了。一旦跑起来了,程序员就会删去所有调试代码,然后将这些代码作为好代码合入模块中。永远不要再修改这些代码了,因为花了这么长时间调试,没有人愿意去破坏它。很不幸的是,第一次的转载 2011-11-24 11:03:29 · 1689 阅读 · 0 评论 -
QT Webkit的插件Plugin设计实现
Qt Webkit中浏览器插件Plugin设计实现是我们要介绍的内容,我们都知道浏览器中有一套由Netscape浏览器传承下来的插件接口,包括webkit,firefox都是支持的,但是那个开发起来比较困难,并且是平台相关的,借助于Qt的跨平台的特性,可以方便地为Qt开发出一套跨平台的插件。 QtWebkit中插件可以有两种,一种Mime必须是application/x-q转载 2011-11-24 18:10:13 · 7643 阅读 · 1 评论 -
实时嵌入式软件开发的25个常见错误(二)
#24 基于单一架构的归纳嵌入式软件的设计者可能需要开发能运用在不同的处理器上的软件。在此情况下,编程人员通常会先在其中的一种开发平台开始编软件,但是会在晚些时候为包装代码而做大量的准备工作。不幸的是,这样做通常弊大于利。这种设计试图过份的归纳出不同架构下的相同点,而不是不同点,但是设计者并不能预见到这些不同点。一种比较好的设计策略是在多个架构下同步设计和开发代码,归纳出那些不同架构转载 2011-11-24 10:51:33 · 1886 阅读 · 0 评论 -
Debug方法和经验
在产品开发过程中,我们每个开发人员调试程序 方法的科学性、有组织性直接影响到工作效率和进度。抓紧和利用一切时间是一方面,而得当的调试思维方式和调试方法尤其显得重要。 好的调试思路和步骤,如同抽丝剥茧,层层推进,富有实效,事半功倍;而在条理逻辑不甚清楚的调试思路下,如同没有目标的轰炸,抓不住问题的实质,可能使问题成为顽疾,久攻不下,事倍功半,身心疲惫,疲劳的开发人员伤不起啊。因此,有时碰到比原创 2011-11-10 15:22:57 · 5539 阅读 · 0 评论 -
实时嵌入式软件开发的25个常见错误(三)
#16 使用消息传送作为主要的进程间通信方式当软件按照功能模块划分进行开发的时候,首先想到的是以消息作为输入、输出。尽管这种方式在非实时环境(例如:分布式网络)应用的很好,但在实时系统应用中,却存在一些问题。在实时系统中,使用消息传输会引发三种主要的问题:1.消息传送需要同步,这是实时调度不可预知的主要原因。如果功能模块同步终止执行,将导致系统的时序分析变得困难,即便不是不可能。2转载 2011-11-24 10:58:48 · 2707 阅读 · 0 评论 -
实时嵌入式软件开发的25个常见错误(一)
英文原文由David B. Stewart撰写, 这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义。 David B. StewartSoftware Engineering for Real-Time Systems LaboratoryDepartment of Electrical and Computer Engineering and In转载 2011-11-23 11:04:56 · 2198 阅读 · 0 评论 -
C嵌入式软件的编码错误爬行榜
排名说明:该排名是针对n次走读结果的统计该排名的走读产品为C编写的嵌入式软件 第九名:编码规范类变量命名不一致运算符和表达式不易理解过度使用编码技巧减低了可读性直接使用数字常量而非宏定义书写不一致等等 第八名:接口类函数参数类型或个数不一致模块间常量或宏重复定义且不一致头文件和库不一致,不同版本 第七名:参数变量类使用未初始化变量重新原创 2011-11-24 15:01:36 · 1107 阅读 · 0 评论 -
给日志信息加色
给日志信息加色我们在调测程序的时候,往往会打印许多信息到终端,但信息多了,也会带来不便。后来在设计日志功能的时候, 往往会把日志信息分级, 通过级别控制开关来输出某个级别或者某个级别以上的信息来达到筛选日志信息的目的,但很多级别信息都需要输出的话还是不能解决信息量多, 查找敏感信息不方便的问题。考虑到Linux终端下是可以通过shell提供的功能来设置输出信息的颜色的,那我们原创 2011-11-10 15:28:39 · 854 阅读 · 0 评论 -
也来说说全局变量
在一个具有一定规模的软件中,全局变量满天飞的现象绝对不是一个好现象。我们的原则是能不用尽量不要用全局变量,为什么呢,我们就来摆一摆全局变量的优缺点。 优点:1. 地址固定,效率高2. 用起来方便以上两个优点就是单片机,ARM程序,DSP程序普遍使用全局变量的原因。写上面程序的程序员对全局变量情有独钟是不难理解的。 缺点:1. 在程序的全部执行过程中都占用存储原创 2011-11-10 15:41:18 · 1169 阅读 · 0 评论 -
说说编译时断言(静态断言)
Robert C.Seacord的《C安全编码标准》的第3章第3条规则:DcL03-C.使用静态断言测试常量表达式的值那么什么是静态断言呢?静态断言就是编译时断言,它是针对动态断言(运行时断言)而言的,静态断言的用处就是能检查出编译时的错误,避免把错误带入到运行时。那么静态断言怎么实现呢? 方法比较简单,利用C/C++的数组声明中的数组下标必须是正值这个规则就可以了。#defi原创 2011-11-14 10:53:48 · 2624 阅读 · 0 评论 -
编程经验谈
老早以前摘录的一篇文章,觉得对普通的软件开发者还是有点借鉴作用的。 原文作者:金蝶 袁红岗不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。转载 2011-11-15 10:42:48 · 670 阅读 · 0 评论 -
简单设计KISS(Keep it simple and stupid)
A perfect design is an enemy of a good design.简单设计不是最好的解决方案, 却是最适合我们的。另外,简单设计带来的简洁性,易维护性,可扩展性必定能让我们受益匪浅。记住这句至理名言吧:越简单越不容易出错。 下面的简化手法可能对你的设计有用:尽可能使用固定大小数组 简单, 高效。 动态分配节约的内存空间也不一定有用,原创 2011-11-14 10:56:13 · 2384 阅读 · 0 评论