STM32 IAR工程 Keil MDK轉換詳解

2021-08-14 09:14:37 字數 1382 閱讀 4644

我在

stm32

的學習中發現,大部分的stm32示例程式都是基於iar開發環境的,但我認為使用

keil

mdk開發環境更加方便,可以利用rvmdk強大的外設**功能加速stm32的開發。我在以前的blog文章裡介紹過如何在rvmdk中建立stm32 工程,以及如何使用rvmdk的軟體**功能,下面我將詳細說明怎樣將已有的

iar工程

移植到rvmdk。 

不管是iar還是rvmdk,程式設計時使用的都是stm32的韌體函式庫,唯一不同的是啟動檔案。rvmdk在建立stm32工程時會自動建立啟動檔案 stm32f10x.s,而iar使用的啟動檔案是cortexm3_macro.s。此外,兩者對中斷向量表的管理也不一樣。 

在移植stm32工程時首先要檢查iar工程中是否使用了中斷。方法是要看工程中stm32f10x_it.c檔案內的各中斷函式是否為空函式,中斷函式為空說明沒有使用中斷;否則若中斷函式有修改並且在main函式中對nvic進行了設定,則說明使用了中斷。 

下面分沒有使用中斷和使用了中斷這兩種情況分別介紹移植方法。 

無中斷: 

沒使用中斷時的移植較為簡單,此時還可以使用rvmdk自動建立的啟動檔案stm32f10x.s,只要把iar工程project資料夾中的 stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和main.c等檔案複製到建立好的rvmdk工程資料夾下,然後為rvmdk工程新增使用到的庫函式檔案即可。 

有中斷: 

如果iar工程中使用了nvic時,在rvmdk下就不能再使用自動生成的stm32f10x.s啟動檔案了,但可以用iar工程中的啟動檔案 cortexm3_macro.s和stm32f10x_vector.s來替換。下面以萬利ek-stm32f開發板提供的adcdemo為例,介紹如何將iar工程移植到rvmdk。由於在adcdemo中使用到了tim2_irqhandler,需要在rvmdk中作以下修改: 

第一步、在rvmdk中建立工程,命名為adc_mdk;然後將啟動檔案cortexm3_macro.s和stm32f10x_vector.s複製到建立好的adc_mdk工程資料夾下,並在adc_mdk工程中將rvmdk自動建立的啟動檔案stm32f10x.s刪除,用以上兩個檔案替換。 

第二步、將adcdemo iar工程project資料夾中的lcd.c、lcd.h、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和main.c檔案複製到adc_mdk工程資料夾內。 

第三步、為adc_mdk工程新增使用到的庫函式檔案,然後進行編譯。 

最後的工程目錄: 

只需以上三步,不用改動任何**就能搞定iar工程的移植!只要掌握了將iar工程移植到keil mdk中的方法,就可以利用現有的大量iar stm32示例來加快在rvmdk中的開發。

IAR基於韌體庫建立STM32工程

2.複製啟動檔案 3.複製 system 相關檔案 4.複製 driver 檔案 5.複製 icf 鏈結檔案 6.複製中斷相關檔案 7.效果展示 8.file錯誤處理 9.標頭檔案路徑設定 本文以 stm32f103c8t6 為例,進行工程的建立。本文建立工程的目錄如下,各個資料夾的作用在圖中標註。...

IAR中建立STM32工程步驟 暫存器版本

鬱悶,很多東西不熟悉,建立個工程都花了些時間。先把問題和步驟寫出。先說明,是基於暫存器程式設計的。2.建立乙個stm32資料夾 不是存放工程的 存放建立stm32工程所需的基本檔案。以後再次建立工程時,只需把這個資料夾的東西拷到相應工程裡面即可。此資料夾裡面有cmsis資料夾和statup資料夾。2...

STM32F103 3 在IAR中搭建工程框架

在iar的workspace中建立如下組結構 初始化堆疊指標 cortex microcontroller software inte ce standard,此分組下的檔案用來在啟動時初始化向量表 配置系統時鐘 定義片上外設暫存器等 device 用於片上外設配置的函式的.h檔案和.c檔案 har...