[攻城狮计划]如何优雅的在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,所以准备一直在这学习下去了,虽然我力量有限,但是还是会一直坚持下去的,加油!
相关文章:

[攻城狮计划]如何优雅的在RA2E1上运行RT_Thread
文章目录[攻城狮计划]|如何优雅的在RA2E1上运行RT_Thread准备阶段🚗开发板🚗开发环境🚗下载BSP🚗编译烧录连接串口总结[攻城狮计划]|如何优雅的在RA2E1上运行RT_Thread 🚀🚀开启攻城狮的成长之旅࿰…...
1.linux操作命令
1. pwd -> 打印当前绝对工作路径。 2. ls -> 查看目录的文件名 ls -> 默认列出当前目录的全部文件名 ls . -> 列出当前目录的全部文件名(.代表当前目录) ls / -> 列出根目录下的全部文件命名 ls -a -> 列出当前目录下全部文件名(包括隐藏…...
STL--vector
vector 头文件 #include<vector>向量的定义: vector<int> vec;//定义一个vec型的向量a vector<int> vec(5); //定义一个初始大小为5的向量 vector<int> vec(5,1); //初始大小为5,值都为1的向量二维数组࿱…...

Java每日一练(20230324)
目录 1. 链表插入排序 🌟🌟 2. 最接近的三数之和 🌟🌟 3. 寻找旋转排序数组中的最小值 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…...

你掌握了吗?在PCB设计中,又快又准地放置元件
在印刷电路板设计中,设置电路板轮廓后,将零件(占地面积)调用到工作区。然后将零件重新放置到正确的位置,并在完成后进行接线。 组件放置是这项工作的第一步,对于之后的平滑布线工作是非常重要的工作。如果在接线工作期间模块不足…...

springboot学生综合测评系统
031-springboot学生综合测评系统演示录像2022开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件&…...

【Unity3D】法线贴图和凹凸映射
1 法线贴图原理 表面着色器中介绍了使用表面着色器进行法线贴图,实现简单快捷。本文将介绍使用顶点和片元着色器实现法线贴图和凹凸映射,实现更灵活。 本文完整代码资源见→法线贴图和凹凸映射。 1)光照原理 Phong 光照模型和 Blinn Phong 光…...
代码误写到master分支(或其他分支),此时代码还未提交,如何转移到新建分支?
问题背景 有时候,我们拿到需求,没仔细看当前分支是什么,就开始撸代码了。完成了需求或者写到一半发现开发错分支了。 比如此时新需求代码都在master分支上,提交必然是不可能的,所有修改还是要在新建分支上进行&#x…...

java多线程之线程安全(重点,难点)
线程安全1. 线程不安全的原因:1.1 抢占式执行1.2 多个线程修改同一个变量1.3 修改操作不是原子的锁(synchronized)1.一个锁对应一个锁对象.2.多个锁对应一个锁对象.2.多个锁对应多个锁对象.4. 找出代码错误5. 锁的另一种用法1.4 内存可见性解决内存可见性引发的线程安全问题(vo…...

如何免费使用chatGPT4?无需注册!
Poe体验真滴爽首先提大家问一个大家最关心的问题如何在一年内赚到一百万?用个插件给他翻译一下体验地址效果是非常炸裂的,那么我就将网址分分享给大家https://poe.com/前提:要有魔法,能够科学shangwangChatGPT-3 随便问GPT-4 模型…...

Android Flutter在点击事件上添加动画效果
在Android App的开发项目中,我们需要在点击事件上实现一个动画效果来提高用户的体验度。比如闲鱼底部中间按钮的那种。该怎么实现呢? 一起来看看吧 实现效果如图: 实现思路 根据UI的设计图,对每个模块设计好动画效果࿰…...

VSCode嵌入式开发环境搭建
Vscode开发环境搭建 看这个链接就可以了,后面下载调试有点问题看下3.3。 在VSCode上部署STM32F1的开发环境 1. MXCube配置工程生成Makefile文件 借助正确的编译工具链进行编译, 2. 编译工具链搭建 编译工具链使用GCC的ARM版本 arm-none-eabi-gcc &am…...
数据结构之栈的使用
栈是计算机科学中一个重要的数据结构。它是一种特殊的线性表,只允许在一端进行进出操作。这一端被称为栈顶,另外一端被称为栈底。栈的特点是后进先出,即最后进入栈的元素会先被弹出栈。栈的应用广泛,例如在编译器中,栈…...

QMessageBox手动添加按钮并绑定按钮的信号
视频展示效果(结合代码看效果更佳哦,代码在最下面): QMessageBox手动添加有重试效果的按钮效果图: 点击详细文本之后展开如下图: 图标可选: QMessageBox::Critical错误图标QMessageBox::NoIco…...

【C++进阶】位图和布隆过滤器
文章目录位图位图概念位图使用场景位图的结构构造setresettest完整代码布隆过滤器布隆过滤器概念布隆过滤器结构构造setresettest完整版代码位图 位图概念 所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用…...

Android开发-Android UI与布局
01 Android UI 1.1 UI 用户界面(User Interface,简称 UI,亦称使用者界面)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。软件设计可分为两个部分:编码设计与UI设计。 1.2 Andr…...

在不丢失数据的情况下解锁锁定的 Android 手机的 4 种方法
尽管您可以使用指纹解锁手机,但大多数智能手机都需要 PIN 码、图案或字母数字代码作为主密码。如果您有一段时间没有输入手机密码,很容易忘记。正是由于这个原因,即使您打开了指纹解锁,大多数智能手机也会让您每天至少输入一次 PI…...

【11】核心易中期刊推荐——人工智能 | 图形图像处理
🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...
Spring 中的事件发布与监听
主要代码在org.springframework.context,org.springframework.context.event包中 事件发布与监听主要包含以下角色: 事件:ApplicationEvent事件监听器:ApplicationListener SmartApplicationListener GenericApplicationListene…...
c++ 一些常识 2
前言 今天主要讲类相关概念。 构造和析构函数是否可以抛出异常 在构造函数中抛出异常,控制权会转出构造函数之外,对象的析构函数不会被调用,造成内存泄漏。 如果析构函数中抛出异常,而且没有在当地捕捉,析构函数便执…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...