0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread 4.1.0特性解析

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2022-04-19 14:43 次阅读

自发布v4.1.0 beta版本以来,我们一直积极收集大家的反馈与问题报告,经过我们和社区小伙伴们的共同努力,一起修复了一些问题,完善了新增的特性,现在RT-Thread v4.1.0 版本正式发布了。 这篇文章是专门介绍内核部分更新的内容的。

内核部分更新

新增特性

【hook】增加静态宏方式的HOOK机制 【tick】为rt_tick_increase增加HOOK机制 【kservice】增加RT_KSERVICE_USING_STDLIB、增加rt_strcpy

修复的问题

修复了一个特定场景下会引起软件定时器停止工作的BUG

其他优化

完善了内核的调试日志

特性解析

1. 新增了静态宏方式的HOOK机制

从4.1.0版本开始,RT-Thread在保证向前兼容的基础上对原有的HOOK方式进行了改进,实现了如下的效果:

与原有使用函数指针进行“运行时刻”HOOK的方式兼容,依赖原有方式进行代码插入或HOOK的模块无需修改;

使用RT_USING_HOOK作为总开关

- 当未定义该宏时,将关闭所有HOOK功能,也不再生成任何相关代码

- 当定义该宏时,在未开启传统“函数指针HOOK”时,默认情况下也不再生成额外代码

允许用户通过“插入宏的方式”在编译时刻精细控制具体HOOK哪个位置

- 可以插入任意代码块——其中就包括函数指针、对普通函数的调用等等

