C语言架构篇的学习笔记

 近来看宋宝华老师的c语言嵌入式系统编程修炼之道,架构篇的笔记整理如下。

1.模块划分的几个规则

 1)模块即是一个.c文件和一个.h文件的结合,头文件中是对于该模块接口的声明;


 2)某模块提供给其他模块调用的外面函数以及数据需要在.h文件中冠以extern关键字声明;

 3)模块内的函数和全局变量需在.c文件开头冠以static关键字声明;

 4)永远不要在.h文件中定义变量!(定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段

的概念;而声明则只是告诉包含该声明的模块在连接阶段从其他模块寻找外部函数和变量)

2.嵌入式系统包括的两类模块

 1)硬件驱动模块,一种特定硬件对应一个模块; 2)软件功能模块,其模块的划分应该满足低耦合、高内聚的特点。

3.中断服务程序

 1)不能返回值;

 2)不能向ISR传递参数;

3)ISR应该尽可能的短小精悍;

4)printf(......)函数会带来重入和性能问题,不要在ISR函数中使用。

4.硬件驱动模块

 硬件驱动模块通常应包括如下函数:

1).中断服务程序ISR

2)硬件初始化(修改寄存器,设置硬件参数,将中断服务程序入口地址写入中断向量表)

3)设置CPU针对该硬件的控制线

4)提供一系列针对该设备的操作接口函数

5 c的面向对象化

在面向对象的语言里面,出现了类的概念。类是对特定 数据的特定操作的集合体。

类包含两个范畴:数据和操作。而C语言中的struct仅仅是数据的集合,我们可以利用函数指针将struct模拟为一个包

含数据和操作的“类”。
















你可能感兴趣的:(C语言架构篇的学习笔记)