模块化编程简明教程
林德光
ldeguang1991@gmail.com
模块化编程是嵌入式一门很重要的编程能力。对于一个稍微复杂的系统来说,编程时我们不可能把它全部写在一个.c文件里,这样很导致文件超级长,不利于调试,从审美角度来说,也显得毫无章法。更明智的做法就是采用模块化编程。下面就模块化编程进行简单讲解。(注:平台win7,环境keil4,处理器STC1T)
先给一个大致的印象。
一个demo工程文件下的文件夹如图
这种编程做法的优点就是结构清晰,逻辑性好。下面进行演示。
首先,新建一个文件夹(这里我放在桌面的demo文件夹)
在demo文件夹下新建五个文件夹COMM、HARDWARE、OUTPUT、SYSTEM、USER(这只是我常用的做法,你也可以做相应修改)
其中,
USER :用于存放用户文件:包括工程项目文件、主函数文件;
SYSTEM :用于存放系统资源文件,如uart,timer等;
HARDWARE :用于存放板载硬件资源,如DS18b20,tube,key,lcd等;
COMM :用于存放通讯协议文件,如I2C,SPI等;
OUTPUT :用于存放编译过程产生的“垃圾文件”,如,目标文件(.obj),链接文 件(.lst),hex文件等。
然后,打开keil4,新建工程,保存在USER文件夹下,如图,
接下来的芯片选择等我就不多说了,你懂的……
新建demo.c,用于编写主函数,保存在USER目录下。现在USER目录下文件有:
现在假设我们要加入LED模块,那么我们就在HARDWARE文件下新建led文件夹,
打开led文件夹,新建led.h,led.c,如图:
这里说明一下,.h文件一般负责“声明”函数和配置,.c文件负责“定义”函数。
分别编写.h和.c文件,这里我简单demo一下:
led.h
led.c
现在我们编写好了模块文件,重新打开demo工程,首先进行文件组织,
在Groups下删掉Source Group1,新建USER、HARDWARE,(其他的文件夹就不新建了,demo工程没有用到)
选中Groups下USER,在Files框下点击Add Files,添加进USER文件夹下的.c文件,
选中Groups下HARDWARE,在Files框下点击Add Files,添加进USER文件夹下的.c文件,
添加完,就这样……
弄完就点OK,返回到主界面,
可以看到文件结构树已经跟我们一开始新建的文件夹结构统一了,如图(其他文件夹用不到,先忽略)
接着,设置中间过程产生的文件的放置位置
编写主函数,编译:
编译之后,可以发现编译器编译出错,说找不到led.h
于是,我们还必须进行一项设置(编译路径)
编译路径我们添加进去了,再重新编译,
可以看到没有报错,(一个警告是因为我们编写的另外一个函数LED_OFF()函数没有调用),如果想不要这个警告可以这样设置,
大功告成,以后添加模块这可以按这个步骤就可以很快构建自己的工程文件了。
yhb__1213_815295659 2015-12-26 17:45
用户1855420 2015-9-22 20:03
用户377235 2015-5-8 17:52
用户1836794 2015-5-3 15:26
用户1829149 2015-2-24 22:50
用户342429 2014-9-8 10:08
用户1659715 2014-7-28 15:44
用户444457 2013-12-3 21:51
用户429514 2013-3-12 12:45
用户377235 2013-3-10 09:46