随笔分类 -  嵌入式设计

关于系统程序员的一些感悟
摘要:不知是什么时候在网上找到一篇文章,说实话,确实不错。至于作者之类的,在网络这个神奇的地方,也无从考证了。也就贴一些写得比较好的地方吧。软件开发的困难在哪里?对于这个问题,不同的人有不同的答案,同一个人在不同职业阶段也会有不同的答案。作为一个系统程序员来说,我认为软件开发有两大难点:一是控制软件的复杂度。 软件的复杂度越来越高,而人类的智力基本保持不变,如何以有限的智力去控制无限膨胀的复杂度?我经历过几个大型项目,也分析 过不少现有的开源软件,我得出一个结论:没有单个难题和技术细节是我们无法搞定的,而所有这些问题出现在一个项目中时,其呈指数增长的复杂度往往让我们束手无策。二是隔离变化。 ... 阅读全文
posted @ 2012-09-18 15:48 竞击 阅读(229) 评论(0) 推荐(0)
强制转换的研究
摘要:/****************************************************作 者*联系方式:*说 明 :强制转换的研究-(1)***************************************************/在编写网络相关程序时,C语言精髓的体现第一精髓就是指针的使用,第二精髓就是强制转换的使用,恰当地利用指针和强制转换不但可以提供程序效率,而且使程序更加之简洁,由于强制转换在C 语言编程中占有重要的地位,下面将已五个比较典型的例子作为讲解。例子1:将带符号字节整型转换为无符号字节整型1 UINT8 a=0;2 INT8 b=-3;3 a= 阅读全文
posted @ 2012-09-18 15:19 竞击 阅读(266) 评论(0) 推荐(1)
抽象数据类型
摘要:抽象数据类型简介抽象数据类型是数据结构的一种应用形式。与普通数据类型相似,抽象数据类型由类型描述(例如取值范围)和操作集合共同定义。例如,普通的整型数据类型由整数的取值范围和整数能参与的一系列加减乘除运算共同定义:unsinged char的取值范围是0~255,其操作集合为“+、-、*、/、&、|、~……”。抽象数据类型是由一类数据结构及相关操作函数构成。例如,我们可以将存储和表达环形队列的数据缓冲以及访问指针封装成结构体类型,此时该结构体类型与相关的队列操作函数就构成了环形队列的抽象数据类型。值得一提的是,如果我们将队列初始化、释放和访问的函数以函数指针的形式存储在抽象数据类型的结 阅读全文
posted @ 2012-09-18 14:49 竞击 阅读(1201) 评论(0) 推荐(0)
嵌入式指针及相关概念
摘要:尾端 (Endianness)尾端由Danny Cohen(Cohen 1980)由一篇论文引入计算机界,作者注意到计算机体系结构基于字节寻址和整数定义在通信系统中的不同定义分为“大尾端”(Big-endian)和“小尾端”(Little-endian)两个阵营。一个十六进制整形数据0x12345678传递给另外一个采用不同尾端的计算机系统时可能会被理解为0x78563412甚至0x1E6A2C48。这就是尾端命题。尾端直接决定着数据在存储器内的组织形式。地址空间 (Address Space)存储器中,由存储单元地址或集合所构成的集合称为地址空间。线性地址空间 (Linear Address 阅读全文
posted @ 2012-09-18 14:24 竞击 阅读(765) 评论(0) 推荐(0)
嵌入式C语言的一些特点与技巧集锦
摘要:位屏蔽(Bit-mask)法位运算位屏蔽法位运算是一种使用二进制掩码配合算术逻辑运算(与运算“&”、运算“|”、非运算“~”和异或运算“^”)进行的位运算。这种方法不存在大/小端系统兼容性问题。位域(Bit-field)法位运算位域法位运算是一种使用位域配合算术逻辑运算进行位运算的方法。其使用收到存储器大/小端排列方式以及内存地址对其方式的影响,兼容性较差。标准变量类型由于C的基本变量类型并没有规定int型变量的长度,因此,在某些平台中int型变量长度为16位、某些平台是32位。为了解决C语言代码移植时int型变量宽度问题带来的不确定性,ANSI-C在C99标准中加入了一个头文件std 阅读全文
posted @ 2012-09-18 14:16 竞击 阅读(616) 评论(0) 推荐(0)