网站建设注意事项,如何安装wordpress主题,wordpress 前台关闭,对网站设计的建议支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了 熟悉RT-Thread和瑞萨MCU的朋友都知道#xff0c;当前RT-Thread仓库的主线代码是不支持RA2E1这个BSP的。刚好#xff0c;最近我在联合瑞萨推广一个叫《致敬未来的攻城狮计划》#xff0c;使用的就是RA2E1开发板…支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了 熟悉RT-Thread和瑞萨MCU的朋友都知道当前RT-Thread仓库的主线代码是不支持RA2E1这个BSP的。刚好最近我在联合瑞萨推广一个叫《致敬未来的攻城狮计划》使用的就是RA2E1开发板正好乘着这个机会把RA2E1这个BSP合入到主线去想必一定非常有趣。 文章目录1 写在前面2 《致敬未来的攻城狮计划》2.1 计划内容2.2 当前进展3 让RA2E1支持RT-Thread3.1 遇到的问题3.2 查找资料3.3 新的问题来了3.4 咨询大神3.5 潜心研究3.6 试着解决问题3.7 皆大欢喜4 小小总结5 下一步计划6 文末福利1 写在前面
借助一个有趣的计划完成一个有趣的任务这本身就是一件很有趣的事情。
帮助一群未来的攻城狮快速地成长把一颗芯片平台让更多人的发现并用起来让RT-Thread的生态越来越丰富这些事情我们正在做也会一直做下去希望有更多的人加入并参与我们的实践中来。
本文的主要任务还是聚焦在如何将RA2E1并入到RT-Thread的主线仓库。
2 《致敬未来的攻城狮计划》
2.1 计划内容 一个崭新的计划寻找那群有志于向嵌入式发展的未来工程师 活动计划初衷
《致敬未来的攻城狮计划》来源于架构师李肯的一个念想我一直在寻找那群渴望学习并专注于提升自我的技术朋友他们可能还是憧憬在象牙塔里的大学生也可能是初出茅庐的小助理还有可能是一群转行无门的技术小白但是他们都有一颗热诚扎入嵌入式领域的心我称他们为【未来的攻城狮】而我正是希望成为他们的星光指路人。
本次计划的初衷与瑞萨MCU不谋而合瑞萨非常支持这群《未来的攻城狮》愿意为他们的持续学习提供必要的硬件支持。
正是在这样的背景下《致敬未来的攻城狮计划》孕育而生一群闪亮的新星即将登场嵌入式的技术即将因你们而更加精彩
想要了解更多关于这个计划的内容可以关注我的 个人社区 https://bbs.csdn.net/topics/613916237 复制链接到浏览器即可打开
2.2 当前进展
《致敬未来的攻城狮计划》从3月中旬就开始宣传推广经过一周的报名筛选我们挑选了10名优秀的、有潜力的未来攻城狮第一时间聚拢大家聊一聊这次计划的主要目的和开展形式很快得到了大家的一致认可和支持计划得以快速启动。
作为本次计划的主赞助商瑞萨也在收到审核通过的名单后迅速把板子发过来这不刚过去一周很多小伙伴已经把板子玩上几天了好不惬意。
昨天开始我在社区发布本期计划的激励措施号召大家再社区打卡学习现在好多小伙伴已经开始火热打卡学习了欢迎大家来围观。复制下面的链接到浏览器即可打开
【致敬未来的攻城狮计划】任务提交及奖惩措施的相关说明 https://bbs.csdn.net/topics/614070195
【致敬未来的攻城狮计划】学习打卡频道 https://bbs.csdn.net/forums/recan-iot?typeId2717193 3 让RA2E1支持RT-Thread
3.1 遇到的问题
最早我们在为《致敬未来的攻城狮计划》选型开发板的时候也有过考虑的尽快要选择一款能快速用上RT-Thread的板子。
当得知RT-Thread主线代码其实已经支持了RA2L1的而我们选型的RA2E1与RA2L1基本是完全兼容的只是存储有些不一样。
自然我的第一感觉也是那就用它吧。应该问题不大毕竟还有RA2L1在那里兜底。
然而不幸的是当我们参与计划的小伙伴拿到板子后根据我给他们的信息提示去RT-Thread的主线仓库拉取RA2L1的代码时到KEIL中一编译竟然发现有 20几个编译错误。Word天呐简直有点不敢相信然后一看仓库代码的提交记录最后一次提交大概是 2个月前感觉代码也不旧啊怎么会这样有些纳闷 3.2 查找资料
果然白嫖是不可能的这辈子都不可能白嫖的关键时候还是要靠自己的双手来解决问题此处没有开车
遇到问题首先我想到的可能是 RT-Thread-首页-RT-Thread问答社区 - RT-Thread虽然现在的活跃度比较差一些但整体来说还是能够找到一些有用的东西帮助自己解决一些问题。
抱着试一下的心态去搜索果然论坛里面很多介绍RA2L1这块芯片板子的也有一个搭建开发环境踩坑的笔记之类的看起来还是比较多。 经过一番筛选我找到了这一篇文章 : RT-Thread-【开发板评测】Renesas RA2L 点亮LCD (SPI)RT-Thread问答社区 - RT-Thread里面的几点对我接上面遇到的编译问题就很有帮助。 根据他的提示很快我明白了原理原理是RT-Thread主仓库的代码并不是根据这套板子来配置的而是其他的一些配置所以需要解决编译的问题要修改以下几个配置
使能RA2L1的uart9RT-Thread的调试串口启用uart9RT-Thread的串口驱动版本选用V2
以上几个步骤需要借助env工具然后配置完了重新使用 scons --targetmdk5 生成KEIL的工程。
经过上面的配置后再编译新的工程终于是 0 error 了。 3.3 新的问题来了
本以为探索之旅到此结束没想到把编译出来的可执行文件通过烧录器下载到RA2E1板子上居然跑不起来连我们常见的灯也不闪了简直傻眼了。我开始想起最早的时候选项时RA2E1与RA2L1是兼容的
该不会除了啥问题吧排除掉是板子的问题以及接线的问题之后我开始锁定非常有可能就是两个板子不完全兼容导致的。
手上有调试器自然先跑一把调试下看看。记得上一小节找到的那个帖子有说他遇到的问题是直接开始最后排查是串口的问题导致注释掉某一行代码就解决了我们也尝试用这个小方法还是不行结果是一样的灯不闪烁串口无输出。
使用单步一调试跳出这样的出错本想去搜搜看可是压根没有这样关键字的资料。 虽然没有啥解决方法但是从这张错误中我们可以看到一定是 MEMORY 出问题了。
这时候我想起最早的选项两者代码上是兼容的但是就是内存不太一样。
至此我基本断定了就是 Memory Layout 导致的问题但是具体要怎么修改才行呢。还是没有思路。
3.4 咨询大神
自己想了一天加上工作也比较忙一直拖着没有解决。
想着这个问题我不能托太久不然学习的小伙伴也没法往下基于这个板子学习RT-Thread了。
于是我想到一个方法那我就厚着脸皮去问一下瑞萨原厂的开发工程师吧。
之前参加 RA4M2网关设计大赛的时候有加到RA的工程师我就虚心地去请教了一下 大家都工作忙也不可能真的手把手教你去解决关键时候还得靠自己。
从这次简短的沟通基本已经完全确认方向了就是内存的配置问题。
有了思路就好办了问题应该很快就有方法了。
3.5 潜心研究
在这里我不得不提一句瑞萨的资料是真的多多到什么程度呢就是多到你不知道该看哪个或者说究竟哪个文档或资料才能找到你想要的东西。 既然上面大致都已经定位到内存的问题那我首先要做的就是找出 RA2E1 和 RA2L1 在内存上的差别究竟在哪里
这些信息从哪里可以得出那自然是官方的datasheet 最权威了。
最后我也是大致翻看发现这份**《RA2E1硬件用户手册中英.pdf》有讲到Memory划分的详细内容既然RA2E1有自然RA2L1也有类似的文档所以我就从官方找到了《RA2L1硬件用户手册中英.pdf》**。
分别找到他们的内存划分那一章节 有了这些内存分布之后基本就知道怎么改了。
3.6 试着解决问题
熟悉KEIL编译环境的都知道在KEIL里面关于芯片的内存分布是在一种叫 分散文件 的东西里面配置它的文件名后缀是 .scat
顺着工程目录找到对应的分散文件看到里面开头有这么一段
#! armclang -mcpucortex-m4 --targetarm-arm-none-eabi -E -x c -I.
#include memory_regions.scat虽然不太懂它的语法但是一猜就知道这种就是文件包含也就是说芯片的内存划分是单纯放在 memory_regions.scat 文件里面。
这里其实我还做了一个小动作就是我从其他小伙伴手上拿到一份可以工作的示例工程这个工程是使用瑞萨的配置工具从0到1自己配置出来的所以它里面的内存划分肯定是正确的。
两个分散文件一拎出来我一对比就发现问题所在了 还有一个方法也可以确认下这个内存分布就是分析两个工程的axf文件。
比如我用如下的指令导出axf的头部信息对比如下
recanubuntu:~/11111$ readelf -a project3.axf | head -n 100 111.txt
recanubuntu:~/11111$ readelf -a rtthread2.axf | head -n 100 333.txt结合上一小节看到的RA2E1的内存分布一下子就明白了RAM的起始地址必须配置成上图中的右边部分。
为了快速验证我直接把小伙伴的分散文件替换成我本地的RA2E1工程实则是RT-Thread仓库的RA2L1工程。
一编译同样的0错误可用然后我就快速地发起功能验证。
3.7 皆大欢喜
看到这个小标题自然就知道问题迎刃而解达到了我们预期的效果灯也照常闪了串口也正常输出了RT-Thread的标志性的启动LOG输出也来了一切都回到熟悉的样子。 我也在我们致敬未来攻城狮的小群里第一时间发布了喜讯号召大家尽快把RT-Thread学起来。 对我的本次修改感兴趣的可以关注我的代码仓库不出意外的话应该拉下来就能编译、烧录、调试、运行。有心者请记一下这个仓库地址https://gitee.com/recan-li/ra4m2-rt-thread
4 小小总结
经过这几天的计划开展和对RA2E1的摸索有几点东西想总结一下
现在的就业环境可以说是非常卷但是我能从这帮 未来的攻城狮 中看到上进的求知欲满满的都是欣慰能带这样一帮优秀的潜力股是我的荣幸。虽然有时候会收到一些在我看来是比较 简单 的问题但对于初学者来说可能就是一个一时半会难以跨越的门槛这时候就是需要同伴、老师点拨一下受点启发一下子思路就打开了。学习道路总是枯燥且漫长的尤其像这次这样突然就给你一个你从来就没有见过更没有接触过的东西要你在一个月内学出点东西来并以文档或者视频的方式展示你的学习成果这本身就是一件比较难的事情如果你能从中克服自己的惰性积极参与学习同时打破自己内心的恐惧埋下心来取坚定地学习它并用最饱满的热情去输出你的成果这本身就是一件很锻炼人的事情。经过这样的一次学习训练将来你遇到类似的工作场景你一定要感谢现在努力上进的你自己因为当下培养的自学能力你将受益一生。程序猿最怕的两个事情一是要接手学习的项目没有文档二是自己的项目要自己去写文档现在我觉得我应该补充一句“文档多了也不一定是好事满城尽是黄金甲到底哪个才是你真正需要的关键内容需要你的敏锐的检索能力及专业筛选能力”。工欲善其事必先利其器 这里指的就是开发环境很多小伙伴就是卡在这里无法进行下一步学习有点夸张的说开发环境搞好了50%就到手了。从一堆看似无关紧要的错误里面寻找解决问题的线索这也是学习和解决问题能力的一种体现可以有意识地培养自己这方面的能力。温故而知新放在写代码是也是完全讲得通的而与此对立面就是长时间不维护的代码时间一久拉出来可能就会出莫名其妙的问题就像本次遇到的RT-Thread主仓库的 bsp/ra2l1 拉下来编译20几个错误什么状况DDDD !
5 下一步计划
下一步计划主要分为三个部分吧
尽快发起PR把RA2E1这套BSP合入到RT-Thread主线仓库中去预计最快本月即可完成集中火力把这帮未来的攻城狮扶持好祖国的新希望民族的新未来帮助他们最快地成长预计本周会开一次直播课程感兴趣的同行朋友也可以一起来聊聊关注我的 同名微信公众号 即可获得最新的信息构思下一期《致敬未来的攻城狮计划》有更多的想法有更多的知心者有更多的目标都在进一步细化中。。。
6 文末福利
熟悉我的朋友都知道近期我在疯狂地开展赠书活动也有不少的朋友从我这里获得了许多高质量的精美图书累计有送出近60本图书这个事情我坚持做下去努力把幸运和福利送到每一个知心者手中。
之前呢每次基本送的都是一些技术研发类的书籍所以近期也有收到一些朋友反馈说能不能送一些非技术的书籍。这不有了目标里面给安排上。
本期送出的书籍是一个关于Excel高效应用的数据详细的图书介绍可以参考的社区文章【第19期社区福利赠书活动】新书上市 | 《Excel高效应用HR数字化管理实战》30个二维码观看视频讲解文末赠书5本-CSDN社区