免费测评 | 英飞凌XMC7200系列MCU在RT-Thread上的移植经验大公开!
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 的移植经验:
前期准备
移植准备
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.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系列,中断配置会有所不同,这里也需要修改。如果是相同系列同样配置的话无需操作。
做成软件包
移植工作完成后,由于驱动库体积比较大,我将其整合了一下,做成了软件包的形式。同时也将其它系列也修改为依赖软件包的形式,大家在使用的时候记得先进入ENV中使用pkgs --update的命令将软件包下载下来。如果是其它系列的则可以参考其它文章将生成的驱动库放在合适的位置。
使用
到这里就适配完成了,接下来就是进行编译与下载。
5.1 生成MDK工程
待软件包安装好后,在ENV环境下输入SCons --target==MDK5命令,ENV会自动生成MDK5工程。
然后进入MDK中进行编译
可以看到,刚刚所写的编译宏会显示在这里
这里记得勾选生成HEX文件用于待会的烧录。
5.2 烧录
打开官方的烧录软件Cypress,选择好对应的板子。
选择刚刚编译好的.hex然后点击连接。
点击Program按钮进行下载即可。
想寻找 更多应用 或产品信息 ?
想联系我们 购买产品 ?
欢迎扫描二维码 并填写表单,
我们将后续跟进。