IAR for ARM系列教程(一)_新建軟件工程詳細過程

ARM 300瀏覽

Ⅰ、寫在前面

本文使用目前(20161125)最新版本的IAR for ARM?V7開發環境、以STM32的處理器為例給大家講述新建一個軟件工程的詳細過程。

?

其它版本IAR其它處理器新建軟件工程的過程類似,或許存在略微的差異,但也可以參考本文內容。

?

為方便廣大STM32學習者,我將在下面把STM32F0 - F4各個系列芯片新建好的Demo軟件工程、相關的工具和文檔提供給大家下載

?

本文內容已經整理成PDF文件,提供給大家下載:

http://pan.baidu.com/s/1eSeDSu2

?

Ⅱ、本文要點

網上很多人問:“我之前用IAR for ARM V5V6建立好的工程,在IED升級到V7之后,打開以前的工程,編譯出來一大堆錯誤?”。

IAR for ARM在版本升級之后,工具鏈存在略微的差異,下面新建工程過程將會說到這些問題。

?

按照KeilMDK-ARM)新建軟件工程的思路,將內容分為準備工作新建工程兩大步驟來講述。

?

本文基于STM32F1系列芯片為例來講述(其它芯片類似),將簡單描述一下準備STM32F1標準外設庫、Demo源代碼(LED閃爍例程)。

?

本文講述的內容以簡單為主,只講述新建工程中常規的配置,其他大部分使用默認配置。更多詳細配置和教程敬請等待我公眾號或博客的更新。

?

Ⅲ、 準備工作

俗話說“磨刀不誤砍柴工”,準備工作雖然看上去與題目關系不大,但也是本文的重點,做好了準備工作,后面新建軟件工程的工作就很容易實現了。

?

1.安裝IAR for ARM軟件工具

本文必備工具,這里不多說,詳情請看我的另一篇文章【IAR for ARM介紹、下載、安裝與注冊】:

博客:http://blog.csdn.net/ybhuangfugui/article/details/52562533

PDFhttp://pan.baidu.com/s/1eSeDSu2

?

2.STM32標準外設庫下載

官網下載鏈接(需要ST賬號登陸):

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

?

根據芯片型號下載對應的標準外設庫(如芯片為STM32F103ZE,則下載對應的STM32F10x_StdPeriph_Lib),如下圖:

也可以到我百度網盤下載(和官網一樣):

http://pan.baidu.com/s/1qYbBKMK

?

3.整理工程文件夾

這一小節的內容可根據自己習慣來整理,我整理的文件及文件夾結構是按照常規的整理方式。你如果覺得合理,可以引用;如果覺得不習慣這個結構方式,可以自己整理。

?

首先建立一個存放工程文件的文件夾:STM32F103ZEIAR_Demo

?

A.提取ST標準外設庫文件

ST官網下載的標準外設庫里面有很多源代碼文件,但我們只需要使用部分文件。因此,需要提取使用的文件及文件夾到我們的工程中。

?

解壓STM32F10x_StdPeriph_Lib”,可以看到在主目錄下面有四個文件夾:

