新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Keil MDK轉(zhuǎn)換詳解“>STM32 IAR工程->Keil MDK轉(zhuǎn)換詳解

Keil MDK轉(zhuǎn)換詳解“>STM32 IAR工程->Keil MDK轉(zhuǎn)換詳解

作者: 時間:2016-11-20 來源:網(wǎng)絡 收藏
我在STM32的學習中發(fā)現(xiàn),大部分的STM32示例程序都是基于IAR開發(fā)環(huán)境的,但我認為使用Keil MDK開發(fā)環(huán)境更加方便,可以利用RVMDK強大的外設仿真功能加速STM32的開發(fā)。我在以前的Blog文章里介紹過如何在RVMDK中建立STM32 工程,以及如何使用RVMDK的軟件仿真功能,下面我將詳細說明怎樣將已有的IAR工程移植到RVMDK。

不管是IAR還是RVMDK,編程時使用的都是STM32的固件函數(shù)庫,唯一不同的是啟動文件。RVMDK在建立STM32工程時會自動創(chuàng)建啟動文件 STM32F10x.s,而IAR使用的啟動文件是cortexm3_macro.s。此外,兩者對中斷向量表的管理也不一樣。
在移植STM32工程時首先要檢查IAR工程中是否使用了中斷。方法是要看工程中stm32f10x_it.c文件內(nèi)的各中斷函數(shù)是否為空函數(shù),中斷函數(shù)為空說明沒有使用中斷;否則若中斷函數(shù)有修改并且在main函數(shù)中對NVIC進行了設置,則說明使用了中斷。
下面分沒有使用中斷和使用了中斷這兩種情況分別介紹移植方法。
無中斷:
沒使用中斷時的移植較為簡單,此時還可以使用RVMDK自動創(chuàng)建的啟動文件STM32F10x.s,只要把IAR工程project文件夾中的 stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和main.c等文件復制到建立好的RVMDK工程文件夾下,然后為RVMDK工程添加使用到的庫函數(shù)文件即可。
有中斷:
如果IAR工程中使用了NVIC時,在RVMDK下就不能再使用自動生成的STM32F10x.s啟動文件了,但可以用IAR工程中的啟動文件 cortexm3_macro.s和stm32f10x_vector.s來替換。下面以萬利EK-STM32F開發(fā)板提供的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工程文件夾內(nèi)。

第三步、為ADC_MDK工程添加使用到的庫函數(shù)文件,然后進行編譯。
最后的工程目錄:

只需以上三步,不用改動任何代碼就能搞定IAR工程的移植!只要掌握了將IAR工程移植到Keil MDK中的方法,就可以利用現(xiàn)有的大量IAR STM32示例來加快在RVMDK中的開發(fā)。

本文引用地址:http://butianyuan.cn/article/201611/318950.htm


評論


技術專區(qū)

關閉