Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
国民技术_N32G45x
【经验分享】参加国民技术MCU RT-Thread设计大赛的参赛感受
发布于 2022-04-17 17:07:30 浏览:577
订阅该版
首先感谢主办方的认可,和工作人员的帮助。能够评上一个三等奖我是有点意外的。因为参赛的人太多了,大家的作品都很有新意。 我从19年的RT-Thread开发者大会就开始关注RT-Thread了,那个时候去了现场观看,还抽中了一个stm32f407的核心板,目前还是我做RT-Thread软件测试时主力硬件平台。随后几年因为疫情都是在线上获取RT-Thread的最新消息。 在2021年的RT-Thread开发者大会上,通过直播我看到了国民技术正在他们的OTA技术,当时没有太细致得听,因为当时兴趣点在rt smart上。 最开始参加的是《 RT-Thread X RISC-V创新应用大赛 》,花了点时间做完这个比赛虽然没有获奖但是收获到了不少经验(使用运放放大电压采样)。然后发现RT-Thread的活动挺多的,花点空余时间来做做这些事情,少玩点游戏。随后我通过公众号看到了正在报名中的《 国民技术MCU RT-Thread设计大赛 》。 我一直有个想法想自己做个usb转can的调试器,市面上也有很多类似的产品但是价格也不低。我觉得can总线应该会比rs485更加普及,前提是我们能像rs485那样容易获得调试设备,这样入门门槛降低,会有更多人来玩这个,更加有利于发现解决错误。 但是要选择好的硬件、软件、上位机通信协议、上位机软件这个一直很头疼,而且芯片一直再涨价,都没有了diy的动力(钱)。恰巧看到这个比赛,再查了一下硬件,usb can都支持,就立马报名了。 然后加群讨论,过了几天我看到我通过审核了。结果我等了好久都没有收到快递,询问了下RT-Thread小师弟才知道我的电话号码填错了,快递一直联系我不到我,搞了一波大乌龙。 随后就是拿到开发板创建工程,开始测试硬件。 结果发现bsp里面的驱动并不是很全,我需要的关键驱动can和usb都没有。但是N32G457 开发板是有sdk的,里面有很全的例程。 凭借使用了RT-Thread有近几年的经验我开始编写驱动,我只好参考stm32上驱动的样子用N32G457的SDK还是自己实现驱动。开始写的时候经常运行起来死机,还有无法通信的问题。然后花了几个晚上仔细查看st的驱动和N32G457的can例程,终于把N32G457的can驱动写出来了。后面把这个驱动pr提交到RT-Thread的github仓库上,这是我第一次提交代码给RT-Thread,很有成就感。 后面我又打算写一下eth、sdio、spi的驱动,但是考虑到在比赛期间提交pr是可以加分的,我就没打算提交太多pr,怕把别人的分都抢了(不能太卷了)。 后面我就开始研究usb2can的协议,发现slcan协议特别适合我现在的场景。因为没有usb驱动,我无法使用winusb进行通信,转而使用了usb cdc协议通信。然后参考了linux源码里面关于slcan的处理,在RT-Thread上面也实现了同样的功能。 到后面一切进展都很顺利,因为RT-Thread了解了有几年时间,上手是比较轻松的。代码调试啥的也没有什么问题。 主要的问题是在于驱动适配,因为自己想尝试下在国民科技的N32G457 mcu上使用以太网和sd卡功能。 然后开始编写N32G457的eth和sdio驱动。eth进展还算顺利但是phy启动老是有点问题,而且测试网速也很慢,很明显我写的驱动代码还有问题。 然后我又尝试了下sdio驱动,编写之后发现只能识别卡容量,然后就是司机或者没有响应了。 最后我又尝试了移植spi驱动,想通过spi驱动去读写sd卡。spi驱动移植比较容易,因为我只写了spi轮询收发模式,并没有使用dma通信。驱动还算稳定,然后结合RT-Thread的spi msd功能,很快就驱动sd卡了。期间还找了群友一起测试这个驱动,因为他一直想在N32G457上使用sd作为fat文件系统读写文件。 最后我提交了作品和一个can驱动的pr,其他的spi、sdio、eth驱动都是群里大神们在编写,等到我有空的时候我会继续改进这些驱动代码然后提交pr上去。 参加了这么多的比赛后,我最大的感受就是RT-Thread的驱动框架真的好用。还有就是拿到一堆开发板,因为有这些不同平台,不同架构的开发板板,尤其是现在芯片市场价格居高不下,很多公司都开始芯片移植。这时候有一套上层应用的通用代码是多么开心,只需要移植好驱动RT-Thread的内核、bsp的驱动文件、配置一下RAM、ROM资源大小、如果是带SDRAM或者DDR的MPU或者MMU的芯片,设置一下icahe、dcache基本上可以在一个新的硬件平台上跑起来了。 我这个参赛写的这个slcan代码就是去耦比较好的代码,可以在任何RT-Thread的系统上面跑(前提是要有uart和can驱动的)。我后面打算做成软件包形式,可以让大家都使用上这个slcan协议。 文章链接 https://club.rt-thread.org/ask/article/3471.html
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
文武斌
这家伙很懒,什么也没写!
文章
6
回答
74
被采纳
2
关注TA
发私信
相关文章
1
[N32G457]移植sdio驱动后,开启sdio1系统挂掉
2
N32G457开发板使用AT组件编译出错
3
ADC采样只有0和3.3v?
4
基于N32G45X开发板建立工程失败?
5
有没有人N32G457在挂载SPI Flash上挂载文件系统成功的?
6
使用N32G457的us函数程序会卡死?
7
在程序里关闭JTAG 后,无法再次烧录程序
8
求一个N32系列QSPI驱动
9
N32G457 MPU6050软件包使用不成功
10
在N32G455 HTTP_OTA升级上,下载成功,无法跳转
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部