2005年6月18日

摘要: 什么是软件系统的架构(Architecture)?一般而言,架构有两个要素: ·它是一个软件系统从整体到部分的最高层次的划分。 一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。 详细地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(Task-flow)。所谓架构元素,也就是... 阅读全文
posted @ 2005-06-18 16:41 safeking 阅读(330) 评论(0) 推荐(0) 编辑
 
摘要: 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的精妙,沉醉于C语言给嵌入式开发带来的便利。 图1给... 阅读全文
posted @ 2005-06-18 14:45 safeking 阅读(400) 评论(0) 推荐(0) 编辑
 
摘要: 硬件驱动模块 一个硬件驱动模块通常应包括如下函数: (1)中断服务程序ISR (2)硬件初始化 a.修改寄存器,设置硬件参数(如UART应设置其波特率,AD/DA设备应设置其采样速率等); b.将中断服务程序入口地址写入中断向量表: /* 设置中断向量表 */m_myPtr = make_far_pointer(0l); /* 返回void far型指针void far * */ ... 阅读全文
posted @ 2005-06-18 14:27 safeking 阅读(566) 评论(0) 推荐(0) 编辑
 
摘要: 单任务程序典型架构 (1)从CPU复位时的指定地址开始执行; (2)跳转至汇编代码startup处执行; (3)跳转至用户主程序main执行,在main中完成: a.初试化各硬件设备; b.初始化各软件模块; c.进入死循环(无限循环),调用各模块的处理函数 用户主程序和各模块的处理函数都以C语言完成。用户主程序最后都进入了一个死循环,其首选方案是: while(1){} ... 阅读全文
posted @ 2005-06-18 14:22 safeking 阅读(430) 评论(0) 推荐(0) 编辑
 
摘要: 模块划分 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念: (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明; (2) 某模块提... 阅读全文
posted @ 2005-06-18 14:15 safeking 阅读(613) 评论(0) 推荐(0) 编辑