新聞中心

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

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

        作者: 時間:2016-11-20 來源:網絡 收藏
        我在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中的開發。

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


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 蓬安县| 新竹市| 阿拉善右旗| 泰宁县| 中方县| 辰溪县| 嘉义市| 黄冈市| 廉江市| 中卫市| 盘山县| 尉氏县| 南岸区| 清徐县| 武川县| 牡丹江市| 保靖县| 上高县| 五大连池市| 荆门市| 勃利县| 治多县| 高台县| 永川市| 磐石市| 都兰县| 当涂县| 清水县| 漳州市| 宝坻区| 桃江县| 齐齐哈尔市| 武威市| 松溪县| 连州市| 柯坪县| 黔南| 通河县| 镇沅| 特克斯县| 广灵县|