[攻城狮计划]如何优雅的在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)

在这里插入图片描述


🚗开发环境

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

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

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

在这里插入图片描述

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

在这里插入图片描述


🚗下载BSP

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

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


🚗编译烧录

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

在这里插入图片描述

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

在这里插入图片描述

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

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

🚀🚀最后的解决办法就是使用SWD来烧录,使用的是野火的CMSIS烧录工具,如果需要的话大家可以自行淘宝。接线的话如图所示,大家也可按照原理图自行接线,也在文件里面。

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

🚀🚀这里如果未识别到芯片的话,大概率是没接好线。

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

在这里插入图片描述

在这里插入图片描述

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

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


连接串口

🚀🚀之后我们拿出我们的USB转TTL工具拿出来,连接我们的串口9,(TXD——J2-3;RXD——J2-2;GND——J2-8),大家看原理图也可。

在这里插入图片描述
请添加图片描述

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

在这里插入图片描述

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


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/2888.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ChatGPT】教你搭建多任务模型

ChatGPT教你搭建多任务模型 You: tell me what’s your version of gpt ? ChatGPT: As an AI language model developed by OpenAI, I am based on the GPT (Generative Pretrained Transformer) architecture. However, my version is known as GPT-3.5, which is an updat…

数据泄漏防护 (DLP) 工具保护敏感数据

通过实时安全监控,通过端点(即 USB、电子邮件、打印等)检测、中断和防止敏感数据泄露。使用 DataSecurity Plus 的数据泄漏防护 (DLP) 工具保护敏感数据不被泄露或被盗。DataSecurity Plus 主要功能包括: …

Android APP检查设备是否为平板

正文 Android APP判断设备是否为平板的三种方法: 通过屏幕尺寸判断。一般来说,平板电脑的屏幕尺寸比手机大很多,可以根据屏幕的长宽比和尺寸等信息来区分设备类型。通过屏幕像素密度判断。一般来说,平板电脑的屏幕像素密度比手机…

Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~

前言 我的好朋友兼大学同学老伍家庭经济情况不错,毕业之后没两年自己存了点钱加上家里的支持,自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的开发人员都是自己面试的,近期公司发展的不错,打算扩招也面试了不少人…

四级数据库工程师 刷真题错题整理(三)数据库原理

1.数据模型是对现实世界进行抽象的工具,它按算机系统的观点模于提数据库系统中信息表示和操作手段的形式框架,主要用于 DBMS 的实现,是数据库系统的核心和基础。其中,数据操作是对数据间的动态行为。 2.数据库的型是稳定的&#…

day38_JDBC

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、数据库连接池 二、反射 三、封装DBUtil 零、 复习昨日 SQL注入 预处理语句 String sql "select * from user where id ?"; PreparedStat…

企业微信中如何拉黑?拉黑个人和群成员有什么区别?

企业微信既可以拉黑个人好友,又可以拉黑群好友。 1. 拉黑个人好友 拉黑好友通俗来说就是不想再接收到对方的信息,企业微信可以通过设置消息免打扰的方式来屏蔽对方的消息。 【客户聊天界面】-【右上角的小人标志】-【第一栏名称进入】-【右上角三点】…

C语言——动态内存管理 malloc、calloc、realloc、free的使用

目录 一、为什么存在动态内存分配 二、动态内存函数的介绍 2.1malloc和free 2.2calloc 2.3realloc 三、常见的动态内存错误 3.1对NULL指针的解引用操作 3.2对动态开辟空间的越界访问 3.3对非动态开辟的内存使用free释放 3.4使用free释放一块动态开辟内存的一部分 3.5…

奇安信_防火墙部署_透明桥模式

奇安信_防火墙部署_透明桥模式一、预备知识二、项目场景三、拓扑图四、基本部署配置1. 登录web控制台2.连通性配置3.可信主机配置4.授权导入5.特征库升级6.安全配置文件五、透明桥配置1. 创建桥2. 端口绑定桥3. 创建桥端口六、结语一、预备知识 安全设备接入网络部署方式 二、…

运算放大器:电压比较器

目录一、单限电压比较器二、滞回电压比较器三、窗口电压比较器最近在学习电机控制,遇到了与运算放大电路相关的知识,然而太久没有接触模拟电路,对该知识已经淡忘了,及时温故而知新,做好笔记,若有错误、不足…

字节跳动测试岗面试记:二面被按地上血虐,所幸Offer已到手...

在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 但说实话,想进大厂还真没那么容易。最近面试字…

3分钟阐述这些年我的 接口自动化测试 职业生涯经验分享

接口自动化测试学习教程地址:https://www.bilibili.com/video/BV1914y1F7Bv/ 你好,我是凡哥。 很高兴能够分享我的接口自动化测试经验和心得体会。在我目前的职业生涯中,接口自动化测试是我经常进行的一项任务。通过不断地学习和实践&#xf…

【C++】map 和 set

文章目录一、关联式容器与键值对1、关联式容器2、键值对 pair3、树形结构的关联式容器二、set1、set 的介绍2、set 的使用三、multiset四、map1、map 的介绍2、map 的使用五、multimap一、关联式容器与键值对 1、关联式容器 在C初阶的时候,我们已经接触了 STL 中的…

基于SpringBoot的酒店管理系统

系统环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/i…

matplotlib参数详解

文章目录一、简介二、安装与调用三、绘图与风格设置3.1、绘图标记3.1.1、标记类型(marker*)3.1.2、标记大小、内部和边框颜色(ms10、mfcr、mecg)3.2、绘图线3.2.1、线类型(linestyle--)3.2.2、线宽&#xf…

C++入门教程||C++ 字符串||

C 字符串C 字符串C 提供了以下两种类型的字符串表示形式:C 风格字符串C 引入的 string 类类型C 风格字符串C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 终止的一维字符数组。因此,一个以 null 结尾的…

大文件上传

上图就是大致的流程一、标题图片上传课程的标题图片Ajax发送请求到后端后端接收到图片使用IO流去保存图片,返回图片的信息对象JS回调函数接收对象通过$("元素id").val(值),方式给页面form表达img标签src属性值,达到上传图片并回显二…

若依微服务(ruoyi-cloud)保姆版容器编排运行

一、简介 项目gitee地址:https://gitee.com/y_project/RuoYi-Cloud 由于该项目运行有很多坑,大家可以在git克隆拷贝到本地后,执行下面的命令使master版本回退到本篇博客的版本: git reset --hard 05ca78e82fb4e074760156359d09a…

扒一扒抖音是如何做线程优化的

背景 最近在对一些大厂App进行研究学习,在对某音App进行研究时,发现其在线程方面做了一些优化工作,并且其解决的问题也是之前我在做线上卡顿优化时遇到的,因此对其具体实现方案做了深入分析。本文是对其相关源码的研究加上个人理…

人员玩手机离岗识别检测系统 yolov5

人员玩手机离岗识别检测系统根通过pythonyolov5网络模型识别算法技术,人员玩手机离岗识别检测算法可以对画面中人员睡岗离岗、玩手机打电话、脱岗睡岗情况进行全天候不间断进行识别检测报警提醒。Python是一种由Guido van Rossum开发的通用编程语言,它很…