Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
发现一个调度问题
发布于 2010-05-25 11:11:09 浏览:5898
订阅该版
前几天刚下的SVN代码,在LM3S6938上跑,无意中发现如果只启动一个线程,在线程中简单的一个死循环如while(1); 那么板子的网络就无法ping通了,怀疑是当前线程始终占用了CPU资源,改为: while(1) { rt_thread_sleep(1); } 则一切正常。 是不是0.4里面调度上没考虑用户单任务线程死循环的情况?0.3版本时间上没来得及测试。
查看更多
10
个回答
默认排序
按发布时间排序
shaolin
2010-05-25
这家伙很懒,什么也没写!
>前几天刚下的SVN代码,在LM3S6938上跑,无意中发现如果只启动一个线程,在线程中简单的一个死循环如while(1); 那么板子的网络就无法ping通了,怀疑是当前线程始终占用了CPU资源,改为: > >while(1) { rt_thread_sleep(1); } 则一切正常。 > >是不是0.4里面调度上没考虑用户单任务线程死循环的情况?0.3版本时间上没来得及测试。 --- 如果是你启动的线程优先级比eth任务的优先级高,那应该是会在高优先级的任务中while(1)出不来的,因为低优先级的任务得不到执行。
bernard
2010-05-25
这家伙很懒,什么也没写!
这个是RTOS的基本特征之一 [s:186]
goldmusic
2010-05-25
这家伙很懒,什么也没写!
哈!是我大意了,下意识以为系统的eth线程优先级会很高的(以前用别的RTOS缺省都高),刚才一看rtconfig.h,优先级刚好比我的低 [s:166] 不过还是建议斑竹把rtconfig.h中LWIP的相关线程优先级默认值调高,这样比较符合很多以太网的应用环境,毕竟用户很可能在他的线程里面不使用阻塞,而偷懒使用while循环死等某个值
huangxi_hans
2010-05-25
这家伙很懒,什么也没写!
您这样的做法根本就是不太合理的,这样做其他的任务没有办法跑的。
shaolin
2010-05-25
这家伙很懒,什么也没写!
>哈!是我大意了,下意识以为系统的eth线程优先级会很高的(以前用别的RTOS缺省都高),刚才一看rtconfig.h,优先级刚好比我的低 [s:166] > >不过还是建议斑竹把rtconfig.h中LWIP的相关线程优先级默认值调高,这样比较符合很多以太网的应用环境,毕竟用户很可能在他的线程里面不使用阻塞,而偷懒使用while循环死等某个值 --- 在RTOS环境下,一般不会while循环死等,而是会使用semphore或mutex来做同步或者互斥操作。
goldmusic
2010-05-25
这家伙很懒,什么也没写!
嗯,这个我知道,我通常也都是用典型的线程同步,只是拷了我的demo给同事后他修改代码里面恰好加了一个while引发了这个现象,而我没注意LWIP线程的优先级,以前也比较常见集成别人的代码里存在使用while的,只不过通常用户进程(线程)的优先级较低能被调度出去,久了就疏忽了。 另外一个问题请教 bernard 和 shaolin,目前RT-Thread在中断服务程序中对信号量等线程同步机制的使用是否和普通线程中使用没有区别(也就是有否额外的限制)?不好意思刚开始试用,也不及细看文档和测试,主要想尽快在我另外一个STM32开发板上试试RT-Thread的GUI功能,谢谢!
bernard
2010-05-25
这家伙很懒,什么也没写!
中断服务例程中不能使用挂起相关的操作,可以用于唤醒一个线程(sem_release, mbox_send等),但不能把中断服务例程挂起。
aozima
2010-05-26
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
>恰好加了一个while引发了这个现象,而我没注意LWIP线程的优先级,以前也比较常见集成别人的代码里存在使用while的,只不过通常用户进程(线程)的优先级较低能被调度出去 --- 即使ETH的优先级比这个DEMO线程高.但如果此线程使用了while(1); IDLE线程也无法运行. 所以在多线程的系统中应该尽快地出让CPU.
goldmusic
2010-05-26
这家伙很懒,什么也没写!
谢谢各位!很好的氛围,希望RT-Thread社区不断壮大!
撰写答案
登录
注册新账号
关注者
0
被浏览
5.9k
关于作者
goldmusic
这家伙很懒,什么也没写!
提问
3
回答
7
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
RTT串口查找函数使用过程中遇到的问题。
2
RT-Thread CI编译产物artifacts自动上传功能介绍
3
STM32G030移植RT-Thread
4
CubeMX & RT-Thread Studio 联合开发说明
5
RT-Thread项目助手v0.3 | Ubuntu与MacOS平台的RT-Thread Env
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
rt-smart
RTC
FAL
I2C_IIC
cubemx
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
GD32
定时器
ADC
flashDB
编译报错
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
Debug
SFUD
ulog
msh
C++_cpp
MicroPython
本月问答贡献
出出啊
1522
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
815
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部