嵌入式C语言软件结构设计与多任务系统

0 下载量 136 浏览量 更新于2024-08-28 收藏 123KB PDF 举报
软件结构很重要!嵌入式C语言修炼之道 本文探讨了软件结构的重要性,特别是在嵌入式系统中C语言的模块化程序设计。文章从模块划分开始,讨论了C语言在模块化程序设计中的应用,包括模块的定义、头文件和实现文件的关系、extern关键字的使用、static关键字的使用等概念。然后,文章探讨了嵌入式系统中的多任务系统,讨论了多任务操作系统的核心组件、任务控制块的作用、任务上下文的保存和恢复等问题。 知识点: 1. 模块划分的重要性:模块划分是软件结构的基础,它将一个大的软件系统划分为多个功能独立的部分,以便更好地管理和维护系统。 2. 模块的定义:一个模块是一个.c文件和一个.h文件的结合,头文件中是对该模块接口的声明。 3. 头文件和实现文件的关系:头文件中声明了模块的接口,而实现文件中实现了模块的功能。 4. extern关键字的使用:extern关键字用于声明某模块提供给其他模块调用的外部函数及数据。 5. static关键字的使用:static关键字用于声明模块内的函数和全局变量,使它们只能在模块内部使用。 6. 变量的定义和声明:定义变量会产生内存分配的操作,而声明变量只是告诉包含该声明的模块在连接阶段从其他模块寻找外部函数和变量。 7. 嵌入式系统中的模块划分:嵌入式系统通常包括硬件驱动模块和软件功能模块,模块的划分应满足低偶合、高内聚的要求。 8. 多任务系统:多任务系统可以宏观并行地执行多个任务,依赖于多任务操作系统(OS),核心是系统调度器。 9. 任务控制块(TCB):TCB用于管理任务调度功能,包括任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。 10. 任务上下文:任务上下文是当一个执行中的任务被停止时,所要保存的所有信息,包括计算机当前的状态,也即各个寄存器的内容。 11. 嵌入式OS的实现:嵌入式OS可以用不到1000行代码实现,例如针对80186处理器的嵌入式OS。