最新教程下載:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255php
本章教程爲你們介紹如何經過IAR下載程序到芯片裏面以及IAR的調試和配置方法。。工具
6.1 初學者重要提示字體
6.2 第1步,建立工程文件夾優化
6.3 第2步,建立新工程ui
6.4 第3步,設置工程分組名spa
6.5 第4步,添加工程文件調試
6.6 第5步,保存建立的Workspaceblog
6.7 第6步,Options配置教程
6.8 第7步,最後一步驗證是否建立成功開發
6.9 IAR的字體,多核並行編譯,語法提示等設置
6.10 總結
建立一個文件夾,裏面包含以下文件(直接將跑馬燈例子的Project文件裏面內容所有刪除,而後整個工程複製進來便可)。
用於記錄例程的修改記錄和例子簡介。
在第一章詳細介紹從官網的下載方法。
這個是本章的重點,在這個文件夾裏面再創建兩個文件夾,EWARMv8文件夾用於存放IAR工程,MDK-ARM(uV5)文件夾裏面用於存放MDK工程,方便之後建立MDK的工程。
這個是要用戶提供的,開發板已經都提供好,bsp文件夾裏面是開發板各個外設的驅動,segger文件夾是硬件異常分析代碼。
這個是批處理文件,用於刪除MDK和IAR工程編譯後生成的obj和list臨時文件。
打開IAR,選擇Project ->Create New Project
工程名設置爲project:
建立後的效果以下:
默認的狀況下這裏是建立了兩個工程,一個用於Debug,一個用於Release。這兩個實際上是用的同一個工程,最大的區別是優化等級有所不一樣。
咱們這裏設置一下,將這兩個都刪掉,新建立一個Debug方式的,只是僅換了一個名字(主要目的是讓你們看下操做方法)。打開菜單Project->EDIT Configration:
先新建後再刪除其它兩個,由於當前IAR使用的一個是沒法刪除的。
點擊肯定後,再次點擊肯定:
能夠看到左上角已經有三個了,這咱們選擇Flash,將其激活,也就是使用這個:
再次打開菜單Project->EDIT Configration就能夠將Debug和Release刪除掉了:
如今左上角就只有一個Flash了:
默認新建的工程是下面這樣的:
在Workspace欄的空白地方鼠標右擊選擇Add->Add Group(若是有多個project同時在裏面的話,要鼠標左擊選中project - Flash,而後右擊添加):
經過這種方式,咱們依次建立以下7個分組:
下面咱們爲各個分組添加上具體的文件。鼠標左擊選中BSP,而後右擊選擇Add->Add Files
而後在新建的工程文件夾裏面查找須要添加的文件便可。
bsp.c 位於路徑\User\bsp,主要用於MPU、Cache、時鐘和外設初始化。
bsp.h位於路徑\User\bsp,此文件是各類頭文件的集中彙總貼,方便管理。
bsp_led.c位於路徑\User\bsp\src,用於LED驅動。
bsp_key.c位於路徑\User\bsp\src,用於按鍵驅動。
bsp_timer.c位於路徑\User\bsp\src,用於軟件定時器組和微妙級單次延遲。
bsp_fmc_io.c位於路徑\User\bsp\src,用於IO擴展,這裏LED要用到。
bsp_uart_fifo.c位於路徑\User\bsp\src,用於8串口FIFO驅動。
stm32f4xx_it.c位於路徑User\bsp,用於部分系統中斷服務程序。
system_stm32f4xx.c位於路徑\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates,主要用於復位RCC相關寄存器和中斷向量表位置設置。
這兩個文件位於Doc文件夾,主要用於說明例程的功能和更新記錄。
startup_stm32f429xx.s 位於路徑\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar,主要用於堆和棧空間設置,中斷向量表也在這個文件。
stm32f4xx_hal_conf.h位於路徑\User\bsp,主要用於HAL庫的配置。
其它文件路徑:\Libraries\STM32F4xx_HAL_Driver\Src,用到什麼外設添加什麼驅動文件便可,有些外設驅動跟DMA也有關聯,直接添加進來便可。
這兩個文件位於路徑:\User\segger\HardFaultHandlerMDK,主要用於硬件異常分析。
main.c文件位於文件夾User,實現了一個簡單的跑馬燈效果。
文件添加完畢後要保存Workspace,點擊菜單File->Save Workspace As
彈出的對話框裏面選擇路徑,設置文件名後,保存便可:
剩下就是工程的配置工做了。
IAR的配置基本都集中在Options對話框裏面:
這部分主要用於通用設置。選擇ST的STM32F429BI:
Library Configration選擇全功能庫:
Library Options1裏面的printf和scanf都選擇支持全功能格式:
這部分主要用於編譯器設置,優化等級選擇默認的低優先級:
Language 1選擇C語言和C11規範(在第9章有介紹):
而後就是最重要的頭文件路徑添加,IAR提供的添加方式都是相對路徑:
注意,添加的時候要添加相對路徑,使用絕對路徑的話,工程換個位置就沒法使用了:
將下面路徑都添加進去:
同時在預約義宏選項裏面添加以下宏定義:
USE_HAL_DRIVER 表示使用HAL庫。
STM32F429xx 表示使用F429系列。
USE_FULL_LL_DRIVER表示使用LL庫。
這個選項基本用不上,能夠不用管,主要是用來指定編譯以前和編譯以後執行的用戶程序。對於本教程配套的例子來講在這裏添加了一個批處理功能,用來實現Objects文件夾裏面的hex文件複製到路徑Project\EWARMv8裏面,方便查找。
Linker選項主要是連接器的配置,其中最主要的是icf文件配置Flash和RAM區。在HAL庫的軟件包的路徑:\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\linker裏面提供了不少配置方式(部分截圖):
教程配套例子使用的是stm32f429xx_flash.icf,將這個文件複製到所建立工程的路徑\Project\EWARMv8裏面。而後在Linker選項裏面將其添加進來:
添加進來後是個絕對路徑:
要修改成相對路徑:
添加進來後要設置下中斷向量表首地址,堆和棧大小,點擊上面截圖左下角的Edit按鍵進行配置。
中斷向量表首地址設置爲0x0800 0000:
STM32F429BIT6的Flash首地址是0x0800 0000,大小0x200000,即2MB。
默認的RAM空間首地址0x2000 0000,大小0x30000,即192KB。
堆和棧大小分別設置爲0x800和0x400:
設置完畢後記得點擊保存。
Debugger選項主要用於調試下載,當前IAR支持以下調試工具:
具體的調試設置在下一章有詳細說明,本章主要是保證建立的工程可以正常編譯。
點擊全編譯:
編譯結果:0錯誤,0警告,編譯成功。
這裏將IAR常常用到的設置作個說明。
教程配套例子的Tab size要設置爲4,不然代碼顯示不整齊。菜單Tools -> Options:
菜單Tools -> Options,支持比例字體和等寬字體選擇:
電腦有幾個核都選上,加快編譯速度,我這裏是四核:
對於初學者來講,務必要實際動手操做一遍,之後移植其它程序代碼大有裨益。