打印
[PIC32/SAM]

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

[复制链接]
148|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
上高清大图:



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 | 只看该作者
使用开发环境中提供的仿真调试工具?

使用特权

评论回复
评论
yjmeishao 2023-4-10 16:43 回复TA
编译器是用RT-Thread env工具里面提供的,仿真器用的是JLink 
5
hudi008| | 2023-4-9 15:36 | 只看该作者
下载RT-Thread的最新版本(https://github.com/RT-Thread/rt-thread/releases)

使用特权

评论回复
6
beacherblack| | 2023-4-9 16:30 | 只看该作者
Keil MDK 或者 IAR Embedded Workbench,进行代码调试和单步执行吗?

使用特权

评论回复
7
pl202| | 2023-4-9 17:23 | 只看该作者
配置 RT-Thread 的内核和驱动程序,以适配 SAMA5D2 MPU。具体的配置方式可以参考 RT-Thread 官方文档和例程。

使用特权

评论回复
8
wwppd| | 2023-4-9 17:32 | 只看该作者
在 SAMA5D2 MPU 上进行仿真调试 RT-Thread RTOS,需要充分了解硬件和软件环境,熟练掌握调试工具和技巧,以快速定位和解决问题。

使用特权

评论回复
9
bartonalfred| | 2023-4-9 20:10 | 只看该作者
RT-Thread 是一个嵌入式实时操作系统,支持多种硬件平台和开发语言。

使用特权

评论回复
10
yjmeishao|  楼主 | 2023-4-10 16:44 | 只看该作者
beacherblack 发表于 2023-4-9 16:30
Keil MDK 或者 IAR Embedded Workbench,进行代码调试和单步执行吗?

IAR可以,Keil没试过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

111

帖子

1

粉丝