0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

免費測評 | 英飛凌XMC7200系列MCU在RT-Thread上的移植經(jīng)驗大公開!

RT-Thread官方賬號 ? 2024-07-11 08:36 ? 次閱讀

XMC7200是英飛凌推出的一款32位雙核CPU子系統(tǒng)(ARM Cortex-M7 和 ARM Cortex-M0)的開發(fā)板。該XMC7200D專為工業(yè)應用而設計,是一款真正的可編程嵌入式片上系統(tǒng),集成了多達兩個 350MHz Arm Cortex-M7 作為主應用處理器,一個 100MHz Arm Cortex-M0+ 。

RT-Thread已率先支持英飛凌XMC7200系列,本文將介紹RT-Thread基于開發(fā)板xmc7200-kit_xmc7200_evk的移植經(jīng)驗:

89bc8d0c-3f1d-11ef-a655-92fbcf53809c.png

XMC7200測評活動


1. 前期準備

1.1 英飛凌燒錄工具——Cypress programmer

我們把代碼編譯好后使用Cypress programmer進行燒錄。

官方下載鏈接:Cypress Programmer - Infineon Developer Center

1.2 英飛凌官方IDE——ModusToolbox

我們會使用到官方的IDE去獲取所需要的文件,如驅(qū)動文件、啟動文件、編譯腳本等等。

官方下載鏈接:ModusToolbox - Infineon Developer Center

1.3 Keil_MDK && ENV環(huán)境

ENV環(huán)境會幫我們生成Keil工程,然后使用Keil進行代碼編寫。(如果是用主線代碼,需要下載ENV2.0)

使用參考:RT-Thread之ENV工具_rt-thread env-CSDN博客

ENV2.0下載教程【重要通知】ENV-Windows v2.0.0版本發(fā)布

2. 移植準備

2.1 了解RT-Thread目錄結(jié)構(gòu)

在大多數(shù)的BSP中,都會包含一下文件:

文件名稱

文件說明

.settings

用于生成RT-Thread Studio工程

applications

存放用戶代碼,通常會有一個main.c文件

board

里面通常會放有l(wèi)inker_scripts(各類編譯器的編譯腳本)、board.c/.h(板級相關(guān)的初始化和配置)

drivers

設備驅(qū)動代碼,里面存放各種外設的驅(qū)動,例如GPIO、UART等等,一般會放在BSP上一級目錄下的libraries下的HAL_Drivers里面

figures

開發(fā)板照片以及.md說明里用到的圖片

.config, rtconfig.h, Kconfig

Kconfig配置系統(tǒng)相關(guān)文件(在本篇中不涉及語法使用教程)

rtconfig.py, SConscript, SConstruct

scons構(gòu)建系統(tǒng)相關(guān)文件(在本篇中不涉及語法使用教程)

template.uvprojx, template.uvoptx

keil模板工程

project.uvprojx, project.uvoptx

keil工程(由模板工程生成得來)

template.eww, template.ewp

iar模板工程

project.eww, project.ewp

iar工程

在了解了目錄以后我們就能根據(jù)所需要的文件一步一步完成BSP了。

2.2 使用ModusToolBox生成示例工程

2.2.1 生成工程

接下來我們使用官方的IDE生成一個示例工程獲取其驅(qū)動庫、啟動文件、鏈接腳本等。

89f11a36-3f1d-11ef-a655-92fbcf53809c.png

在彈出的窗口中選擇我們本次用到的芯片類型然后點擊Next。

89fd2290-3f1d-11ef-a655-92fbcf53809c.png

然后選擇‘Hello World’工程,選擇好保存位置后就可以創(chuàng)建了。

8a07d50a-3f1d-11ef-a655-92fbcf53809c.png

2.2.2 生成文件

2.2.2.1 mtb_shared文件

當我們的工程創(chuàng)建好以后,我們會使用到這兩個文件

8a2e5bb2-3f1d-11ef-a655-92fbcf53809c.png

在mtb_shared里面存放著:

8a38eba4-3f1d-11ef-a655-92fbcf53809c.png

我們會使用到下面的文件

文件名稱

文件說明

cat1cm0p

包含了與基于 Cortex-M0+ 核心的微控制器相關(guān)的代碼和資源,低功耗的控制代碼

cmsis

ARM的一套標準化軟件接口

core-lib

核心庫,定義一些參數(shù)、類型的值

mtb-hal-cat1

硬件抽象層庫

mtb-pdl-cat1

硬件驅(qū)動層庫

retarget-io

包含重定向輸入輸出的文件

2.2.2.2 工程下文件

8a4d0648-3f1d-11ef-a655-92fbcf53809c.png

