我們?yōu)槭裁匆粋€(gè)建立多個(gè)目標(biāo)?
1.一個(gè)工程中擁有相同的源文件,但目標(biāo)配置不一樣的工程需要建立多個(gè)目標(biāo)。
比如:IAR新建一個(gè)工程,默認(rèn)就有兩個(gè)目標(biāo):Debug和Release。 其實(shí),細(xì)心的朋友會(huì)發(fā)現(xiàn),Debug和Release兩個(gè)工程目標(biāo)包含的源文件都一樣,只是它們的配置不一樣。
Debug目標(biāo)包含很多調(diào)試信息,編譯的時(shí)候相對(duì)較慢,但能在線調(diào)試;
Release目標(biāo)沒(méi)有包含調(diào)試信息,編譯速度相對(duì)較快,但不能在線調(diào)試。
2.一個(gè)工程中擁有大部分相似源文件的工程需要建立多個(gè)目標(biāo)。
一般實(shí)際應(yīng)用項(xiàng)目中,這一項(xiàng)相對(duì)較多一點(diǎn),就拿ST提供的“標(biāo)準(zhǔn)外設(shè)庫(kù)”為例來(lái)說(shuō)明。
像類似上面針對(duì)STM32F1這種例程,官方為了所有STM32初學(xué)者都能使用這個(gè)工程(有多個(gè)目標(biāo)),能讓所有(大部分)STM32F1的用戶都能使用該工程,就用了多目標(biāo),不同配置的方式來(lái)實(shí)現(xiàn)。
再簡(jiǎn)單舉例來(lái)說(shuō):我們有一個(gè)很大的項(xiàng)目,客戶A需要在項(xiàng)目中單純的添加一個(gè)LED指示燈,客戶B需要在項(xiàng)目中添加一個(gè)按鍵輸入。由于客戶A和B的項(xiàng)目大部分功能都一樣,只有略微的差異,同樣也可以使用建立多個(gè)工程目標(biāo)的方式。
3.為了維護(hù)工程。
多來(lái)工作的人應(yīng)該知道,特別的工作有兩三年及其以上的人,一個(gè)公司可能有多款類似的產(chǎn)品,也就是說(shuō)使用的硬件和軟件大部分都相同,只是存在略微的差異。但我們不可能因?yàn)橐稽c(diǎn)點(diǎn)的差異,單獨(dú)新建一個(gè),并單獨(dú)安排一批人來(lái)維護(hù)這個(gè)代碼。
多工程目標(biāo) 和 工作空間有什么區(qū)別?
1.一個(gè)工作空間可以包含多個(gè)工程,以及對(duì)應(yīng)的多個(gè)目標(biāo)。
其實(shí)就是一個(gè)包含關(guān)系,就如前面那張圖:
2.多工程目標(biāo)可以分解為多個(gè)工程,也就是工作空間。
如上面所說(shuō),如果工程中的源代碼文件差異比較大,可以將其分成多個(gè)工程,即我們所說(shuō)的工作空間。
Ⅱ 建立多個(gè)目標(biāo)
本節(jié)以新建STM32F030xx的Demo為例,也就是建立STM32F030系列的工程Demo,其中包含的啟動(dòng)文件有兩種:startup_stm32f030.s和startup_stm32f030xc.s這兩種,但一個(gè)目標(biāo)只編譯一種。
1.建立基礎(chǔ)工程
因?yàn)楣こ讨械脑创a文件都差不多,后面新建的目標(biāo)都是基于建立好的目標(biāo)修改而成。所以把需要的工程源代碼添加到工程,目標(biāo)選項(xiàng)配置好。
這一節(jié)參考文章【Keil(MDK-ARM)系列教程(一)_新建軟件工程詳細(xì)過(guò)程】;
2.添加目標(biāo)名稱
這個(gè)就是在上面的基礎(chǔ)上添加(插入)目標(biāo),如下圖:
3.配置相關(guān)目標(biāo)
a.文件配置:是否編譯當(dāng)前文件,文件存儲(chǔ)地址等。
b.目標(biāo)選項(xiàng)配置,這個(gè)之前的文章都已經(jīng)講述過(guò),可以參看文章【工程目標(biāo)選項(xiàng)配置(Ⅰ)】 和 【工程目標(biāo)選項(xiàng)配置(Ⅱ)】
提示:先選中對(duì)應(yīng)的目標(biāo),再Project -> Options for Target進(jìn)行配置。
-
IAR
+關(guān)注
關(guān)注
5文章
350瀏覽量
36664 -
STM32F030
+關(guān)注
關(guān)注
1文章
33瀏覽量
6656
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論