初學者在開始的時候往往是先看別人的例程,但是在看例程的時候往往容易被項目中那么多的文件迷住了雙眼,到底哪些文件是最重要的呢?下面我們一起從零開始自己動手建一個簡單的項目,這樣在看別人的項目時至少對一個項目到底包含了哪些文件做到心里有底。 在初學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的教程,有些細節(jié)就省略了)。我們似乎更習慣于項目里只有這三個文件,但實際上不是的,有很多我們不認識的文件,他們是何方神圣?先上圖,然后一一道來。。。 ![]() ![]() 項目由兩個.c文件和一個output文件夾組成,其中output文件夾中包括了程序的最終編譯結果test.d51,點開這個文件,發(fā)現(xiàn)下面又有5個文件,tutor.r51, utilities.r51分別為兩個.c文件編譯出的相對目標文件,兩個.xcl均為linker用的參數(shù),另外一個.r51文件我也沒花時間去研究,估計可能是"startup"一類,IAR為TI的MCU提供的底層驅動。 每個.c文件下面都包括一個output文件夾與.h文件簇,output文件夾中有兩個文件,一個是.r51一個是.pbi,其中.pbi文件是compiler的參數(shù),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"這一行,保存,看看發(fā)生什么了?"utilities.h"是不是不見了?再把這行加上去呢?~~~~好了,我們知道這兩個.h的來源了,那stdarg.h和sysmac.h是哪來的呢?不急,打開stdio.h看看能不能找到答案呢?對了,在這里--#include "stdarg.h",再打開這個文件,是不是sysmac.h的老家也被我們找到了呢?至此,所有的.h文件原形畢露啦~~~(說明:在項目被編譯過之后,編譯前已經(jīng)添加的.h文件就不會再被刪除了,我也沒明白why...) |
|