月归档:2006 年十二月

C 语言复习与提高—I. C 语言概述
HOT

目录 I. C 语言概述II. 表达式III. 语句IV. 数组与指针V. 函数VI. 编译预处理VII. 结构体与共用体VIII. 文件附录:参考文献附录:推荐读物 I. C 语言概述一、C 语言概述:C 被称为“中级语言”,它把高级语言的最佳成分与汇编语言的控制和灵活性结合起来。C 允许对位、字节、字和地址等计算机功能中的基本成分直接操作。尽管如此,C 程序的移植性还是非常出色的。所...
阅读全文

C语言嵌入式系统编程修炼之软件架构(三)篇
HOT

硬件驱动模块  一个硬件驱动模块通常应包括如下函数:  (1)中断服务程序ISR  (2)硬件初始化  a.修改寄存器,设置硬件参数(如UART应设置其波特率,AD/DA设备应设置其采样速率等);  b.将中断服务程序入口地址写入中断向量表:/* 设置中断向量表 */m_myPtr = make_far_pointer(0l); /* 返回void far型指针void far * */ m_my...
阅读全文

C语言嵌入式系统编程修炼之软件架构(二)篇
HOT

单任务程序典型架构  (1)从CPU复位时的指定地址开始执行;  (2)跳转至汇编代码startup处执行;  (3)跳转至用户主程序main执行,在main中完成:  a.初试化各硬件设备;   b.初始化各软件模块;  c.进入死循环(无限循环),调用各模块的处理函数  用户主程序和各模块的处理函数都以C语言完成。用户主程序最后都进入了一个死循环,其首选方案是:while(1){}  有的程序...
阅读全文

C语言嵌入式系统编程修炼之软件架构(一)篇
HOT

模块划分  模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:  (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;  (2) 某模块提...
阅读全文

C语言嵌入式系统编程修炼之键盘操作(二)
HOT

处理数字键  用户输入数字时是一位一位输入的,每一位的输入都对应着屏幕上的一个显示位置(x坐标,y坐标)。此外,程序还需要记录该位置输入的值,所以有效组织用户数字输入的最佳方式是定义一个结构体,将坐标和数值捆绑在一起:/* 用户数字输入结构体 */typedef struct tagInputNum{ BYTE byNum; /* 接收用户输入赋值 */ BYTE xPos; /* 数字输入在屏幕...
阅读全文

C语言嵌入式系统编程修炼之键盘操作(一)
HOT

处理功能键  功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1:图1 主画面  当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:图2 切换到设置XX画面  程序如何判断用户处于哪一画面,并在该画面的程序状态下调用对应的功能键处理函数,而且保证良好的结构,是一个值得思考的问题。  让我们来看看WIN32编程中用到...
阅读全文

C语言嵌入式系统编程修炼之屏幕操作(三)
HOT

模拟MessageBox函数  MessageBox函数,这个Windows编程中的超级猛料,不知道是多少入门者第一次用到的函数。还记得我们第一次在Windows中利用MessageBox输出 "Hello,World!"对话框时新奇的感觉吗?无法统计,这个世界上究竟有多少程序员学习Windows编程是从MessageBox("Hello,World!",…)开始的。在我本科的学校,广泛流传着一个...
阅读全文

C语言嵌入式系统编程修炼之屏幕操作(二)
HOT

动画显示  动画是无所谓有,无所谓无的,静止的画面走的路多了,也就成了动画。随着时间的变更,在屏幕上显示不同的静止画面,即是动画之本质。所以,在一个嵌入式系统的LCD上欲显示动画,必须借助定时器。没有硬件或软件定时器的世界是无法想像的:  (1) 没有定时器,一个操作系统将无法进行时间片的轮转,于是无法进行多任务的调度,于是便不再成其为一个多任务操作系统;  (2) 没有定时器,一个多媒体播放软件...
阅读全文

C语言嵌入式系统编程修炼之屏幕操作(一)
HOT

汉字处理  现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。  如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分简单的:汉字库是按照...
阅读全文

C语言嵌入式系统编程修炼之内存操作(二)
HOT

关键字const  const意味着"只读"。区别如下代码的功能非常重要,也是老生长叹,如果你还不知道它们的区别,而且已经在程序界摸爬滚打多年,那只能说这是一个悲哀:const int a;int const a;const int *a;int * const a;int const * a const;  (1) 关键字const的作用是为给读你代码的人传达非常有用的信息。例如,在函数的形参前...
阅读全文

C语言嵌入式系统编程修炼之内存操作(一)
HOT

数据指针  在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况:  (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址;  (2) 两个CPU之间以双端...
阅读全文

什么是C语言程序设计?
HOT

(一)“项目驱动”式教学 目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。 c语言程序设计是过程性程序...
阅读全文
7 页 / 共 7