新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Keil MDK轉換詳解“>STM32 IAR工程->Keil MDK轉換詳解

        Keil MDK轉換詳解“>STM32 IAR工程->Keil MDK轉換詳解

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

        本文引用地址:http://www.104case.com/article/201611/320910.htm

        不管是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工程添加使用到的庫函數文件,然后進行編譯。

        最后的工程目錄:

        cortexm3_macro.s和stm32f10x_vector.s啟動文件:

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




        關鍵詞: STM32IAR工程MD

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 陆河县| 安岳县| 勃利县| 乐昌市| 象州县| 宜良县| 汾西县| 浦东新区| 黑山县| 琼海市| 府谷县| 遵化市| 汾西县| 昭苏县| 长丰县| 革吉县| 开平市| 海兴县| 英吉沙县| 苗栗县| 什邡市| 北宁市| 金门县| 达拉特旗| 达日县| 吉首市| 云浮市| 乌拉特后旗| 汽车| 常德市| 宣化县| 兰溪市| 水富县| 兴海县| 赣榆县| 苏州市| 永修县| 缙云县| 蓬莱市| 福建省| 牟定县|