Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
printf_格式化输出
rt_kprintf
rt_kprintf线程安全版本
发布于 2021-02-20 10:06:38 浏览:1711
订阅该版
[tocm] # 线程安全版本的`rt_kprintf()` 原版RT-Thread `kserver.c `文件中的`rt_kprintf()`函数是线程不安全的,如果同时有两个线程同时使用`rt_kprintf()`打印数据,可能会导致数据被冲刷掉或者一方的信息根本没有打印出来等一系列奇奇怪怪的问题。比如:https://club.rt-thread.org/ask/question/429525.html RT-Thread官方清楚非线程安全所带来的后果,但是为了确保`rt_kprintf()`函数与标准C库的`printf`函数标准一致以及足够精炼有意而为之。 本安全版本`rt_kprintf()`函数会自动判断当前所处环境: 1. 若RT-Thread尚未启动调度器,则采用没有任何保护的方式; 2. 若在中断中调用`rt_kprintf()`,则采用没有任何保护的方式; 3. 若在线程中调用`rt_kprintf()`,方可采用线程安全保护措施。 1) 若RT-Thread启用互斥量则使用互斥量保护; 2) 若RT-Thread没有启用互斥量则退而求其次使用信号量保护; 3) 若RT-Thread连信号量都没有启用,则采用关调度器的方式进行保护。 总之,线程安全版本`rt_kprintf()`函数会和原版函数一样可以在任何环境下调用,不会受到影响,使用时和原版`rt_kprintf`无任何区别,用户无感。**无需屏蔽原版`rt_kprintf`**,因为原版`rt_kprintf`为弱函数,本软件包会自动覆盖原版`rt_kprintf`。 ## 适用版本 4.0.4版本(即目前的master版本)以上 4.0.4以下版本需要手动注释掉原版`rt_kprintf`函数 ## 如何添加该软件包 ``` RT-Thread online packages system packages ---> [*] rt_kprintf_threadsafe: thread-safe version of rt_kprintf ---> Version (latest) ---> ``` ## 维护 Meco Man jiantingman@foxmail.com https://github.com/mysterywolf/rt_kprintf_threadsafe
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
mysterywolf
https://github.com/mysterywolf
文章
7
回答
365
被采纳
79
关注TA
发私信
相关文章
1
rt_kprintf问题,拔掉串口系统就不运行了么?
2
rt_kprintf打印异常
3
开启C++功能后,rt_kprintf和单步调试功能无法使用
4
大家有什么好用的方法开关串口打印吗
5
rt_kprintf 格式描述符
6
怎么实现printf函数打印浮点数?
7
rt_kprintf串口打印信息有时出现乱码,有时候又是正常的
8
GD32E230k开发板,打开终端窗口中最后一行是这样的,是什么问题,怎么解决?
9
rt_thread studio rt_kprintf输出中文乱码?
10
关于rt_kprintf无法显示浮点数
推荐文章
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
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部