Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
syswatch_系统看守组件
10
syswatch 的时间参数设置
发布于 2022-12-05 11:06:20 浏览:1099
订阅该版
syswatch低功耗下模式下的表现形式 想请教一下syswatch组件运行后,当MCU分别进入`睡眠模式` 和 `停止模式` 以及`standby模式`后,syswatch组件分别有什么影响。也就是进入低功耗模式时syswatch的表现。 进入低功耗模式后,看门狗会不会停止计数 另外,还有几点不是很明白,文档中提到,当检测到有线程发生异常阻塞时,是指该线程阻塞MCU吗,不是线程进入阻塞态吧,感觉上应该理解为是一旦有线程一直抢占住CPU长达一定时间就判断该线程异常。这儿的发生异常阻塞还有别的什么情况异常阻塞吗。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221205/3cdcc5b9dc3b6b3406cabac4510b2711.png) 另外,下面这三个参数,1-是指当线程一直抢占住CPU运行60s(一直被调度器调度进入运行态持续运行了60s)就判断它时异常了吗?2-这个超时时间是指再延迟个15s确定他为异常线程,也就是总共经过75s这个抢占住CPU的线程会被杀死或者重新载入。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20221205/0e756b898196ce8f4806d893a47d5c54.png.webp) 综合来看,即使是用户的最高优先级线程,也不能一直抢占住CPU运行超过75s。也就是即使有其他低优先级线程运行时,高优先级线程也不能抢占低优先级线程运行超过75s? 那么就有个疑问,如果是一个最低优先级的线程,当其他高优先级都在等待条件阻塞时,这个低优先级执行了75s怎么办?它会被杀死吗?
查看更多
3
个回答
默认排序
按发布时间排序
踩姑娘的小蘑菇
2022-12-06
这家伙很懒,什么也没写!
对低功耗模式的行为不太清楚 > 感觉上应该理解为是一旦有线程一直抢占住CPU长达一定时间就判断该线程异常 是这样理解的,但这个阻塞的概念要明确,如某个线程调用while(1){}死循环执行代码,会一直阻塞该线程,导致优先级低于该线程的其他线程一直得不到运行;其他调用类似rt_sem_take实现“阻塞”的操作为主动让出CPU,内核的延时函数也会让出CPU,内核会转而调度其他就绪态的线程,不属于异常阻塞 IDLE为最低优先级线程,IDLE一直运行为正常情况,IDLE一直得不到运行才需要考虑是否发生异常阻塞
张世争
2022-12-06
学以致用
- 可以简单认为是个软件看门狗吧,在低优先级里面【喂狗】,如果低优先级线程IDLE 一直得不到执行,就咬狗。 - 建议在深睡眠、StandBy模式,冻结硬件看门狗,STM32的硬件看门狗,在 STOP、StandBy模式下默认不关闭,造成咬狗重启,这个需要修改STM32 的 option byte【选项字节】 - 软件看门狗,在 STOP、StandBy模式下,系统都停掉了,不会咬狗,tick 不改变。
杰瑞鼠
2022-12-07
2024龙行天下
对于低功耗模式下syswatch的表现不太清楚。 个人理解:这个组件作用是通过赋予最高优先级和获得看门狗定时器的操作权限(其它线程就不要用看门狗了,统一由syswatch接管),syswatch因为有最高权限,所以可以中断其它所有线程的能力;通过监视其它线程的属性(与时间有关的超时参数)当其违反了,就采取一些措施(暂停/杀死线程,软重启/硬重启)。个人认为,因为操作系统层面一个线程对其它线程的处理除了信号,完成量之外的手段较少(挂起和恢复系统不推荐,直接杀死可能没有考虑其它相关的资源等待),如果这块能完善,无论是syswatch还是自己设计一个监护线程都是大有裨益的!
撰写答案
登录
注册新账号
关注者
0
被浏览
1.1k
关于作者
LeonRT
hello
提问
34
回答
20
被采纳
0
关注TA
发私信
相关问题
1
syswatch低优先级线程被杀问题
2
关于syswatch 组件重启线程动态内存问题
3
syswatch的时间相关参数设置
4
syswatch集成后程序一直在重复进入syswatch_init
5
syswatch在恢复有些线程后,是否释放该线程之前获取的信号量
6
syswatch 例程报错
7
加入systemview软件包后syswatch软件包不启作用
8
syswatch看守功能失效
9
rt-thread如何检测某个线程的执行代码进入了死循环
10
hc32l196单片机软件加入syswatch组件,唤醒时会高出10~20ua的功耗,哪些因素会导致功耗增大?
推荐文章
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
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部