2019-12-26 18:55发布
mhw 发表于 2014-7-22 17:28 别玩RTX了,用freertos吧,开源+免费+资料多+跨平台。 最重要的是可靠性。好几年前TI已经充分验证过并且固 ...
wuzhujian 发表于 2014-7-24 08:50 任何程序代码,都有其应用条件的,只要条件满足了,代码就不会有问题。 这就是windows之所以有那么多BUG的 ...
wuzhujian 发表于 2014-7-24 09:48 告诉你一个在windows下多发多收的例子,叫IOCP,中文名叫:IO完成端口。 其目的就是:用少量的线程,处理大 ...
最多设置5个标签!
rtx算是我首先研究的一个rtos吧,是针对arm专门优化的,应该说性能确实强大。。。。有机会我是打算再看看freertos的,看看它的协程有什么独到之处
这就是windows之所以有那么多BUG的原因。
在RTX的中断服务代码中,还有从线程堆栈复制线程参数到系统堆栈的代码。
如果不让异常能够嵌套,这个复制的过程完全没有必要。因为已经有个4个参数保存的寄存器R0~R3中了。(超过4个参数就不行了,超出的部分参数,是压在线程堆栈的,而代码执行用的是系统堆栈)。
学习、分析人家的代码,要理解人家这么写的原因,而非断章取意。
wu大侠说的是,我本人因为经验不足,某些东西理解不够透彻,很容易误会源代码的意图。
比如这个邮箱,我在写读书笔记时也提到了现实中邮箱是多发单收的,rtx的邮箱操作实际是这个特性的超集。正是由于是超集我就没把rtx的邮箱操作作限定。
我查看了下ucos2的邮箱还有广播特性,多个等待接收任务可以同时接收并进入就绪态(这里就是多收,和真实邮箱不同),所以rtx的邮箱有多收的形,而没有多收的实,和keil沟通的结果就是必须做这个限定。。。当然手册就没提这档子事
wu大侠提到了中断中复制任务栈的情况,可否用代码明示,我看了只有SVC和PENDSV是有用到汇编代码,也有对任务栈操作的内容,不过我看不出问题在哪?是指SVC调用系统服务函数前,重新装载了r0-r3,r12吗,这个确实是为中断嵌套考虑
你说的对。。。我听说nginx性能比apach好,并发能力非常优秀,应该是差不多的道理。
其实我以前想用协程而不是rtos在单片机上,可惜在rtos上本身支持协程的就freertos,其他好像都没有
协程比线程开销小多了
RTX的邮箱是不适合多发多收的,你给出了一个多发多收的例子
一周热门 更多>