C语言嵌入式系统软件架构

[复制链接]
2014|20
 楼主| bboo 发表于 2017-10-31 19:11 | 显示全部楼层 |阅读模式
模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能
 楼主| bboo 发表于 2017-10-31 19:12 | 显示全部楼层
模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;
lkjoi 发表于 2017-10-31 19:13 | 显示全部楼层
某模块提供给其它模块调用的外部函数及数据需在.h中文件中冠以extern关键字声明;
lkjoi 发表于 2017-10-31 19:15 | 显示全部楼层
模块内的函数和全局变量需在.c文件开头冠以static关键字声明;
lkjoi 发表于 2017-10-31 19:16 | 显示全部楼层
永远不要在.h文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量。
lkjoi 发表于 2017-10-31 19:17 | 显示全部楼层
/*module1.h*/
int a = 5; /* 在模块1的.h文件中定义int a */
/*module1 .c*/
#include"module1.h" /* 在模块1中包含模块1的.h文件*/
/*module2 .c*/
#include"module1.h" /* 在模块2中包含模块1的.h文件*/
/*module3 .c*/
#include "module1.h" /* 在模块3中包含模块1的.h文件*/
engao 发表于 2017-10-31 19:18 | 显示全部楼层
这个架构的题目好大啊
huihui520 发表于 2017-10-31 19:27 | 显示全部楼层
/*module1.h*/
extern int a; /* 在模块1的.h文件中声明int a */
/*module1 .c*/
#include "module1.h" /* 在模块1中包含模块1的.h文件*/
int a = 5; /* 在模块1的.c文件中定义int a */
/*module2 .c*/
#include "module1.h" /* 在模块2中包含模块1的.h文件*/
/*module3 .c*/
#include "module1.h" /* 在模块3中包含模块1的.h文件*/
huihui520 发表于 2017-10-31 19:32 | 显示全部楼层
硬件驱动模块,一种特定硬件对应一个模块
huihui520 发表于 2017-10-31 19:33 | 显示全部楼层
软件功能模块,其模块的划分应满足低偶合、高内聚的要求
mdqsdaf 发表于 2017-10-31 19:34 | 显示全部楼层
所谓"单任务系统"是指该系统不能支持多任务并发操作,宏观串行地执行一个任务。而多任务系统则可以宏观并行(微观上可能串行)地"同时"执行多个任务。
mdqsdaf 发表于 2017-10-31 19:34 | 显示全部楼层
多任务的并发执行通常依赖于一个多任务操作系统(OS),多任务OS的核心是系统调度器,它使用任务控制块(TCB)来管理任务调度功能
mdqsdaf 发表于 2017-10-31 19:35 | 显示全部楼层
TCB包括任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息
关小波522 发表于 2017-10-31 21:07 | 显示全部楼层
从CPU复位时的指定地址开始执行;
波越 发表于 2017-10-31 21:08 | 显示全部楼层
传输距离有限,最大传输距离标准值为50英尺,实际上也只能  用在50米左右。
zzzhui 发表于 2017-10-31 21:17 | 显示全部楼层
从CPU复位时的指定地址开始执行
zzzhui 发表于 2017-10-31 21:17 | 显示全部楼层
跳转至汇编代码startup处执行
zzzhui 发表于 2017-10-31 21:18 | 显示全部楼层
跳转至用户主程序main执行,在main中完成:
zzzhui 发表于 2017-10-31 21:18 | 显示全部楼层
a.初试化各硬件设备;
b.初始化各软件模块;
c.进入死循环(无限循环),调用各模块的处理函数
liufan2011 发表于 2017-11-16 08:57 | 显示全部楼层
我一般的结构大概是:
硬件驱动层: 和硬件相关
硬件抽象层: 和硬件不相关
功能模块层: 特定功能模块,比如GUI,各种算法
应用层: 和应用相关
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

364

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部