具体使用方式可以参考共享者小伙伴的这篇文章:
RT-Thread新版本中HOOK的使用方法(请复制以下链接至浏览器打开//club.rt-thread.org/ask/article/3669.html) 注意:非rtos资深用户,请谨慎使用HOOK机制

2. 为rt_tick_increase增加HOOK机制

我们为 rt_tick_increase 增加了 HOOK 机制。这样在某些场景下,比如:当用户需要一个精度较高的时间基准,或者要做一些和系统心跳同频的事情的时候,就可以借助这个机制。利用前一部分的静态宏的方式或者使用API rt_tick_sethook设定hook函数的方式,在系统心跳的时候执行一些“非常简短”的操作。 注意:由于rt_tick_increase的执行频率较高,设定的HOOK函数一定不能执行复杂的操作,会增大系统负荷!

3. 增加RT_KSERVICE_USING_STDLIB

增加了一些针对 kservice.c 的配置宏,可以配置使用c库里提供的内存函数替换 RT-Thread Kservice 实现。代码效率更高,但是在地址非对齐的情况下,可能会出问题。

2e109cf6-bf94-11ec-9e50-dac502259ad0.png

问题修复

软件定时器BUG修复

问题描述:

在特定场景下,软件定时器处理线程会错误的挂起自身,导致如果之后没有启动软件定时器的操作,来唤醒处理线程的话,所有的软件定时器都会停止工作。

相关链接:https://github.com/RT-Thread/rt-thread/issues/5623

问题场景:

当一个定时器到达设定的超时时间,此时软件定时器处理线程会尝试获取下一个定时器的超时时间,来决定何时唤醒自身执行超时操作。如果获取不到下次超时时间的话,就会挂起自身,永久等待。这里获取下一次超时时间的函数之前的版本有问题,如果下一次的超时时间恰好为 RT_TICK_MAX 的话,也会被认为是没有获取到,就会导致处理线程被异常挂起。

2e2c4c62-bf94-11ec-9e50-dac502259ad0.png

问题修复:

RT-Thread v4.1.0版本已经修复了这个问题:https://github.com/RT-Thread/rt-thread/pull/5637。推荐大家同步修改此补丁。

其他优化

完善了内核的调试日志,添加 RT_DEBUG_DEVICE 类型,统一使用 RT_DEBUG_LOG 宏管理内核的调试日志。

2e47eaa8-bf94-11ec-9e50-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62426
  • 代码
    +关注

    关注

    30

    文章

    4744

    浏览量

    68344
  • RT-Thread
    +关注

    关注

    31

    文章

    1272

    浏览量

    39917

原文标题:RT-Thread 4.1.0 特性解析之内核

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RT-Thread上CAN实践

    开箱测试RT-Thread官方已完成了对英飞凌XMC7200EVK的移植,通过shell可以看到做好了uart3的console。本文将介绍如何进行RT-ThreadCan移植。接下来我们要完成CAN_FD的驱动移植,并正常启动RT-T
    的头像 发表于 11-13 01:03 915次阅读
    <b class='flag-5'>RT-Thread</b>上CAN实践

    开源共生 商业共赢 | RT-Thread 2024开发者大会报名启动!

    亲爱的RT-Thread开发者我们很高兴地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread开发者大会)正式启动报名!2024RT-Threa
    的头像 发表于 10-29 08:06 214次阅读
    开源共生 商业共赢 | <b class='flag-5'>RT-Thread</b> 2024开发者大会报名启动!

    2024 RT-Thread全球巡回 线下培训火热来袭!

    亲爱的RT-Thread社区成员们:我们非常高兴地宣布,2024年RT-Thread全球开发者线下培训即将拉开帷幕!24年全球巡回培训将覆盖超10座城市及国家,为开发者提供一个深入学习RT-Thread嵌入式开发的绝佳机会。
    的头像 发表于 08-07 08:35 908次阅读
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 线下培训火热来袭!

    【好书推荐】RT-Thread设备驱动开发指南

    近年来国内芯片产业和物联网产业的快速崛起,行业发展迫切需要更多人才,尤其需要掌握嵌入式操作系统等底层技术的人才。随着RT-Thread被更广泛地应用于行业中,开发者对嵌入式驱动开发的需求越来越
    的头像 发表于 08-01 08:35 515次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>设备驱动开发指南

    RT-Thread 新里程碑达成——GitHub Star 破万!

    RT-Thread实时操作系统开源项目在GitHub上的star数量突破一万!截止发文,RT-Thread作为实时操作系统在业界Star数量排名第一!仓库地址:https://github.com
    的头像 发表于 07-04 08:35 395次阅读
    <b class='flag-5'>RT-Thread</b> 新里程碑达成——GitHub Star 破万!

    6月6日杭州站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我们将在杭州举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 05-28 08:35 408次阅读
    6月6日杭州站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    2024 RT-Thread 全球技术大会演讲议程发布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技术大会)致力于围绕RT-Thread基础软件技术发展、实践创新、开发者能力
    的头像 发表于 05-16 08:34 482次阅读
    2024 <b class='flag-5'>RT-Thread</b> 全球技术大会演讲议程发布!

    5月16日南京站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我们将在南京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 05-01 08:35 326次阅读
    5月16日南京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站来啦!

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 04-19 08:34 413次阅读
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站来啦!

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 04-16 08:35 392次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深嵌入式软件工程师农晓明老师为您讲
    的头像 发表于 03-27 11:36 776次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 03-27 08:34 485次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread成为恩智浦注册合作伙伴,共同赋能工业与物联网应用开发!

    前不久,恩智浦半导体加入RT-Thread全球合作伙伴计划,成为RT-Thread高级会员合作伙伴。同时,RT-Thread现已成为恩智浦注册合作伙伴。
    的头像 发表于 03-15 09:15 832次阅读

    恩智浦半导体正式加入RT-Thread全球合作伙伴计划!

    前不久,恩智浦半导体正式加入RT-Thread全球合作伙伴计划,成为RT-Thread高级会员合作伙伴。同时,RT-Thread现已成为恩智浦注册合作伙伴(RT-Thread| 简介合
    的头像 发表于 03-14 10:40 570次阅读
    恩智浦半导体正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴计划!

    【PSoC™62 for RT-ThreadRT-Thread携手英飞凌举办嵌入式网络应用开发沙龙,圆满落幕!

    2023年12月09日,深圳,全球半导体解决方案的领导者英飞凌科技(中国)有限公司(以下简称:英飞凌)与上海睿赛德电子科技有限公司(RT-Thread)在深圳塘朗联合举办了“嵌入式网络应用开发”为主
    的头像 发表于 12-14 16:25 523次阅读
    【PSoC™62 for <b class='flag-5'>RT-Thread</b>】<b class='flag-5'>RT-Thread</b>携手英飞凌举办嵌入式网络应用开发沙龙,圆满落幕!