Ⅰ、寫在前面
本文使用目前(2016年11月25日)最新版本的IAR for ARMV7開發(fā)環(huán)境、以STM32的處理器為例給大家講述新建一個軟件工程的詳細(xì)過程。
其它版本IAR,其它處理器新建軟件工程的過程類似,或許存在略微的差異,但也可以參考本文內(nèi)容。
為方便廣大STM32學(xué)習(xí)者,我將在下面把STM32F0 - F4各個系列芯片新建好的Demo軟件工程、相關(guān)的工具和文檔提供給大家下載。
本文內(nèi)容已經(jīng)整理成PDF文件,提供給大家下載:
http://pan.baidu.com/s/1eSeDSu2
Ⅱ、本文要點(diǎn)
網(wǎng)上很多人問:“我之前用IAR for ARMV5或V6建立好的工程,在IED升級到V7之后,打開以前的工程,編譯出來一大堆錯誤?”。
IAR for ARM在版本升級之后,工具鏈存在略微的差異,下面新建工程過程將會說到這些問題。
按照Keil(MDK-ARM)新建軟件工程的思路,將內(nèi)容分為準(zhǔn)備工作和新建工程兩大步驟來講述。
本文基于STM32F1系列芯片為例來講述(其它芯片類似),將簡單描述一下準(zhǔn)備STM32F1標(biāo)準(zhǔn)外設(shè)庫、Demo源代碼(LED閃爍例程)。
本文講述的內(nèi)容以簡單為主,只講述新建工程中常規(guī)的配置,其他大部分使用默認(rèn)配置。更多詳細(xì)配置和教程敬請等待我公眾號或博客的更新。
Ⅲ、 準(zhǔn)備工作
俗話說“磨刀不誤砍柴工”,準(zhǔn)備工作雖然看上去與題目關(guān)系不大,但也是本文的重點(diǎn),做好了準(zhǔn)備工作,后面新建軟件工程的工作就很容易實現(xiàn)了。
1.安裝IAR for ARM軟件工具
本文必備工具,這里不多說,詳情請看我的另一篇文章【IAR for ARM介紹、下載、安裝與注冊】:
博客:
http://blog.csdn.net/ybhuangfugui/article/details/52562533
PDF:http://pan.baidu.com/s/1eSeDSu2
2.STM32標(biāo)準(zhǔn)外設(shè)庫下載
官網(wǎng)下載鏈接(需要ST賬號登陸):
http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961
根據(jù)芯片型號下載對應(yīng)的標(biāo)準(zhǔn)外設(shè)庫(如芯片為STM32F103ZE,則下載對應(yīng)的STM32F10x_StdPeriph_Lib),如下圖:
也可以到我百度網(wǎng)盤下載(和官網(wǎng)一樣):
http://pan.baidu.com/s/1qYbBKMK
3.整理工程文件夾
這一小節(jié)的內(nèi)容可根據(jù)自己習(xí)慣來整理,我整理的文件及文件夾結(jié)構(gòu)是按照常規(guī)的整理方式。你如果覺得合理,可以引用;如果覺得不習(xí)慣這個結(jié)構(gòu)方式,可以自己整理。
首先建立一個存放工程文件的文件夾:STM32F103ZE(IAR)_Demo
A.提取ST標(biāo)準(zhǔn)外設(shè)庫文件
ST官網(wǎng)下載的標(biāo)準(zhǔn)外設(shè)庫里面有很多源代碼文件,但我們只需要使用部分文件。因此,需要提取使用的文件及文件夾到我們的工程中。
解壓“STM32F10x_StdPeriph_Lib”,可以看到在主目錄下面有四個文件夾:
_htmresc:圖片文件夾(不提取)
Libraries:庫文件夾(提取大部分)
Project: 示例工程(提取少部分)
Utilities: 公共代碼、評估板代碼(不提?。?/p>
我們使用標(biāo)準(zhǔn)外設(shè)庫主要提取的文件是Libraries下面的文件,但有些文件及文件夾也是多余的。因此,我將多余的文件及文件夾去掉,保留需要的文件和文件夾。
這里強(qiáng)調(diào)一點(diǎn):Libraries里面的startup啟動文件有些需要修改。我們使用之前的庫(如F1、F2的庫),這些庫是使用老版本的IAR for ARM V5或V6版本編寫的,在V7版本上使用這些庫就不兼容,需要將textREORDER改為textNOROOT:REORDER。
B.新建文件和文件夾
除了標(biāo)準(zhǔn)外設(shè)庫文件之外,我們需要建立存放自己代碼的文件和文件夾。我這里主要需要新建三個文件夾:
App: 應(yīng)用部分代碼
Bsp: 底層部分代碼
Doc: 說明文檔
在自己新建的文件夾下面還需要新建自己的文件,文件里面添加源代碼,我們提供的Demo工程,實現(xiàn)的功能比較簡單,就是一個LED閃爍。這里不描述,具體可以在最后下載查看。
上面兩個步驟完成之后,我們就可以看到在“STM32F103ZE(IAR)_Demo”下面整理的文件夾:
至此,準(zhǔn)備工作算完成了,上面提取的文件、新建的文件里面具體的內(nèi)容請下載Demo工程查看。
Ⅳ、新建軟件工程
新建一個簡單、基礎(chǔ)的軟件工程大概需要有三個步驟:創(chuàng)建工程、添加文件和配置工程。
上面的準(zhǔn)備工作做好之后,就可新建自己的軟件工程了,下面將一步一步講述從零開始新建一個軟件工程的詳細(xì)過程。
1.創(chuàng)建工程
創(chuàng)建工程的步驟是基礎(chǔ),也比較簡單。
A.打開軟件,創(chuàng)建新工程(Project ->CreateNew Project)
B.創(chuàng)建一個空工程
C.選擇路徑,保存名稱
D.空基礎(chǔ)工程
至此,一個空的基礎(chǔ)工程就創(chuàng)建好了,需要進(jìn)一步添加文件到工程和配置工程。
2.添加文件
準(zhǔn)確的來說,應(yīng)該是添加組(文件夾)和添加文件。直接的說,就是將你自己的源代碼(前面提取的庫、新建的文件等)添加到工程中。
這里的工程項目管理可根據(jù)自己的想法來定義(類似于自己分類、命名文件夾和文件),我這里按照常規(guī)的方式進(jìn)行管理項目。
IAR和Keil組管理的區(qū)別:
IAR可以添加多級組,類似于文件夾下可以再建文件夾,一直下去。
Keil只能添加單級組,類似于文件夾下面只能添加文件,而不能在添加文件夾。
為了簡單、遵循Keil組結(jié)構(gòu),我們在IAR中分組方式也按照Keil方式分組,先在工程中添加組,再在組中添加文件......一次循環(huán)下去直到完成。
A.工程中添加組
B.填寫組的名稱 -> OK
C.組中添加文件
D.按住Ctrl,鼠標(biāo)選中要添加的文件
E.依次添加(按照上面步驟循環(huán)),直到添加完成
3.配置工程
配置工程對于初學(xué)者來說,大部分內(nèi)容只需要默認(rèn)即可,這里只講述幾個常見的配置,能滿足基本的功能。更多配置可進(jìn)入我微信公眾號或博客查看。
A.進(jìn)入配置選項
B.選擇器件
C.庫配置Library Configration
第一Library:如果需要使用某些標(biāo)準(zhǔn)的庫函數(shù)接口(如我們使用的printf and scanf),就需要選擇Full(見下圖)。
第二CMSIS:是微控制器軟件接口標(biāo)準(zhǔn)(Cortex Microcontroller Software Interface Standard)的意思。IAR for ARM在V5和 V6、V7版本之間存在差異,很多人用新版本IAR編譯以前工程出現(xiàn)錯誤的原因就在于此(如STM32F1的庫就使用較老版本的CMSIS,我們使用新版本IAR就需要勾選這里)。
D.預(yù)處理Preprocessor - 添加路徑
添加的路徑最好是相對路徑,而不是絕對路徑。使用絕對路徑工程位置改變之后就找不到文件,就會出錯??梢渣c(diǎn)擊按鈕選擇路徑,也可以通過復(fù)制文件路徑進(jìn)行配置。
·
·
一步一步添加,直到最后完成
·
·
E.預(yù)處理Preprocessor - 預(yù)定義
這里的預(yù)定義類似于在源代碼中的#define xxx 這種宏定義。這里的STM32F10X_HD可以在stm32f10x.h中打開即可,USE_STDPERIPH_DRIVER這個宏定義我已經(jīng)定義在在stm32f10x.h文件中。
F.輸出Hex文件
很多初學(xué)的朋友都會問怎么輸出 Hex( 可直接下載的程序文件),只需要按照下面配置即可輸出Hex文件。
G.選擇下載調(diào)試工具
根據(jù)自己情況選擇的下載調(diào)試工具。使用ST-Link的朋友需要注意,有些時候ST-Link默認(rèn)的接口是JTAG,需要改為SWD才能使用(見下圖)。
Ⅴ、下載
為方便廣大STM32學(xué)習(xí)者,我將常見的STM32“Demo軟件工程”已經(jīng)建好,里面包含Keil(MDK-ARM)新建的工程供大家下載。
STM32F0工程模板:
http://pan.baidu.com/s/1pKSkSxt
STM32F1工程模板:
http://pan.baidu.com/s/1c1AWupM
STM32F2工程模板:
http://pan.baidu.com/s/1o8yGWg6
STM32F3工程模板:
http://pan.baidu.com/s/1boVXh2f
STM32F4工程模板:
http://pan.baidu.com/s/1qYzYMuS
-
ARM
+關(guān)注
關(guān)注
134文章
9054瀏覽量
366827 -
STM32
+關(guān)注
關(guān)注
2266文章
10873瀏覽量
354832 -
IAR
+關(guān)注
關(guān)注
5文章
345瀏覽量
36625
發(fā)布評論請先 登錄
相關(guān)推薦
評論