2017年9月27日 星期三

IAR Embedded Workbench建立STM32 ARM MCU專案

使用過幾種ARM的IDE開發工具後,覺得其實IAR是不錯的選擇,操作簡潔好用,寫MCU程式的人對於IDE的設定繁雜也是蠻苦惱的,今天要介紹如何設定IAR來完成STM32L1XX專案設定,順便幫自己做一下筆記,以免常常花很多時間在開發硬體上,一段時間之後要寫程式又忘了專案的設定!

1.安裝IAR Embedded Workbench(可以去官網下載)

2.開啟IAR Embedded Workbench


3.下載STM32L1xx standard peripherals library(STSW-STM32077), Libraries裡面有CMSIS及STM32L1xx_StdPeriph_Driver是撰寫STM32L1XX所需要的檔案,下載網址路徑如下:
http://www.st.com/en/embedded-software/stsw-stm32077.html


4.在C:\跟目錄底下建立專案資料夾IAR_STM32L1(資料夾名稱隨你喜歡即可),其實資料夾要放哪隨便你,本文說明為了方便直接放在C槽

5.在IAR_IAR_STM32L1資料夾中貼上STSW-STM32077 Libraries裡面的CMSIS及STM32L1xx_StdPeriph_Driver,並新增資料夾Inc及Src, Inc及Src分別用來放置使用者自行撰寫的*.c及*.h檔案

6.建立IAR專案及設定IAR-->Project-->Create New Project, 如以下選擇案OK後會跳出儲存專案*.ewp的視窗,將專案命名並存在IAR_STM32L1資料夾內


7.儲存STM32L1.ewp專案後如下圖,在左邊的STM32L1-Debug欄位案右鍵選擇Add Group...,
新增一些Group : (1)CMSIS (2)STM32L1xx_StdPeriph_Driver (3)User, 用來放置要撰寫的程式及要引入的Libraries,



8.到STSW-STM32077裡面的Project資料夾內的STM32L1xx_StdPeriph_Templates資料夾中,
複製以下(1)stm32l1xx_it.c (2)stm32l1xx_conf.h (3)system_stm32l1xx.c (4)stm32l1_it.h檔案到所建立的專案資料夾中


9.將一些需要用到的Libraries及相關STM32L1需要用到的檔案加入到對應的Group裡面

9.新增Group,命名為EWARM用來放置startup_stm32l1xx_md.s, startup_stm32l1xx_md.s可於所下載的STSW-STM32077檔案中搜尋startup_stm32l1xx_md.s並複製貼到EWARM,STM32L1資料夾,startup有分(1)startup_stm32l1xx_hd.s (2)startup_stm32l1xx_md.s (3)startup_stm32l1xx_mdp.s (4)startup_stm32l1xx_xl.s由於選擇的MCU是STM32L100R8T6A, 因此可以找一下stm32l1xx.h裡面有以下關於density的資訊:
/* #define STM32L1XX_MD  */   /*!< - Ultra Low Power Medium-density devices: STM32L151x6xx, STM32L151x8xx,
                                     STM32L151xBxx, STM32L152x6xx, STM32L152x8xx, STM32L152xBxx,
                                     STM32L151x6xxA, STM32L151x8xxA, STM32L151xBxxA, STM32L152x6xxA,
                                     STM32L152x8xxA and STM32L152xBxxA.
                                   - Ultra Low Power Medium-density Value Line devices: STM32L100x6xx,
                                     STM32L100x8xx and STM32L100xBxx.  */

/* #define STM32L1XX_MDP */   /*!< - Ultra Low Power Medium-density Plus devices: STM32L151xCxx, STM32L152xCxx and STM32L162xCxx 
                                   - Ultra Low Power Medium-density Plus Value Line devices: STM32L100xCxx  */

/* #define STM32L1XX_HD */     /*!< Ultra Low Power High-density devices: STM32L151xDxx, STM32L152xDxx and STM32L162xDxx */

/* #define STM32L1XX_XL */     /*!< Ultra Low Power XL-density devices: STM32L151xExx, STM32L152xExx and STM32L162xExx */



10.設定Options,在Workspace專案名稱案右鍵選擇Options,設定如下



11.按存檔會跳出視窗要你存*.eww

12.編譯看看是否有錯,通常有錯都是其中的步驟有設錯,尤其是步驟10的Additional include directories有缺路徑沒有選擇,無法找到邊譯器無法找到某個.h檔







STM32於IAR 9.3以後的版本將uart導向至printf

首先,請先參考如以下IAR提供的"在IAR Embedded Workbench中实现打印输出技術資料" https://www.iar.com/cn/knowledge/support/technical-notes/general/implementing-printf-ou...