在生成的示例工程中,bsps目錄下會存放著相應開發(fā)板的相關(guān)鏈接腳本以、包含板載初始化的文件以及啟動文件,這個我們待會也會使用到。

3. 文件移植

我們在同系列下新建一個文件夾。

8a74d6be-3f1d-11ef-a655-92fbcf53809c.png

3.1 applications文件

在這個文件夾中我們存放的是用戶代碼,一般初始的時候只有一個main.c和一個Sconscript??梢匀テ渌盗袕椭埔粋€applications文件夾過來放在底下。

3.2 board文件

在這個文件中存放的是一些編譯器鏈接腳本以及板載初始化用到的文件。

3.2.1 鏈接腳本

鏈接腳本我們?nèi)サ绞纠こ滔抡遥?/p>

8a931fe8-3f1d-11ef-a655-92fbcf53809c.png

把其修改好名稱后放在board下的linker_scripts文件夾下。

8aae1898-3f1d-11ef-a655-92fbcf53809c.png

3.2.2 board.c/.h文件

在board.c/.h文件中,一般會存放一些在板載初始化階段要使用的函數(shù),每個廠商需要的初始化流程不同,會有不一樣內(nèi)容。在本次移植中,就需要加入cybsp_init()功能,這個函數(shù)可以幫我們配置系統(tǒng)時鐘、電源管理和資源管理等。這個可以去同系列里面復制粘貼過來就好。

8ad73f8e-3f1d-11ef-a655-92fbcf53809c.png

然后就是要修改board.h里面的SRAM大小跟起始地址,這個需要查看芯片的數(shù)據(jù)書冊。

8af68196-3f1d-11ef-a655-92fbcf53809c.png

3.2.3 Scons&&KConfig

還有就是Scons跟KConfig文件,這個主要是涉及編譯跟配置的,這個復制過來以后需要做一些修改。

8b03289c-3f1d-11ef-a655-92fbcf53809c.png

首先就是需要指定一下不同編譯器實現(xiàn)底層系統(tǒng)庫函數(shù),這個源文件在mtb_shared目錄下。

8b0749f4-3f1d-11ef-a655-92fbcf53809c.png

然后是各種參與編譯的宏,這個需要使用到ModusToolBox編譯示例工程,然后在生成的compile_commands.json里尋找以-D開頭的參數(shù),這些都是參與編譯的宏。然后把這些宏加入到Sconscript里面。

8b296d22-3f1d-11ef-a655-92fbcf53809c.png8b346434-3f1d-11ef-a655-92fbcf53809c.png

然后是Kconfig的,在這里配置我們需要使用的外設選項,本次移植只需要使用到串口跟GPIO,所以板載外設配置里面就只有這里兩項配置。在復制文件過來的基礎上進行增刪改就可以了。在硬件驅(qū)動配置這里我們仿照其它系列進行修改。同時也要在libraries下的Konfig進行修改(后面有提及)。

8b548cc8-3f1d-11ef-a655-92fbcf53809c.png

3.3 lib文件

我們需要把剛剛示例工程下生成bsps目錄下的TARGET_APP_KIT_XMC72_EVK文件復制過來,同時也要編寫一個Sconscript,在這里我們需要使用到里面的配置、啟動文件。

8b7ae42c-3f1d-11ef-a655-92fbcf53809c.png8b917f3e-3f1d-11ef-a655-92fbcf53809c.png

3.4 MDK工程

先從其它工程里面把有關(guān)MDK的工程文件復制過來。

8bc0fd36-3f1d-11ef-a655-92fbcf53809c.png

然后修改模板工程里面的芯片類型。如果沒有顯示的話需要先下載一下英飛凌的Pack包。

可以通過Keil內(nèi)置的下載器下載,也可通過鏈接路徑下載

8be12d22-3f1d-11ef-a655-92fbcf53809c.png8c03dfe8-3f1d-11ef-a655-92fbcf53809c.png

下載路徑:https://raw.githubusercontent.com/Infineon/cmsis-packs/master/CAT1C_DFP/Infineon.CAT1C_DFP.1.0.0.pack

3.5 rtconfig.h/.py、Konfig、.config

這幾個文件是負責硬件配置相關(guān)的,我們復制過來后可以根據(jù)需求直接修改.config里面的設置,然后用ENV進入menuconfig保存一下更新rtconfig.h。例如這里需要把控制臺串口設置為串口3。

8c17ac08-3f1d-11ef-a655-92fbcf53809c.png

也可以用ENV進入到menuconfig里面去修改:

8c226ab2-3f1d-11ef-a655-92fbcf53809c.png

