2022年C语言模块化程序设 .pdf
《2022年C语言模块化程序设 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言模块化程序设 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言模块化程序设计模块划分C 语言模块化程序 设计需理解如下概念:(1) 模块即是一个 .c 文件和一个 .h 文件的结合,头文件 (.h)中是对于该模块接口的声明;(2) 某模块提供给 其它 模块调用的外部函数及数据需在.h 中文件中冠以 extern 关键字声明;(3) 模块内的函数和全局变量需在.c 文件开头冠以 static 关键字声明;(4) 永远不要在 .h 文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作, 是汇编阶段的概念; 而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量。一个嵌入式系统通常包括两类模块:(1)硬件驱动模块,一种特
2、定硬件对应一个模块;(2)软件功能模块,其模块的划分应满足低偶合、高内聚的要求。多任务还是单任务所谓单任务系统 是指该系统不能支持多任务并发操作,宏观串行地执行一个任务。而多任务系统则可以宏观并行(微观上可能串行)地同时执行多个任务。多任务的并发执行通常依赖于一个多任务操作系统(OS),多任务 OS 的核心是系统调度器,它使用任务控制块(TCB)来管理任务调度功能。 TCB 包括任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。调度器在任务被激活时,要用到这些信息。此外,TCB 还被用来存放任务的 上下文 (context) 。任务的上下文就是当一个执行中的
3、任务被停止时,所要保存的所有信息。通常,上下文就是计算机当前的状态,也即各个寄存器的内容。 当发生任务切换时,当前运行的任务的上下文被存入TCB,并将要被执行的任务的上下文从它的TCB 中取出,放入各个寄存器中。究竟选择多任务还是单任务方式,依赖于软件的体系是否庞大。例如,绝大多数手机程序都是多任务的, 但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。单任务程序典型架构(1)从 CPU 复位时的指定地址 开始执行;(2)跳转至汇编代码startup 处执行;(3)跳转至用户主程序main 执行,在 main 中完成:a.初试化各硬件
4、设备;b.初始化各软件模块;c.进入死循环(无限循环),调用各模块的处理函数用户主程序和各模块的处理函数都以C 语言完成。用户主程序最后都进入了一个死循环,其首选方案是:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - while(1) 中断服务程序中断是嵌入式系统中重要的组成部分,但是在标准C 中不包含中断。许多编译开发商在标准C 上增加了对中断的支持,提供新的关键字用于标示中断服务程序 (ISR),类似于 _interrupt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言模块化程序设 2022 语言 模块化 程序
限制150内