初学者在开始的时候往往是先看别人的例程,但是在看例程的时候往往容易被项目中那么多的文件迷住了双眼,到底哪些文件是最重要的呢?下面我们一起从零开始自己动手建一个简单的项目,这样在看别人的项目时至少对一个项目到底包含了哪些文件做到心里有底。
在初学IAR的时候,如果英文还可以的话,程序自带的USER GUIDE就是一个不错的教程。下面的例子就来源于其中的“Tutorials”。首先我们专门建立一个文件夹名字为"test",然后把\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation version\8051\tutor里的tutor.c, utilities.c, utilities.h三个文件复制到test文件夹,新建IAR项目,把其中的.c文件添加进项目里面(由于本文只针对性说明workspace的文件组织,并不是IAR的教程,有些细节就省略了)。我们似乎更习惯于项目里只有这三个文件,但实际上不是的,有很多我们不认识的文件,他们是何方神圣?先上图,然后一一道来。。。
项目由两个.c文件和一个output文件夹组成,其中output文件夹中包括了程序的最终编译结果test.d51,点开这个文件,发现下面又有5个文件,tutor.r51, utilities.r51分别为两个.c文件编译出的相对目标文件,两个.xcl均为linker用的参数,另外一个.r51文件我也没花时间去研究,估计可能是"startup"一类,IAR为TI的MCU提供的底层驱动。
每个.c文件下面都包括一个output文件夹与.h文件簇,output文件夹中有两个文件,一个是.r51一个是.pbi,其中.pbi文件是compiler的参数,r51文件与上述相同。下面重点说明下.h文件的构成,因为在编程中我们更关注的是.h与.c文件。
我们只手工拷贝了utilities.h一个文件,可是为什么会有这么多我们不认识的呢?IAR的workspace有一个智能功能,那就是自己搜索.c文件中需要用到的.h文件并显示出来。以utilities.c下面的.h为例:打开utilities.c,我们可以看到文件中包含
#include <stdio.h>
#include "utilities.h"
所以workspace中有这两个文件就不足为奇了,我们做个小实验,删除#include "utilities.h"这一行,保存,看看发生什么了?"utilities.h"是不是不见了?再把这行加上去呢?~~~~好了,我们知道这两个.h的来源了,那stdarg.h和sysmac.h是哪来的呢?不急,打开stdio.h看看能不能找到答案呢?对了,在这里--#include "stdarg.h",再打开这个文件,是不是sysmac.h的老家也被我们找到了呢?至此,所有的.h文件原形毕露啦~~~(说明:在项目被编译过之后,编译前已经添加的.h文件就不会再被删除了,我也没明白why...)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。