3.6 SConscript、SConsturct

這類型的文件主要與編譯相關(guān)。從其它BSP復制過來后,SConscript文件一般不需要進行修改,SConstruct文件要看自己的需要修改一下文件路徑。

如這里將英飛凌驅(qū)動庫做成了軟件包的形式,就需要重新指定一下路徑,大家根據(jù)自己的需求修改。

8c467204-3f1d-11ef-a655-92fbcf53809c.png

3.7 Libraries修改

3.7.1 修改Kconfig

在libraries目錄下的Kconfig里,我們需要添加上我們的板子信息,仿照其它系列就好了。

8c4f680a-3f1d-11ef-a655-92fbcf53809c.png

3.7.2 修改HAL_Drivers文件

在驅(qū)動庫中,有些地方還需要我們進行調(diào)整。

在uart_config.h里,修改串口的引腳。

8c709caa-3f1d-11ef-a655-92fbcf53809c.png

不同于已適配的英飛凌Psoc6系列,中斷配置會有所不同,這里也需要修改。如果是相同系列同樣配置的話無需操作。

8c9442c2-3f1d-11ef-a655-92fbcf53809c.png8caa2204-3f1d-11ef-a655-92fbcf53809c.png

4. 做成軟件包

移植工作完成后,我發(fā)現(xiàn)英飛凌自身的驅(qū)動庫體積比較大,所以將其整合了一下,做成了軟件包的形式。同時也將其它系列也修改為依賴軟件包的形式,大家在使用的時候記得先進入ENV中使用pkgs --update的命令將軟件包下載下來。如果是其它系列的則可以參考其它文章將生成的驅(qū)動庫放在合適的位置。

8cc2ba8a-3f1d-11ef-a655-92fbcf53809c.png

5. 使用

到這里就適配完成了,接下來就是進行編譯與下載。

5.1 生成MDK工程

待軟件包安裝好后,在ENV環(huán)境下輸入SCons --target==MDK5命令,ENV會自動生成MDK5工程。

8cd9fdee-3f1d-11ef-a655-92fbcf53809c.png8cf25ac4-3f1d-11ef-a655-92fbcf53809c.png

然后進入MDK中進行編譯

8d212570-3f1d-11ef-a655-92fbcf53809c.png

(可以看到,剛剛所寫的編譯宏會顯示在這里)

8d42aac4-3f1d-11ef-a655-92fbcf53809c.png

這里記得勾選上生成HEX文件用于待會的燒錄

8d4ce07a-3f1d-11ef-a655-92fbcf53809c.png

5.2 燒錄

打開官方的燒錄軟件Cypress。選擇好對應的板子。

8d66f67c-3f1d-11ef-a655-92fbcf53809c.png

選擇剛剛編譯好的.hex然后點擊連接。

8d8c346e-3f1d-11ef-a655-92fbcf53809c.png

然后點擊這個按鈕進行下載即可

8d98d8e0-3f1d-11ef-a655-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 英飛凌
    +關(guān)注

    關(guān)注

    66

    文章

    2134

    瀏覽量

    138255
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349914
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1261

    瀏覽量

    39836
