XMC7200是英飛凌推出的一款32位雙核CPU子系統(ARM Cortex-M7 和 ARM Cortex-M0)的開發板。該XMC7200D專為工業應用而設計,是一款真正的可編程嵌入式片上系統,集成了多達兩個 350MHz Arm® Cortex-M7® 作為主應用處理器,一個 100MHz Arm® Cortex-M0®+ 。
RT-Thread已經支持英飛凌XMC7200系列,本文將介紹RT-Thread基於開發板xmc7200-kit_xmc7200_evk的移植經驗:
1.前期準備
1.1 英飛凌燒錄工具——Cypress programmer
我們把代碼編譯好後使用Cypress programmer進行燒錄。
官方下載鏈接:Cypress Programmer - Infineon Developer Center
1.2 英飛凌官方IDE——ModusToolbox™
我們會使用到官方的IDE去獲取所需要的文件,如驅動文件、啟動文件、編譯腳本等等。
官方下載鏈接:ModusToolbox™ - Infineon Developer Center
1.3 Keil_MDK && ENV環境
ENV環境會幫我們生成Keil工程,然後使用Keil進行代碼編寫。(如果是用主線代碼,需要下載ENV2.0)
使用參考:RT-Thread之ENV工具_rt-thread env-CSDN博客
ENV2.0下載教程:【重要通知】ENV-Windows v2.0.0版本發布
2.移植準備
2.1 了解RT-Thread目錄結構
在大多數的BSP中,都會包含以下文件:
在了解了目錄以後我們就能根據所需要的文件一步一步完成BSP了。
2.2 使用ModusToolBox生成示例工程
2.2.1 生成工程
接下來我們使用官方的IDE生成一個示例工程獲取其驅動庫、啟動文件、鏈接腳本等。
在彈出的窗口中選擇我們本次用到的晶片類型然後點擊Next。
然後選擇‘Hello World’工程,選擇好保存位置後就可以創建了。
2.2.2 生成文件
2.2.2.1 mtb_shared文件
當我們的工程創建好以後,我們會使用到這兩個文件:
在mtb_shared裡面存放著:
我們會使用到下面的文件:
2.2.2.2 工程下文件
在生成的示例工程中,bsps目錄下會存放著相應開發板的相關鏈接腳本、包含板載初始化的文件以及啟動文件,這個我們待會也會使用到。
3.文件移植
我們在同系列下新建一個文件夾。
3.1 applications文件
在這個文件夾中我們存放的是用戶代碼,一般初始的時候只有一個main.c和一個Sconscript。可以去其他系列複製一個applications文件夾過來。
3.2 board文件
在這個文件中存放的是一些編譯器鏈接腳本以及板載初始化用到的文件。
3.2.1 鏈接腳本
鏈接腳本我們去示例工程下找:
把它修改好名稱後放在board下的linker_scripts文件夾下。
3.2.2 board.c/.h文件
在board.c/.h文件中,一般會存放一些在板載初始化階段要使用的函數。在本次移植中,需要加入cybsp_init()功能,這個函數可以幫我們配置系統時鐘、電源管理和資源管理等。可以去同系列裡面複製粘貼過來。
接下來就要修改board.h裡面的SRAM大小跟起始地址,這個需要查看晶片的數據書冊。
3.2.3 Scons&&KConfig
還有Scons跟KConfig文件,這個主要是涉及編譯跟配置的,這個複製過來以後需要做一些修改。
首先需要指定一下不同編譯器實現底層系統庫函數,這個源文件在mtb_shared目錄下。
然後是各種參與編譯的宏,這個需要使用到ModusToolbox編譯示例工程,然後在生成的compile_commands.json里尋找以-D開頭的參數,這些都是參與編譯的宏。然後把這些宏加入到Sconscript裡面。
然後是Kconfig的,在這裡配置我們需要使用的外設選項,本次移植只需要使用到串口跟GPIO,所以板載外設配置裡面就只有這裡兩項配置。在複製文件過來的基礎上進行增刪改就可以了。在硬體驅動配置這裡我們仿照其它系列進行修改。同時也要在libraries下的Konfig進行修改(後文有提及)。
3.3 lib文件
我們需要把剛剛示例工程下生成bsps目錄下的TARGET_APP_KIT_XMC72_EVK文件複製過來,同時也要編寫一個Sconscript,在這裡我們需要使用到裡面的配置、啟動文件。
3.4 MDK工程
先從其它工程裡面把有關MDK的工程文件複製過來。
然後修改模板工程裡面的晶片類型。如果沒有顯示的話需要先下載Pack包。
可以通過Keil內置的下載器下載,也可通過鏈接路徑下載。
下載路徑:點擊下載
3.5 rtconfig.h/.py、Konfig、.config
這幾個文件是負責硬體配置相關的,我們複製過來後可以根據需求直接修改.config裡面的設置,然後用ENV進入menuconfig保存一下更新rtconfig.h。例如這裡需要把控制台串口設置為串口3。
也可以用ENV進入到menuconfig裡面去修改:
3.6 SConscript、SConsturct
這類型的文件主要與編譯相關。從其它BSP複製過來後,SConscript文件一般不需要進行修改,SConstruct文件要根據自己的需要修改一下文件路徑。
如這裡將驅動庫做成了軟體包的形式,就需要重新指定路徑,根據自己的需求修改。
3.7 Libraries修改
3.7.1 修改Kconfig
在libraries目錄下的Kconfig里,我們需要添加上我們的板子信息,仿照其它系列就好了。
3.7.2 修改HAL_Drivers文件
在驅動庫中,有些地方還需要我們進行調整。
在uart_config.h里,修改串口的引腳。
不同於已適配的英飛凌PSoC™ 6系列,中斷配置會有所不同,這裡也需要修改。如果是相同系列同樣配置的話無需操作。
4.做成軟體包
移植工作完成後,由於驅動庫體積比較大,我將其整合了一下,做成了軟體包的形式。同時也將其它系列也修改為依賴軟體包的形式,大家在使用的時候記得先進入ENV中使用pkgs --update的命令將軟體包下載下來。如果是其它系列的則可以參考其它文章將生成的驅動庫放在合適的位置。
5.使用
到這裡就適配完成了,接下來就是進行編譯與下載
5.1 生成MDK工程
待軟體包安裝好後,在ENV環境下輸入SCons --target==MDK5命令,ENV會自動生成MDK5工程。
然後進入MDK中進行編譯
可以看到,剛剛所寫的編譯宏會顯示在這裡
這裡記得勾選生成HEX文件用於待會的燒錄。
5.2 燒錄
打開官方的燒錄軟體Cypress,選擇好對應的板子。
選擇剛剛編譯好的.hex然後點擊連接。
點擊Program按鈕進行下載即可。
掃描二維碼, 關注英飛凌官微尋找更多應用或產品信息
評論