yjmeishao 发表于 2023-3-27 17:03

在SAMA5D2 MPU上仿真调试RT-Thread RTOS

上高清大图:



MPU的开发相对MCU还是要复杂很多,整个开发环境的搭建需要用到以下工具和代码:

[*]at91bootstrap代码 - 用于MPU boot时初始化系统时钟、打印输出接口、DDR3控制器等,来源Microchip放在Github上的源码。
[*]SAMA5D27 Harmony3工程 - 用到Microchip MPLab X工具和Harmony3配置工具,来完成对SAMA5D27的时钟和外设驱动的配置以及生成Bare-metal代码。
[*]RT-Thread源码 - 来自Github,clone后将SAMA5D27的Bare-metal代码加入到RT里面,配置好编译依赖关系,等待编译。
[*]env tools - 从RT-Thread官网给出的链接进行下载,用来编译RT-Thread源码和SAMA5D27 Bare-meta代码。
[*]Eclipse for Embedded CPP - 集成开发IDE,主要用来建立代码调试仿真环境。由于Eclipse提供的Debug功能支持直接导入ELF文件进行调试,而且提供对Jlink等仿真工具的支持,所以选用了该工具。
[*]Segger软件工具 - 需要用到JLinkGDBServer,用来和第三方GDB工具配合完成代码的下载和调试工作
[*]arm-none-eabi工具 - 下载于ARM官网,用到其提供的GDB工具

MPU的代码移植工具耗费了非常多的时间,接下来简单说明下搭建开发时需要做的一些软件的工作吧:

[*]在Linux下用arm-none-eabi-gcc工具编译了at91bootstrap代码,Microchip给出的代码提供了多种配置,选用好配置文件后,记得设置为不加载应用模式,然后make就可以编译出二级bootloader代码。
[*]重新建立了libcpu目录,没有直接使用RT-Thread源码,在原来代码上做了修改,因为Microchip MPU支持中断向量的remap,来提升中断响应效率。要改的地方太多,所以重建目录自己一点点改和调试,调试启动代码部分确实非常痛苦。
[*]Eclipse下在配置debug工具的时候,由于Windows下GDB软件无法提供--version的响应,需要手动启动JLinkGDBServer,在Linux没有这个问题。另外要配置一个脚本,用于开始load RT-Thread代码之前先将at91bootstrap生成的boot文件下载到内部SRAM并执行。
[*]每次调试后都需要手动复位一次MPU来保证GDB的连接和下载校验。




sesefadou 发表于 2023-4-9 13:50

RT-Thread 提供了多种开发环境和工具链,可以根据自己的习惯和需求选择合适的开发环境

wengh2016 发表于 2023-4-9 14:19

在进行仿真调试之前,需要保证 SAMA5D2 开发板已经正确连接到开发环境中,并通过仿真器连接到调试工具中。

pl202 发表于 2023-4-9 15:10

使用开发环境中提供的仿真调试工具?

hudi008 发表于 2023-4-9 15:36

下载RT-Thread的最新版本(https://github.com/RT-Thread/rt-thread/releases)

beacherblack 发表于 2023-4-9 16:30

Keil MDK 或者 IAR Embedded Workbench,进行代码调试和单步执行吗?

pl202 发表于 2023-4-9 17:23

配置 RT-Thread 的内核和驱动程序,以适配 SAMA5D2 MPU。具体的配置方式可以参考 RT-Thread 官方文档和例程。

wwppd 发表于 2023-4-9 17:32

在 SAMA5D2 MPU 上进行仿真调试 RT-Thread RTOS,需要充分了解硬件和软件环境,熟练掌握调试工具和技巧,以快速定位和解决问题。

bartonalfred 发表于 2023-4-9 20:10

RT-Thread 是一个嵌入式实时操作系统,支持多种硬件平台和开发语言。

yjmeishao 发表于 2023-4-10 16:44

beacherblack 发表于 2023-4-9 16:30
Keil MDK 或者 IAR Embedded Workbench,进行代码调试和单步执行吗?

IAR可以,Keil没试过
页: [1]
查看完整版本: 在SAMA5D2 MPU上仿真调试RT-Thread RTOS