收藏 人收藏

    評論

    相關(guān)推薦

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    嵌入式軟件工程師郭占鑫老師為您講解有關(guān)技術(shù)知識和實踐經(jīng)驗。通過本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺提升系統(tǒng)實時
    的頭像 發(fā)表于 05-28 08:35 ?385次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    XMC7200是否支持從外部QSPI/OctalSPI閃存到XMC7200內(nèi)部SRAM的M-DMA傳輸?

    我的團隊正在進行一項關(guān)于項目中使用 XMC7200 的可行性研究。 我們的一個要求是從外部閃存向 XMC7200 內(nèi)部 SRAM 進行 DMA 傳輸。 我們考慮使用的外部閃存是 QSPI 或
    發(fā)表于 05-27 08:26

    【本周六-上?!?b class='flag-5'>RT-Thread+NXP線下培訓,快速上手新系列MCU

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結(jié)合RT-Thread的應用與實踐線下培訓。我們將為大家?guī)矶髦瞧諱CXN
    的頭像 發(fā)表于 05-22 08:35 ?476次閱讀
    【本周六-上?!?b class='flag-5'>RT-Thread</b>+NXP線下培訓,快速上手新<b class='flag-5'>系列</b><b class='flag-5'>MCU</b>

    XMC7200 ETH1可以使用RMII嗎?

    大家好, 我正試圖使用 XMC7200 的設備設計一個以太網(wǎng)連接器。 我想使用 RMII - 根據(jù)手冊,我需要以下信號: 另外,我不確定 ETHx_RXD 的手冊寫的行數(shù)是 4
    發(fā)表于 05-20 08:21

    【上?!?月25日-基于恩智浦MCX N系列MCU結(jié)合RT-Thread的應用與實踐 線下培訓

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結(jié)合RT-Thread的應用與實踐線下培訓。我們將為大家?guī)矶髦瞧諱CXN
    的頭像 發(fā)表于 05-13 18:19 ?670次閱讀
    【上海】5月25日-基于恩智浦MCX N<b class='flag-5'>系列</b><b class='flag-5'>MCU</b>結(jié)合<b class='flag-5'>RT-Thread</b>的應用與實踐 線下培訓

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    嵌入式軟件工程師郭占鑫老師為您講解有關(guān)技術(shù)知識和實踐經(jīng)驗。通過本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺提升系統(tǒng)
    的頭像 發(fā)表于 04-16 08:35 ?382次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    RT-Thread x 英飛凌圖像處理和識別入門培訓順利收官

    在上海全球先鋒開發(fā)者大會(GDC),RT-Thread與全球知名半導體公司英飛凌聯(lián)手舉辦了一場別開生面的實踐工作坊。本次工作坊的主題聚焦于“圖像處理和識別入門”,為參會者提供了一次難得的實戰(zhàn)
    的頭像 發(fā)表于 03-29 08:34 ?372次閱讀
    <b class='flag-5'>RT-Thread</b> x <b class='flag-5'>英飛凌</b>圖像處理和識別入門培訓順利收官

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,瑞芯微RK3568平臺實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到
    的頭像 發(fā)表于 03-27 11:36 ?742次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    嵌入式軟件工程師農(nóng)曉明老師為您講解有關(guān)技術(shù)知識和實踐經(jīng)驗。通過本次workshop能深入理解RT-Thread專業(yè)版與混合部署的潛力,RK3568平臺提升系統(tǒng)實
    的頭像 發(fā)表于 03-27 08:34 ?464次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    將應用程序從XMC7200開發(fā)套件移植XMC7100芯片的指南/時鐘問題求解

    我正在為 XMC7100D-F176K4160AA開發(fā)一個應用程序。 我首先開發(fā)了這個應用程序,然后 XMC7200 開發(fā)套件運行它。 效果很好,一切都很順利。 但是,我們剛剛收到
    發(fā)表于 01-30 06:04

    如何在DAVE IDE中使用XMC7200?

    能否 DAVE IDE 中為 XMC 7200 EVK KIT 構(gòu)建應用程序。我嘗試打開一個項目但它最多只能顯示 XMC48000。如何在 DAVE IDE 中使用
    發(fā)表于 01-26 06:32

    xmc7200如何將KEIL的算法庫移植到MTB?

    你好我正在使用xmc7200芯片,我想將 KEIL 算法庫移植到MTB使用,我應該如何操作?最好的問候
    發(fā)表于 01-25 06:08

    【PSoC?62 for RT-ThreadRT-Thread攜手英飛凌舉辦嵌入式網(wǎng)絡應用開發(fā)沙龍,圓滿落幕!

    2023年12月09日,深圳,全球半導體解決方案的領(lǐng)導者英飛凌科技(中國)有限公司(以下簡稱:英飛凌)與上海睿賽德電子科技有限公司(RT-Thread深圳塘朗聯(lián)合舉辦了“嵌入式網(wǎng)絡
    的頭像 發(fā)表于 12-14 16:25 ?515次閱讀
    【PSoC?62 for <b class='flag-5'>RT-Thread</b>】<b class='flag-5'>RT-Thread</b>攜手<b class='flag-5'>英飛凌</b>舉辦嵌入式網(wǎng)絡應用開發(fā)沙龍,圓滿落幕!

    BL808 RT-Thread Wi-Fi驅(qū)動適配

    BL808 WiFi 屬于 SOC 單芯片型無線 MCU,片上集成 WiFi 功能,移植 RT-Thread 過程中,需要使用 RT-Thread wlan 框架。
    的頭像 發(fā)表于 12-04 11:38 ?807次閱讀

    RT-thread源碼移植到STM32F10x和STM32F4xx

    RT-thread源碼移植到STM32F10x和STM32F4xx: 一、源碼下載 點擊入門->下載 ? 歷史版本里邊隨便選取一個 ? 會進入百度云盤的下載地址,里邊有全部版本的源碼。這里下載
    的頭像 發(fā)表于 11-15 09:38 ?2360次閱讀
    <b class='flag-5'>RT-thread</b>源碼<b class='flag-5'>移植</b>到STM32F10x和STM32F4xx