- 主题:用freertos做了个系统
发现还不如用裸机做开发呢
用了实时系统但结果并不实时
也不知道是那里出了问题
不是科班的搞这个 确实有点费劲
高手说说我该怎么办呢
该如何查问题呢
--
FROM 39.144.53.*
哈哈,多加点灯或者打印信息一点点跟踪咯
--
FROM 39.144.104.*
嗯 你这么说提醒我了
我是从串口中断取数据 发送队列传递给后面的任务
那么这个任务默认的就是1ms执行长度啊
这个时间里 串口队列里面大概堆积了38/8个数据了(我这个串口38400)
当然不是实时的了
那怎么半 我要把这个数据处理程序放到中断回调函数里面吗?
【 在 Mikov 的大作中提到: 】
: 所谓rtos, 更侧重的是os而不是rt.
: rtos都有一个系统tick, 这个系统tick通常是1ms, 如果你用1ms的tick, 那么这个系统里的任何动作, 都做不到比1ms更精细, 上下文切换也要时间, 几个任务切换几次, 延迟就大了.
: 如果你要非常实时, 那就不要用任何os. 裸机汇编, 对着指令算时钟数吧, 这一定是最实时的.
: ...................
--
修改:numgao FROM 39.144.53.*
FROM 39.144.53.*
1. 改系统中断优先紴
2. 用dma
【 在 numgao 的大作中提到: 】
: 标 题: Re: 用freertos做了个系统
: 发信站: 水木社区 (Mon Jul 28 12:20:15 2025), 站内
:
: 嗯 你这么说提醒我了
: 我是从串口中断取数据 发送队列传递给后面的任务
: 那么这个任务默认的就是1ms执行长度啊
: 这个时间里 串口队列里面都堆积了38个数据了(我这个串口38400)
: 当然不是实时的了
:
: 那怎么半 我要把这个数据处理程序放到中断回调函数里面吗?
:
:
: 【 在 Mikov 的大作中提到: 】
: : 所谓rtos, 更侧重的是os而不是rt.
: : rtos都有一个系统tick, 这个系统tick通常是1ms, 如果你用1ms的tick, 那么这个系统里的任何动作, 都做不到比1ms更精细, 上下文切换也要时间, 几个任务切换几次, 延迟就大了.
: : 如果你要非常实时, 那就不要用任何os. 裸机汇编, 对着指令算时钟数吧, 这一定是最实时的.
: : ...................
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 39.144.53.*]
--
FROM 112.54.128.*
实时需要抢占式多任务
或者直接放到中断处理程序里面
【 在 numgao 的大作中提到: 】
: 发现还不如用裸机做开发呢
: 用了实时系统但结果并不实时
: 也不知道是那里出了问题
: ...................
--
FROM 171.213.247.*
对任务切换没弄明白啊
--
FROM 218.68.123.*
就算是10ms一个tick也不影响你串口数据的及时响应,有信号量、消息等等
愿意放进中断程序也行,一锅烩,只是完全没有必要
说上下文切换耗时的,如果那点时间都会影响到通讯,就不是rtos的锅
--
FROM 211.157.135.*
还有就是楼主的问题,现在AI足够帮你解惑,基操
--
FROM 211.157.135.*
优先级?
【 在 numgao (难木刀) 的大作中提到: 】
: 发现还不如用裸机做开发呢
: 用了实时系统但结果并不实时
: 也不知道是那里出了问题
:
--
FROM 115.171.36.*
RTOS就是实时的,你这情况只能说是什么都学到。
实时性不是指中断任务都要马上执行,并且执行得越快越实时。
而是不同的应用对实时性有不同的要求,实时操作系统只需要满足具体应用的实时性指标。一般的协议实时性要求是小于1ms,意思是只要事件中断触发之后1ms内响应就被认为是实时响应,1ns响应和100us响应是没区别的。
比如说工业5G物联网要求的通信延迟≤1ms,同一应用场景下的PROFINET IRT工业实时以太网是≤250us,所以前者用的RTOS要求1000systicks,后者需要4000systicks的RTOS。
串口打印这种应用,本身没有实时性指标,讨论实时性就是多余的。
【 在 numgao 的大作中提到: 】
: 发现还不如用裸机做开发呢
: 用了实时系统但结果并不实时
: 也不知道是那里出了问题
: ...................
--
FROM 223.104.82.*