[PIC32/SAM] 在SAMA5D2 MPU上仿真调试RT-Thread RTOS

[复制链接]
 楼主| yjmeishao 发表于 2023-3-27 17:03 | 显示全部楼层 |阅读模式
上高清大图:



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 | 显示全部楼层
使用开发环境中提供的仿真调试工具?

评论

编译器是用RT-Thread env工具里面提供的,仿真器用的是JLink  发表于 2023-4-10 16:43
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没试过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

111

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部