
Programming
文章平均质量分 79
kmajian
在我的字典里没有"失败"这个词,只有暂时停止成功.
展开
-
C语言嵌入式系统编程修炼之二:软件架构篇
模块划分 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了>相对论),C语言模块化程序设计需理解如下概念: (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明; (2) 某模块转载 2006-03-13 16:27:00 · 1091 阅读 · 0 评论 -
MISRA-C :2004 规则常用要点
规则2.1 强制 汇编语言应该被封装并隔离。在需要使用汇编指令的地方建议以如下方式封装并隔离这些指令(a) 汇编函数(b) C 函数(c) 宏出于效率的考虑有时必须要嵌入一些简单的汇编指令如开关中断如果不管出于什么原因需要这样做那么最好使用宏来完成#define NOP asm (“ NOP”);规则2.2 强制 源代码应该使用 /*…*/ 类型的注释 。规则2.4 建议 代码段不应被注释掉(co转载 2006-12-05 09:54:00 · 4723 阅读 · 0 评论 -
用 Eclipse 平台进行 C/C++ 开发
用 Eclipse 平台进行 C/C++ 开发如何使用 C/C++ 开发工具箱(CDT)C 和 C++ 语言都是世界上最流行且使用最普遍的编程语言,因此 Eclipse 平台(Eclipse Platform)提供对 C/C++ 开发的支持一点都不足为奇。因为 Eclipse 平台只是用于开发者工具的一个框架,它不直接支持 C/C++;它使用外部插件来提供支持。本文将向您演示如何使用 CD转载 2006-06-27 10:35:00 · 1252 阅读 · 0 评论 -
可对任意类型数据进行编码的Base64编解码源码
// 测试平台: 在Win2K下的Cygwin gcc编译通过,测试没有发现问题(如果你发现了还请告诉我,谢谢!)// 调用的库: strlen() ( 其实可以自己写一个类似的功能函数来取长度的 )/************************************************************************************************原创 2006-06-23 12:51:00 · 2958 阅读 · 0 评论 -
匈牙利命名规范
匈牙利命名规范 几年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀为基础的命名方法,这种方法后来称为"匈牙利表示法"以记念他.他的思想是根据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标识符一个前缀以说明它的数据类型.因此,整型变量的前缀是n,长整型变量是nl,字符型数组变量是ca,以及字符串(以空类型结尾的字符数组)以sz为前缀.这些转载 2006-02-28 09:54:00 · 2002 阅读 · 0 评论 -
CRC算法原理及C语言实现
CRC算法原理及C语言实现 摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控制器硬件环境的C语言程序。读者更能根据本算法原理,用不同的语言编写出独特风格更加实用的CRC计算程序。关键词 CRC 算法 C语言1 引言 循环冗余码CRC检验技术广泛应用于测控及通信领域。CRC计算可以靠专用的硬件来实现,但是对于低成本的微控制器系统,在没有硬件支持转载 2006-02-24 14:18:00 · 6586 阅读 · 1 评论 -
奇妙的Base64编码
Base64就是在这种背景下产生的加密方法。它的特点是:1、速度非常快。2、能够将字符串A转换成字符串B,而且如果你光看字符串B,是绝对猜不出字符串A的内容来的。不信吗?让我们来看看下面这串东西: xOO6w6Osu7bTrbniwdnAz8LetcTnzbfXzOy12KOh 呵呵,是什么啊?猜出来了吗?其实它就是下面这段文字经过Base64编码产生的东东: 你好,欢迎光临老罗的缤纷转载 2006-02-23 14:28:00 · 1475 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之五:键盘操作
处理功能键 功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1: 图1 主画面 当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:转载 2006-03-13 17:17:00 · 1019 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之四:屏幕操作
汉字处理 现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。 如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分简单的:汉字库是按照转载 2006-03-13 17:15:00 · 1167 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之三:内存操作
数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况: (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址; (2) 两个CPU之间以双端转载 2006-03-13 17:04:00 · 1187 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之一:背景篇
不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的精妙,沉醉于C语言给嵌入式开发带来的便利。 图1给转载 2006-03-13 16:11:00 · 1089 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之六:性能优化
使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个: 错误做法: #define MIN(A,B) ( A 正确做法:转载 2006-03-13 17:18:00 · 1045 阅读 · 0 评论 -
如何编写代码才能使得效率高
一、排版: 1.关键词和操作符之间加适当的空格。 2.相对独立的程序块与块之间加空行 3.较长的语句、表达式等要分成多行书写。 4.划分出的新行要进行适应的缩进,使排版整齐,语句可读。 5.长表达式要在低优先级操作符处划分新行,操作符放在新行之首。 6.循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。 7.若函数或过程中的参数较长,则要进行适当的划分。转载 2007-08-13 09:59:00 · 967 阅读 · 0 评论