1. 程式人生 > >使用VisualGDB將Keil專案匯入VisualStudio

使用VisualGDB將Keil專案匯入VisualStudio

前言

本教程展示瞭如何使用新的Keil專案匯入器將Keil ARM專案自動轉換為使用MSBuild和GCC構建的VisualGDB專案。在開始之前,安裝VisualGDB 5.3或更高版本。

我們將展示如何為STM32F746-Discovery board(附帶STM32CubeMX SDK)轉換STM32演示專案。雖然大多數轉換是自動執行的,但是專案需要進行一些小的調整才能正常工作。我們將概述這些調整,並解釋為什麼需要這些調整。

步驟

1、 下載並解壓STM32Cube SDK用於STM32F7,並找到Keil的演示專案檔案(通常在STM32Cube_FW_F7_Vx.y.zProjectsSTM32746G-DiscoveryDemonstrationMDK-ARM)

使用VisualGDB將Keil專案匯入VisualStudio

 

2、 啟動Visual Studio並開啟 VisualGDB Embedded Project Wizard

使用VisualGDB將Keil專案匯入VisualStudio

 

3、選擇“自動匯入不同格式的專案->匯入現有Keil專案”。然後指定位於前面的.uvprojx檔案

使用VisualGDB將Keil專案匯入VisualStudio

 

4、點選“下一步”,VisualGDB會自動從專案中檢測裝置型別並選擇相應的裝置,點選“下一步”繼續:

使用VisualGDB將Keil專案匯入VisualStudio

 

5、連線你的板到USB埠。VisualGDB會自動檢測ST-Link型別並顯示在Debug方法頁面:

使用VisualGDB將Keil專案匯入VisualStudio

 

6、按“Finish”生成專案。VisualGDB將自動匯入原始檔,包括Keil專案中的目錄和前處理器巨集。但是STM32F746NG-Discovery演示專案檔案缺少一個include目錄,因此初始構建將失敗。然而VisualGDB將自動發現丟失的目錄,並讓您只需按“新增現在”即可將其新增到設定中:

使用VisualGDB將Keil專案匯入VisualStudio

 

7、另一個錯誤是lwIP庫重新定義了gcc已經定義的時間值結構:

使用VisualGDB將Keil專案匯入VisualStudio

 

8、這是很容易修復通過設定LWIP_TIMEVAL_PRIVATE通過VisualGDB專案屬性-> MSBuild設定:

使用VisualGDB將Keil專案匯入VisualStudio

 

9、另一個構建錯誤將由預設的軟體浮點模式和專案中包含的FreeRTOS埠之間的不相容引起:

error : selected processor does not support `vstmdbeq r0!,{s16-s31}' in Thumb mode
error : instruction not allowed in IT block -- `stmdb r0!,{r4-r11,r14}'
error : selected processor does not support `vldmiaeq r0!,{s16-s31}' in Thumb mode
error : instruction not allowed in IT block -- `msr psp,r0'

使用VisualGDB將Keil專案匯入VisualStudio

 

10、要解決這個問題,可以通過VisualGDB專案屬性將“浮點支援”設定為“硬體”:

使用VisualGDB將Keil專案匯入VisualStudio

 

11、最後連結原專案會導致“FLASH溢位”錯誤:

使用VisualGDB將Keil專案匯入VisualStudio

 

這是因為專案包含了一個特殊的資料部分,該部分需要放入QSPI記憶體中,而Keil匯入器不能自動轉換它。

12、解決這個問題的一種方法是使用VisualGDB專案屬性的附加記憶體頁面,讓VisualGDB自動編輯連結器指令碼,但是由於ST演示專案已經包含了正確格式的GCC連結器指令碼,我們可以簡單地將VisualGDB指向它的位置(通常情況下 ProjectsSTM32746G-DiscoveryDemonstrationSW4STM32STM32F7-DISCOSTM32F746NGHx_FLASH.ld):

使用VisualGDB將Keil專案匯入VisualStudio

 

13、最後,我們需要配置VisualGDB來自動程式設計QSPI記憶體內容。這是通過使用本教程中描述的VisualGDB FLASH程式設計外掛實現的。將載入FLASH外掛教程中描述的命令載入到OpenOCD命令列中,並按“OK”儲存設定:

使用VisualGDB將Keil專案匯入VisualStudio

 

14、現在你只需點選F5, VisualGDB就會自動將專案載入到面板中:

使用VisualGDB將Keil專案匯入VisualStudio

 

15、載入完成後,您應該在裝置螢幕上看到STM32程式:

使用VisualGDB將Keil專案匯入VisualStudio