[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread

文章目录

  • [攻城狮计划]|如何优雅的在RA2E1上运行RT_Thread
    • 准备阶段
      • 开发板
      • 开发环境
      • 下载BSP
      • 编译烧录
    • 连接串口
    • 总结

[攻城狮计划]|如何优雅的在RA2E1上运行RT_Thread

开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯和 瑞萨MCU 联合发起的「 致敬未来的攻城狮计划 」的第 1 天,点击查看活动计划详情

首先非常感谢李老师能给我参加这个计划的机会,让我有机会接触到许多的开发板,同时也感谢瑞萨官方 为我们提供的开发板。在参加活动的期间,结识了许多的大佬,让我收获了许多的知识,我感觉短短的几天,收获的知识与开发经验比自己独自学习几个月的收获还要多。所以,希望各位大佬们也能加入李老师的这个活动 ,而且,李老师水平真的很高,而且非常耐心,谁来谁知道!!!!

好了,接下来我们开始进入今天的主题,如何在在RA2E1上优雅地运行RT_Thread!

同时本文会介绍大量在移植过程中遇到的问题,争取做到大家都能完美复现。


准备阶段


开发板

首先,我们得准备一块RA2E1开发板,大致就是下图这样,有一说一,感觉瑞萨的板子还是蛮好看的。RA2E1 产品群是 RA 系列的入门级单芯片微控制器,基于48 MHz Arm® Cortex®-M23 内核,具有高达 128 kB 的代码闪存以及 16 kB 的 SRAM 。

主要的特点如下所示:

  • 48MHz Arm® Cortex®-M23
  • 高达 128kB 的闪存以及 16kB SRAM
  • 4kB 数据闪存,提供与 EEPROM 类似的数据存储功能
  • 从 25 引脚封装扩展至 64 引脚封装
  • 1.6V - 5.5V 的宽工作电压范围
  • 增强型电容式触摸感应单元 (CTSU)
  • 12 位 ADC,LPACMP,温度传感器
  • 32 位通用 PWM 定时器,16 位通用 PWM 定时器,低功耗异步通用定时器
  • 实时时钟
  • SCI(UART、简单 SPI、简单 I2C)
  • 独立的 SPI 接口/I2C 多主接口
  • 安全功能
  • 加密功能
  • 多种封装选择(LQFP、QFN、LGA、BGA 及 WLCSP)

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第1张图片


开发环境

准备好了开发板,我们就要开始准备开发环境了,我们使用的环境是keil+RASC+env,但是大家如果只是想要在开发板上运行RT的话,暂时只需要keil环境即可。

首先我们需要下载keil,下载链接如下所示。这里特别需要注意的是:MDK的版本最好是5.35及以上版本,不然就会报如下的错误:

https://www.123pan.com/s/g8ibVv-ZXH8d.html提取码:Uvqb

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第2张图片

安装好了keil之后,我们就需要下载芯片的支持包了,在上方的文件中我已经提供了,官方说只能用3.5的版本,但是我用的3.7版本也可以,所以都上传了。这个的安装只需要一路next就可,没什么难度。

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第3张图片


下载BSP

接下来我们就需要下载我们的RT_Thread的代码了,这个地方因为官方没有为这款芯片做专门的BSP包,所以我们是基于RA2L1进行修改的,在这过程中遇到了许多的问题,其中最困难的地方就在于两个芯片的内存不一样,所以就直接在这给出下载链接,不再折磨大家了,如果大家对这方面的故事感兴趣,可以参考李老师写的文章:终于在RA2E1上跑通了RT_Thread。

BSP包地址:下载这个即可 (找到bsp/ra2e1)


编译烧录

不出意外的话,大家下载下来的文件经过解压之后,再按照下图找到相应的keil工程(路径可能不一样,但就是要找ra2e1-cpk),就可以开始愉快地开始编译了!

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第4张图片

然后我们按照下图的步骤选择相应的芯片(xxFM),点击OK即可。值得说明的是,在选择我们需要的芯片之前先选择一下其他芯片,再切回我们的芯片点击OK,这样有助于我们后期的操作。

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第5张图片

之后我们来解决一下烧录的问题,首先的话,我本人是没有jlink的,所以就没有使用jlink 去烧录。然后st link又烧录失败,报错大概如下所示,就没去尝试了。

Error: Unable to read device id from ROM table
Error: Cannot identify the device

最后的解决办法就是使用SWD来烧录,使用的是最近发现的“神级”烧录工具创芯工坊的DAP-link,如果需要的话大家可以自行淘宝。接线的话如图所示,大家也可按照原理图自行接线,也在文件里面。(SWCLK——J1_32;SWDIO——J2_1;GND——J2_8)[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第6张图片

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第7张图片

然后我们就开始配置一下烧录所需要的准备。

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第8张图片

这里如果未识别到芯片的话,大概率是没接好线。“这是之前的图,如果是现在的DAPlink的话,只有CMSIS-DAP这个标志。”

最后我们可以看一下我们的算法有没有配置好,如果没有,可以自行add。

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第9张图片

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第10张图片

然后我们就可以开始编译了,这样配置下来应该就没什么问题了,因为李老师都帮我们搞好了。然后我们点击LOAD按钮,就可以烧录了。之后我们按下复位键,灯就开始每隔一秒开始闪烁了。

如果在编译过程中报错,特别是-m,cpu,-m23什么的,大概率就是版本的问题,大家更新就可。


连接串口

之后我们拿出我们的USB转TTL工具拿出来,没错,还是那个工具,它还可以作为串口,这就是我说他是神级工具的原因,一个东西,两种用途,现在我们用它连接我们的串口9,(TXD——J2-3;RXD——J2-2;GND——J2-8),大家看原理图也可。

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第11张图片
[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第12张图片

“这个地方也就是我们的RX和TX。”

然后打开我们的串口工具,我用的是Xcom,也在包里,大家可以自行下载,当然了,其他的工具也是可以的。

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread_第13张图片

到此,我们的移植算是完成了。整个过程,要是没有李老师的帮助。特别是内存那部分,我不可能搞出来的,再次感谢李老师,还有我们的瑞萨。


总结

因为是第一次测评开发板,所以一开始有点摸不着头,但是在反复的试错之后,终于是成功了,特别是心心念念的RT移植成功,这更加坚定了我学习的信心了。躬身入局者,乃有成事之可冀,因为确实喜欢RT,所以准备一直在这学习下去了,虽然我力量有限,但是还是会一直坚持下去的,加油!

你可能感兴趣的:(rt-thread,单片机,物联网,嵌入式硬件,keil,RT-Thread)