_htmresc:圖片文件夾(不提取

Libraries:庫文件夾(提取大部分

Project ?示例工程(提取少部分

Utilities 公共代碼、評估板代碼(不提取)

?

我們使用標準外設庫主要提取的文件是Libraries下面的文件,但有些文件及文件夾也是多余的。因此,我將多余的文件及文件夾去掉,保留需要的文件和文件夾。

?

這里強調一點Libraries里面的startup啟動文件有些需要修改。我們使用之前的庫(如F1F2的庫),這些庫是使用老版本的IAR for ARM V5V6版本編寫的,在V7版本上使用這些庫就不兼容,需要將text:CODE:REORDER改為text:CODE:NOROOT:REORDER

?

B.新建文件和文件夾

除了標準外設庫文件之外,我們需要建立存放自己代碼的文件和文件夾。我這里主要需要新建三個文件夾:

App: 應用部分代碼

Bsp: 底層部分代碼

Doc: 說明文檔

?

在自己新建的文件夾下面還需要新建自己的文件,文件里面添加源代碼,我們提供的Demo工程,實現的功能比較簡單,就是一個LED閃爍。這里不描述,具體可以在最后下載查看。

?

上面兩個步驟完成之后,我們就可以看到在STM32F103ZEIAR_Demo”下面整理的文件夾:

?

至此,準備工作算完成了,上面提取的文件、新建的文件里面具體的內容請下載Demo工程查看

?

Ⅳ、新建軟件工程

新建一個簡單、基礎的軟件工程大概需要有三個步驟:創建工程、添加文件和配置工程。

上面的準備工作做好之后,就可新建自己的軟件工程了,下面將一步一步講述從零開始新建一個軟件工程的詳細過程。

?

1.創建工程

創建工程的步驟是基礎,也比較簡單。

?

A.打開軟件,創建新工程(Project ->?Create New Project

?

B.創建一個空工程

?

C.選擇路徑,保存名稱

?

D.空基礎工程

?

至此,一個空的基礎工程就創建好了,需要進一步添加文件到工程和配置工程。

?

2.添加文件

準確的來說,應該是添加組(文件夾)和添加文件。直接的說,就是將你自己的源代碼(前面提取的庫、新建的文件等)添加到工程中。

?

這里的工程項目管理可根據自己的想法來定義(類似于自己分類、命名文件夾和文件),我這里按照常規的方式進行管理項目。

?

IARKeil組管理的區別

IAR可以添加多級組,類似于文件夾下可以再建文件夾,一直下去。

Keil只能添加單級組,類似于文件夾下面只能添加文件,而不能在添加文件夾。

?

為了簡單、遵循Keil組結構,我們在IAR中分組方式也按照Keil方式分組,先在工程中添加組,再在組中添加文件......一次循環下去直到完成。

?

A.工程中添加組

?

B.填寫組的名稱 -> OK

?

C.組中添加文件

?

D.按住Ctrl,鼠標選中要添加的文件

?

E.依次添加(按照上面步驟循環),直到添加完成

?

3.配置工程

配置工程對于初學者來說,大部分內容只需要默認即可,這里只講述幾個常見的配置,能滿足基本的功能。更多配置可進入我微信公眾號或博客查看。

?

A.進入配置選項

?

B.選擇器件

?

C.庫配置Library Configration

第一Library:如果需要使用某些標準的庫函數接口(如我們使用的printf and scanf),就需要選擇Full(見下圖)。

?

第二CMSIS:是微控制器軟件接口標準(Cortex Microcontroller Software Interface Standard)的意思。IAR for ARMV5V6V7版本之間存在差異,很多人用新版本IAR編譯以前工程出現錯誤的原因就在于此(如STM32F1的庫就使用較老版本的CMSIS,我們使用新版本IAR就需要勾選這里)。

?

D.預處理Preprocessor - 添加路徑

添加的路徑最好是相對路徑,而不是絕對路徑。使用絕對路徑工程位置改變之后就找不到文件,就會出錯。可以點擊按鈕選擇路徑,也可以通過復制文件路徑進行配置。

·

·

一步一步添加,直到最后完成

·

·

?

E.預處理Preprocessor - 預定義

這里的預定義類似于在源代碼中的#define xxx 這種宏定義。這里的STM32F10X_HD可以在stm32f10x.h中打開即可,USE_STDPERIPH_DRIVER這個宏定義我已經定義在在stm32f10x.h文件中。

?

F.輸出Hex文件

很多初學的朋友都會問怎么輸出 Hex( 可直接下載的程序文件),只需要按照下面配置即可輸出Hex文件。

?

G.選擇下載調試工具

根據自己情況選擇的下載調試工具。使用ST-Link的朋友需要注意,有些時候ST-Link默認的接口是JTAG,需要改為SWD才能使用(見下圖)。

?

?

Ⅴ、下載

為方便廣大STM32學習者,我將常見的STM32Demo軟件工程”已經建好,里面包含KeilMDK-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

?

注意:由于許多網盤近年來受到影響都相繼停止服務或關閉了,如果網盤鏈接失效,請在微信公眾號查看更新鏈接,或微信聯系作者。

?

Ⅵ、說明

上面新建軟件工程主要是針對初學者,寫的比較基礎的。若要了解更多關于Keil的使用教程,可以進入我微信公眾號或博客查看。

?

以上內容僅供參考,若有不對之處,敬請諒解。

?

Ⅶ、最后

我的博客:http://blog.csdn.net/ybhuangfugui

微信公眾號:EmbeddDeveloper

?

本著免費分享的原則,方便大家業余利用手機學習知識,定期在微信公眾號分享相關知識。如果覺得文章的內容對你有用,又想了解更多相關的文章,請用微信搜索EmbeddDeveloper” 或者掃描下面二維碼、關注,將有更多精彩內容等著你。

?

七星彩走势图2元网官网