文本内容:
C语言模块化程序设计模块划分C语言模块化程序设计需理解如下概念
(1)模块即是一个.c文件和一个.h文件的结合,头文件.h中是对于该模块接口的声明;
(2)某模块提供给其它模块调用的外部函数及数据需在.h中文件中冠以extern关键字声明;
(3)模块内的函数和全局变量需在.c文件开头冠以static关键字声明;
(4)永远不要在.h文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量一个嵌入式系统通常包括两类模块
(1)硬件驱动模块,一种特定硬件对应一个模块;
(2)软件功能模块,其模块的划分应满足低偶合、高内聚的要求多任务还是单任务 所谓单任务系统是指该系统不能支持多任务并发操作,宏观串行地执行一个任务而多任务系统则可以宏观并行(微观上可能串行)地同时执行多个任务 多任务的并发执行通常依赖于一个多任务操作系统(OS),多任务OS的核心是系统调度器,它使用任务控制块(TCB)来管理任务调度功能TCB包括任务的当前状态、优先级、要等待的__或资源、任务程序码的起始地址、初始堆栈指针等信息调度器在任务被激活时,要用到这些信息此外,TCB还被用来存放任务的上下文(context任务的上下文就是当一个执行中的任务被停止时,所要保存的所有信息通常,上下文就是计算机当前的状态,也即各个寄存器的内容当发生任务切换时,当前运行的任务的上下文被存入TCB,并将要被执行的任务的上下文从它的TCB中取出,放入各个寄存器中究竟选择多任务还是单任务方式,依赖于软件的体系是否庞大例如,绝大多数手机程序都是多任务的,但也有一些___的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境单任务程序典型架构
(1)从CPU复位时的指定地址开始执行;
(2)跳转至汇编代码startup处执行;
(3)跳转至用户主程序__in执行,在__in中完成C语言模块化程序设计模块划分C语言模块化程序设计需理解如下概念
(1)模块即是一个.c文件和一个.h文件的结合,头文件.h中是对于该模块接口的声明;
(2)某模块提供给其它模块调用的外部函数及数据需在.h中文件中冠以extern关键字声明;
(3)模块内的函数和全局变量需在.c文件开头冠以static关键字声明;
(4)永远不要在.h文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量一个嵌入式系统通常包括两类模块
(1)硬件驱动模块,一种特定硬件对应一个模块;
(2)软件功能模块,其模块的划分应满足低偶合、高内聚的要求多任务还是单任务 所谓单任务系统是指该系统不能支持多任务并发操作,宏观串行地执行一个任务而多任务系统则可以宏观并行(微观上可能串行)地同时执行多个任务 多任务的并发执行通常依赖于一个多任务操作系统(OS),多任务OS的核心是系统调度器,它使用任务控制块(TCB)来管理任务调度功能TCB包括任务的当前状态、优先级、要等待的__或资源、任务程序码的起始地址、初始堆栈指针等信息调度器在任务被激活时,要用到这些信息此外,TCB还被用来存放任务的上下文(context任务的上下文就是当一个执行中的任务被停止时,所要保存的所有信息通常,上下文就是计算机当前的状态,也即各个寄存器的内容当发生任务切换时,当前运行的任务的上下文被存入TCB,并将要被执行的任务的上下文从它的TCB中取出,放入各个寄存器中究竟选择多任务还是单任务方式,依赖于软件的体系是否庞大例如,绝大多数手机程序都是多任务的,但也有一些___的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境单任务程序典型架构
(1)从CPU复位时的指定地址开始执行;
(2)跳转至汇编代码startup处执行;
(3)跳转至用户主程序__in执行,在__in中完成详细出处参考。