二、建立工程
首先介紹一下IAR。
IAR EmbeddedWorkbench for ARM是一套支援ARM所有處理器的內建開發環境,包含項目管理器、編輯器、C/C++編譯器、彙編器、連接配接器和調試器。在IAR Embedded Workbench for ARM環境下可以使用C/C++和彙編語言友善地開發ARM嵌入式應用程式,比較其他的ARM開發環境,IAREmbedded Workbench for ARM具有入門容易、使用友善、代碼緊湊等特點。通過其内置的針對不同晶片的代碼優化器,IAR Embedded Workbench for ARM可以為ARM晶片生成非常高效和可靠的FLASH/PROMable代碼。不僅有這些可靠的技術,IAR Systems還為您提供專業的全球技術支援。(此段内容來自IAR網站)
然後我們一步步建立一個工程。
1. 建立一個檔案夾,命名為工程的名字,在這個檔案夾裡建立我們的工程。為了更好管理工程,我們先在此檔案夾下建立三個檔案夾,分别命名為user,inc,和startup,如下圖所示:
2. 到st網站上下載下傳這塊闆子的庫函數例程:http://www.stmcu.org/download/index.php?act=down&id=723
3. 解壓後把STM32F4-Discovery_FW_V1.1.0\Project\Demonstration\EWARM目錄下的stm32f40x_flash.icf複制到建立的檔案夾目錄下
把STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\Include目錄下的core_cm4.h
core_cm4_simd.h core_cmFunc.h core_cmInstr.h複制到inc目錄下,
然後在把STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Include目錄下stm32f4xx.h和system_stm32f4xx.h檔案複制到inc目錄下。inc目錄下的檔案如下圖所示:
4. 把STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Source\Templates\iar目錄下的startup_stm32f4xx.s複制到startup目錄下。
5. 把STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Source\Templates目錄下的system_stm32f4xx.c檔案複制到user目錄下
6. 打開IAR,點選Project->Creat New Project,出現如下對話框:
點選OK,出現如下對話框:
找到剛才建立的檔案夾,打開,然後在檔案名中寫入工程的名字,點選儲存。
7. 然後右擊Files下的工程,點選Add,按下圖所示點選Add Group
出現如下對話框:
輸入user,點OK。
重複步驟6,在建立兩個Group,分别命名為startup和inc
8. 右擊inc->Add->Files,如下圖所示:
然後在對話框中打開剛才建立的inc檔案夾,把其中的檔案全部選中,如下圖所示:
點選打開。
重複步驟7,在Group startup中添加檔案夾startup中的startup_stm32f4xx.s檔案,在Groupuser中添加檔案夾user中的system_stm32f4xx.c檔案,完成後如下圖所示:
9. 點選File下的圖示建立一個檔案,我們的主程式就寫在這個檔案中,點選儲存,命名為mian.c吧,儲存在user目錄下。
10. 然後加到Group user下
11. 右擊工程Options彈出如下對話框
Target頁按上圖所示設定
點選C/C++ Compler,點選Prerocessor頁,按下圖設定
點選Linker勾選Overridedefault選項,然後點選右面浏覽按鈕
彈出如下對話框,點選但工程目錄下,打開stm32f40x_flash.icf檔案,如下圖所示
點選Debugger,Driver選ST-LINK
點選Download頁,勾選Use flashloader選項,如下圖所示
點選ST-LINK,Interface選擇SWD
點選OK,工程設定完畢
因為discovery的晶振為8M,是以請在 stm32f4xx.h中改
#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)8000000)
#endif
在system_stm32f4xx.c中改
#define PLL_M 8
在main.c中寫入如下代碼:
//file:main.c
#include<stm32f4xx.h>
void main ()
{
while(1);
}
按鍵盤F7鍵,編譯連接配接沒出錯的話,就是工程建立成功了,以後就可以直接複制這個工程檔案夾,然後再添加一些代碼或者檔案來建立新的工程了。