[RTT衍生]魔改rt-thread新征程(0.0.1) —— 开端

2019-8-3 00:16 [复制链接] 11 467

本帖最后由 heyuanjie87 于 2019-8-17 23:26 编辑
& l7 [0 C& u2 k* X. P9 s/ S: a* d% S! ~1 G2 X; X
开这个帖子是要告诉大家,我想基于现在的rtt发展出一个新的版本。为啥?因为我想全面抛弃现在的rt_device_xxx接口,尽量用标准接口写应用代码。
' `1 ]) Q+ o% n% v' k2 i虽然诉求很简单,但路途遥远,先定一个小目标:0.0.5版实现 posix消息队列、管道、串口的阻塞/非阻塞。项目名还没想好(求大家帮忙像个名字内容不限)。
# @: ^8 k. O( m给这个项目立下了五大中心思想:实用、稳定、标准、借鉴、创新。如果你有什么无理过分中肯的建议都可以给我留言。为了这个遥远的目标我已悄悄的做出了
3 D( [$ N8 t* w如下改变:0 I4 |2 _' L3 y& U

/ b/ i/ j2 e6 F9 f+ o9 j1. rt_kprintf输出不再走设备框架直接从底层串口输出
7 }5 r) L; z' Q9 x4 U2. finsh只保留了msh并将读写接口都换成了putc/getchar/printf等标准接口,然后将内嵌的msh命令全都移到了其他地方,并为以后运行多个shell犯下伏笔. D' I2 }) C4 k7 K, \! k# G
3. 由于bsp目录会严重影响下载体验,计划内核只放bsp介绍,代码则按厂商分开放置(例如 https://gitee.com/heyuanjie87/bsp-stm32.git)/ i0 j! ?8 p% W) L9 Y
4. 串口只按照文件接口的要求实现并扩充了struct rt_uart_ops,计划dma完全由驱动处理(https://gitee.com/heyuanjie87/rt-thread.lab/blob/master/components/drivers/serial/serial.c)  k" H6 e4 r% C' i! w
5. pipe换成了以文件系统方式实现,方便实现删除pipe, x7 M6 N9 \+ F2 t. [/ s
6. dfs增加伪文件系统挂载接口,挂载时不需要检查目录是否存在(仅限内核使用)。挂载路径以冒号开头,并将devfs挂载为":dev/",为了整洁
* \' f$ F! h% r2 M/ ?5 O/ {还将里面导出的msh命令都清理掉了后续另放个地方! R, ?6 J! R% f* V8 |
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-8-3 12:52:52 | 显示全部楼层
给大佬点赞
使用道具 举报 回复
发表于 2019-8-3 13:37:34 | 显示全部楼层
强大到令人窒息~~~
使用道具 举报 回复
发表于 2019-8-3 17:26:12 | 显示全部楼层
本帖最后由 armink 于 2019-8-3 17:27 编辑
1 I; y/ f6 p9 @% D/ U: S8 f1 f" B/ O  x% u5 g
期待用杀猪刀开坑
使用道具 举报 回复
发表于 2019-8-5 10:36:19 | 显示全部楼层
orz..
使用道具 举报 回复
发表于 2019-8-5 13:48:17 | 显示全部楼层
点赞点赞
使用道具 举报 回复
发表于 2019-8-17 23:34:02 | 显示全部楼层
本帖最后由 heyuanjie87 于 2019-8-17 23:39 编辑 : S3 h) i; t9 i0 g

( s  E7 p5 \2 s9 G$ o# K! R. n由于工作要用到4G上网,计划在rtt中实现usb host驱动 移远ec20实现ppp上网,目前已经在f407上初步测试串口收发通过,也正在对host框架进行改写 接口行尽量靠近linux,这样可以节约思考时间和移植现成的类驱动,欢迎各位大佬前来指导工作https://gitee.com/heyuanjie87/rt ... ost/class/cdc_acm.c
; ]2 |0 w# S4 `: {8 Ohttps://gitee.com/heyuanjie87/bs ... hip-f4xx/drv_usbh.c
使用道具 举报 回复
发表于 2019-9-16 15:21:47 | 显示全部楼层
希望杀猪哥能多多更新贴子同步一下进度,一帮小迷弟在地下疯狂观望着
使用道具 举报 回复
发表于 2019-9-16 15:43:40 来自手机 | 显示全部楼层
最近忙于工作上的事还没有更新,后面尽量每天进步一点哪怕是几行代码
使用道具 举报 回复
发表于 2019-9-17 19:07:27 | 显示全部楼层
串口框架增加485的读写切换优化:0 L. m( M4 j+ p. B; n
在应用中没用定时器切换收发的情况下,mcu太忙后会错过接收。针对这种情况可以在驱动中等待发完最后一个字节就立即切换。在stm32中发送完成中断正好可以达到这个效果。在框架层增加了一个成员"halfduplex"驱动层初始化为1则表示启动485特性。: w( A9 _6 ?/ K) d: U( Y) m8 |

0 B1 o/ b8 k7 R- ^# o8 V驱动参考:https://gitee.com/heyuanjie87/bs ... ip-f4xx/drv_usart.c (函数stm32_uart_rde)1 Y0 X; ]1 r2 I# A5 x1 {
BSP参考: https://gitee.com/heyuanjie87/bs ... mf/board/bd_usart.c
! A+ ^) n3 F: x( v: D1 O% ^框架参考: https://gitee.com/heyuanjie87/rt ... ers/serial/serial.c (函数_halfduplex_change_mode)& v9 t/ S0 o. H, c

% ^$ n7 V, m5 w: y2 c# i9 K测试结果:
4 b# B) s. j0 {* U! N  R) G
' ~, b; V6 P. S6 |9 O6 v终端执行: echo 01234567890123456789 :dev/uart1+ ]% g2 p% ?9 Q0 A4 h9 O' v1 b
调试助手接收: [18:45:19.578] 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39
1 H7 x3 t1 B( i接收个数统计:20
使用道具 举报 回复
发表于 2019-9-19 21:23:48 | 显示全部楼层
给串口框架增加在应用修改缓冲区大小的操作,按需分配不浪费每一滴空间不让每一个期待失望。8 W. _1 b0 t* J$ K
libmodbus应用参考:https://gitee.com/heyuanjie87/li ... s/modbus_rtu_test.c
使用道具 举报 回复
发表于 2019-10-7 23:55:55 | 显示全部楼层
围观支持,学习一下
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表