我們為什么要一個建立多個目標?
1.一個工程中擁有相同的源文件,但目標配置不一樣的工程需要建立多個目標。
比如:IAR新建一個工程,默認就有兩個目標:Debug和Release。 其實,細心的朋友會發現,Debug和Release兩個工程目標包含的源文件都一樣,只是它們的配置不一樣。
Debug目標包含很多調試信息,編譯的時候相對較慢,但能在線調試;
Release目標沒有包含調試信息,編譯速度相對較快,但不能在線調試。
2.一個工程中擁有大部分相似源文件的工程需要建立多個目標。
一般實際應用項目中,這一項相對較多一點,就拿ST提供的“標準外設庫”為例來說明。
像類似上面針對STM32F1這種例程,官方為了所有STM32初學者都能使用這個工程(有多個目標),能讓所有(大部分)STM32F1的用戶都能使用該工程,就用了多目標,不同配置的方式來實現。
再簡單舉例來說:我們有一個很大的項目,客戶A需要在項目中單純的添加一個LED指示燈,客戶B需要在項目中添加一個按鍵輸入。由于客戶A和B的項目大部分功能都一樣,只有略微的差異,同樣也可以使用建立多個工程目標的方式。
3.為了維護工程。
多來工作的人應該知道,特別的工作有兩三年及其以上的人,一個公司可能有多款類似的產品,也就是說使用的硬件和軟件大部分都相同,只是存在略微的差異。但我們不可能因為一點點的差異,單獨新建一個,并單獨安排一批人來維護這個代碼。
多工程目標 和 工作空間有什么區別?
1.一個工作空間可以包含多個工程,以及對應的多個目標。
其實就是一個包含關系,就如前面那張圖:
2.多工程目標可以分解為多個工程,也就是工作空間。
如上面所說,如果工程中的源代碼文件差異比較大,可以將其分成多個工程,即我們所說的工作空間。
Ⅱ 建立多個目標
本節以新建STM32F030xx的Demo為例,也就是建立STM32F030系列的工程Demo,其中包含的啟動文件有兩種:startup_stm32f030.s和startup_stm32f030xc.s這兩種,但一個目標只編譯一種。
1.建立基礎工程
因為工程中的源代碼文件都差不多,后面新建的目標都是基于建立好的目標修改而成。所以把需要的工程源代碼添加到工程,目標選項配置好。
這一節參考文章【Keil(MDK-ARM)系列教程(一)_新建軟件工程詳細過程】;
2.添加目標名稱
這個就是在上面的基礎上添加(插入)目標,如下圖:
3.配置相關目標
a.文件配置:是否編譯當前文件,文件存儲地址等。
b.目標選項配置,這個之前的文章都已經講述過,可以參看文章【工程目標選項配置(Ⅰ)】 和 【工程目標選項配置(Ⅱ)】
-
IAR
+關注
關注
5文章
350瀏覽量
36665 -
STM32F030
+關注
關注
1文章
33瀏覽量
6656
發布評論請先 登錄
相關推薦
評論