Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread Studio
RT-Thread的代码吐槽
发布于 2020-01-09 18:16:04 浏览:2017
订阅该版
* 本帖最后由 梦中尘 于 2020-1-9 18:41 编辑 * 感觉RT-Thread的内核函数的注释有点少,函数的参数信息也不是很详细,只能看官方教程才能明白一些函数参数的输入规范。也许是因为Doxygen格式的要求。但对于学习这个实时操作系统的源码真的好累。举个例子:如果使用rt_sem_init()这个函数。flag:信号量标志,它可以取如下数值: RT_IPC_FLAG_FIFO 或 RT_IPC_FLAG_PRIO,只有看官方例程和官方文档才可以知道。如果自己刚开始学时,只是仅仅看函数很难知道。可能自己熟悉了ucosII和ucosIII的缘故。只需要通过这两个实时操作系统的函数就可以知道相关函数怎么用。组件的源码也感觉感觉有点乱。可能是自己熟悉了UCOS的缘故吧。不过这个国产实时操作系统还是很棒的。系统的启动和丰富的组件还是非常吸引人的。慢慢的转到RT-Thread和华为liteOS了,希望国产实时操作系统越来越好。
查看更多
9
个回答
默认排序
按发布时间排序
hichard
认证专家
2020-01-09
这家伙很懒,什么也没写!
希望rt-thread内部严格执行熊大的代码规范。凡是不符合规范的一律重写。新入职的要把代码规范看的比代码质量都重要,习惯养成了,是一生的习惯!
梦中尘
2020-01-09
这家伙很懒,什么也没写!
>希望rt-thread内部严格执行熊大的代码规范。凡是不符合规范的一律重写。新入职的要把代码规范看的比代码质 ... --- 确实,感觉对于学习 RT-Thread源码和架构的人员不够友好。好多信息需要观看官方文档。而且官方文档告诉你怎么使用。源码注释和分析相对较少。对于源码的解析还是相当困难。
梦中尘
2020-01-09
这家伙很懒,什么也没写!
>希望rt-thread内部严格执行熊大的代码规范。凡是不符合规范的一律重写。新入职的要把代码规范看的比代码质 ... --- 代码的规范性要比代码本身更重要。一个实时操作系统要想推广。代码规范性和相关文档要跟上。ucos在国内大学比较让人熟知。这与其代码的规范性和文档的海量性有很大的关系。有人会说freeRTOS市场占有率第一,我感觉如果ucos和相关关联驱动都是免费的情况下,感觉国内好多实时操作系统要被碾压甚至是消失。并且ucos占有率会更高。而且ucos也有丰富的组件。把freeRTOS打压下去会很简单。感觉ucos的官方开发团队是把程序玩成艺术的感觉。ucos在代码规范性上比RT-Thread好太多。有时候我开发ucos是基本上不需要查文档就可以很好的理解函数怎么调用。只需要看.C文件中函数的说明,一切都非常清晰。真心感觉RT-Thread不太适合源码和架构的学习。
bernard
2020-01-10
这家伙很懒,什么也没写!
谢谢,一些参数说明相关的注释,后面完善起来。代码相关的注释,还请多列举些,特别是类似这样的: 1. 哪些地方注释需要添加 2. 哪些地方注释需要注意 3. 哪些地方注释需要添加 4. 哪些地方注释需要注意 ... 以列表的形式提供下,这样也会更一目了然。
hichard
认证专家
2020-01-10
这家伙很懒,什么也没写!
>谢谢,一些参数说明相关的注释,后面完善起来。代码相关的注释,还请多列举些,特别是类似这样的: > >1. 哪 ... --- 函数头的注释必须有!一定得重视注释,对于新入职员工一定要把代码规范看的比代码质量更重要!
梦中尘
2020-01-10
这家伙很懒,什么也没写!
>谢谢,一些参数说明相关的注释,后面完善起来。代码相关的注释,还请多列举些,特别是类似这样的: > >1. 哪 ... --- 我感觉你可以看一看ucosIII的内核函数的函数头注释,真实良心之作 /* ************************************************************************************************************************ * CREATE A SEMAPHORE * * Description: This function creates a semaphore. * * Arguments : p_sem is a pointer to the semaphore to initialize. Your application is responsible for * allocating storage for the semaphore. * * p_name is a pointer to the name you would like to give the semaphore. * * cnt is the initial value for the semaphore. * If used to share resources, you should initialize to the number of resources available. * If used to signal the occurrence of event(s) then you should initialize to 0. * * p_err is a pointer to a variable that will contain an error code returned by this function. * * OS_ERR_NONE if the call was successful * OS_ERR_CREATE_ISR if you called this function from an ISR * OS_ERR_ILLEGAL_CREATE_RUN_TIME if you are trying to create the semaphore after you * called OSSafetyCriticalStart(). * OS_ERR_NAME if 'p_name' is a NULL pointer * OS_ERR_OBJ_CREATED if the semaphore has already been created * OS_ERR_OBJ_PTR_NULL if 'p_sem' is a NULL pointer * OS_ERR_OBJ_TYPE if 'p_sem' has already been initialized to a different * object type * * Returns : none ************************************************************************************************************************ */ void OSSemCreate (OS_SEM *p_sem, CPU_CHAR *p_name, OS_SEM_CTR cnt, OS_ERR *p_err) 这是一个ucosIII的信号量创造函数 这个函数头注释太清晰了 我根本不用看官方文档就知道这个函数怎么用,函数的功能写的非常详细,函数参数的取值以及其含义解释的非常清楚。函数的返回值种类和含义解释非常到位。感觉RT-thread官方要下点功夫了,我看RT-thread有些文件就写了一些函数实现 什么都没有注释,例如components.c这个文件的函数头基本没有注释。虽然RT-thread系统的启动方式比较新颖,然而启动部分的代码基本上没有什么说明,让人看了一头雾水,ucosIII的内核函数的内部注释也是非常到位的,如果你细细阅读ucosIII的源码,感觉注释做的真的到位。我在这里说明一下,我不是有意说rt-thread的不好,真实心希望rt-thread未来能够承担中国物联网的国产龙头RTOS,甚至走向世界与freeRTOS和ucos一较高下,真心祝愿未来国产RTOS越来越好。本来打算研究生毕业后找一个RTOS的公司工作。没办法对于我这种农村来的孩子,家庭负担多,挣钱就变得重要了,需要一个高的平台。就选择留在西安进入华为了。真实希望未来能为国产RTOS做点贡献。我一直都在学习RT-thread的,如果那里不好我就提出来的,我学了freeRTOS和ucosII和ucosIII源码 感觉还是不错的,希望能把RT-thread的源码看完。未来进入华为估计还要掌握华为liteos了。看来自己以后要和RTOS打交道一生了。真的非常喜欢RTOS这个领域。
梦中尘
2020-01-10
这家伙很懒,什么也没写!
>谢谢,一些参数说明相关的注释,后面完善起来。代码相关的注释,还请多列举些,特别是类似这样的: > >1. 哪 ... --- RT-thread官方注释 /** * This function will initialize a semaphore and put it under control of * resource management. * * @param sem the semaphore object * @param name the name of semaphore * @param value the init value of semaphore * @param flag the flag of semaphore * * @return the operation status, RT_EOK on successful */ 自己想要的注释 /** * This function will initialize a semaphore and put it under control of * resource management.If the user wants to use this function, * you need to define a global variable of type rt_semaphore * This is a static way to create a semaphore * * @param sem the semaphore object * * @param name the name of semaphore * * @param value the init value of semaphore * * @param flag the flag of semaphore * RT_IPC_FLAG_FIFO Processed on a first-in, first-out basis. * RT_IPC_FLAG_PRIO Process by thread priority, that is, which thread has the highest priority, * which operates first. * * @return the operation status, RT_EOK on successful */ rt_err_t rt_sem_init(rt_sem_t sem, const char *name, rt_uint32_t value, rt_uint8_t flag) 可能文本的复制过来就乱了格式,可能这个修改的比较少,我感觉能做到只看函数的头就可以理解怎么使用这个函数,STM32的官方固件库也是把参数的所有可能列出来了并说明了。感觉这样就不需要官方文档说明就可以知道这个函数怎么用。其他还有好多地方连个注释都没有。希望RT-thread官方重视起来。
梦中尘
2020-01-10
这家伙很懒,什么也没写!
>代码的规范性要比代码本身更重要。一个实时操作系统要想推广。代码规范性和相关文档要跟上。ucos在国内大 ... --- 还有注释部分的对齐格式等等好多地方,希望RT-thread官方在源码以及注释等方面做出改进。对于一个使用者来说,如果看到一个连注释都十分用心的RTOS,你能有什么理由怀疑开发者团队会把源代码写的很差?我感觉当时还是有几款RTOS的,ucos之所以脱颖而出用在美国火星探测器上,与开发团队对待自己的产品态度和用心度有很大的关系吧。在RTOS领域中之所以freeRTOS占用率第一,个人感觉ucos的高昂收费有很大关系吧,这也是为什么好多机构和大学推荐ucos作为RTOS的入门和源代码的研究。之后再学习其他RTOS。因为ucos收费啊!无奈。 如果ucos免费 感觉好多项目会优先选择ucos 因为大多说人接触的第一个RTOS是ucos,进入公司后为了成本考虑,而不得不选择其他RTOS。现在我做一些项目时第一个选择freeRTOS,免费的吸引力还是很大的。:lol:lol
bernard
2020-01-10
这家伙很懒,什么也没写!
多谢,所以主要是觉得函数说明的注释缺乏,是吧。是希望有更多的情况说明,可能使用的参数,及可能的返回值情况等。 好像这部分,STM32 HAL类似的也有很多,后面也可以多考虑下。
撰写答案
登录
注册新账号
关注者
0
被浏览
2k
关于作者
梦中尘
这家伙很懒,什么也没写!
提问
1
回答
7
被采纳
0
关注TA
发私信
相关问题
1
rt_thread studio 啥时候能用呢
2
RT_Thread使用反馈帖子
3
RTT studio 下的 AT指令问题。
4
什么时候RTT Sdudio支持Ubuntu,Deepin和UOS操作系统
5
rt thread Studio 关于J-LINK下载问题
6
RT-Thread studio 调试设置问题
7
RTT-Studio 如何设置调试配置参数?
8
rt_thread studio 软件包配置
9
RT-Studio目前只能开发STM32的项目吗?
10
rtt studio 生成hex名字修改
推荐文章
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组件
最新文章
1
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
2
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
3
RT-Thread EtherKit开源以太网硬件正式发布
4
如何在master上的BSP中添加配置yml文件
5
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
热门标签
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
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
20
个答案
2
次被采纳
张世争
11
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部