在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的连接和下载校验。
RT-Thread 提供了多种开发环境和工具链,可以根据自己的习惯和需求选择合适的开发环境 在进行仿真调试之前,需要保证 SAMA5D2 开发板已经正确连接到开发环境中,并通过仿真器连接到调试工具中。 使用开发环境中提供的仿真调试工具? 下载RT-Thread的最新版本(https://github.com/RT-Thread/rt-thread/releases) Keil MDK 或者 IAR Embedded Workbench,进行代码调试和单步执行吗? 配置 RT-Thread 的内核和驱动程序,以适配 SAMA5D2 MPU。具体的配置方式可以参考 RT-Thread 官方文档和例程。 在 SAMA5D2 MPU 上进行仿真调试 RT-Thread RTOS,需要充分了解硬件和软件环境,熟练掌握调试工具和技巧,以快速定位和解决问题。 RT-Thread 是一个嵌入式实时操作系统,支持多种硬件平台和开发语言。 beacherblack 发表于 2023-4-9 16:30
Keil MDK 或者 IAR Embedded Workbench,进行代码调试和单步执行吗?
IAR可以,Keil没试过
页:
[1]