搜索
bottom↓
回复: 18

UCOS-III上移植freemodbus 在串口中断加OSIntEnter();函数吗

[复制链接]

出0入0汤圆

发表于 2018-6-1 13:36:30 | 显示全部楼层 |阅读模式
第一次移植ucos  在写入移植freemodbus 中串口中断一定要加
OSIntEnter(); OSIntExit();        函数做处理吗, 看了网上的个别例子什么没有做加
个别开发板串口中断用的是用信号量做处理,各位是怎么处理的

出0入0汤圆

发表于 2018-6-1 14:35:49 来自手机 | 显示全部楼层
一般最好加上,防止任务调度破坏中断行为,我们实际工程应用中都是加的,不加有概率性出现异常

出0入0汤圆

 楼主| 发表于 2018-6-1 14:43:07 | 显示全部楼层
aaabbbad 发表于 2018-6-1 14:35
一般最好加上,防止任务调度破坏中断行为,我们实际工程应用中都是加的,不加有概率性出现异常 ...

您没用什么信号量或消息处理吧?

出0入8汤圆

发表于 2018-6-1 15:00:53 | 显示全部楼层
不明白本质的话,最好的做法就是都加上,这也是官方的做法。
必须要加的原因是:
如果在 ISR 触发了任务调度请求,例如释放某个信号量,最终的调度,会发生在 OSIntExit 里面,而且是中断嵌套的最外层的 OSIntExit。

出0入0汤圆

发表于 2018-6-1 17:29:30 | 显示全部楼层
jiangzhimin 发表于 2018-6-1 14:43
您没用什么信号量或消息处理吧?

信号量和消息我一般不会在中断中使用,只会在任务间传递

出0入0汤圆

 楼主| 发表于 2018-6-2 09:34:02 | 显示全部楼层
本帖最后由 jiangzhimin 于 2018-6-2 09:38 编辑
aaabbbad 发表于 2018-6-1 17:29
信号量和消息我一般不会在中断中使用,只会在任务间传递


再次请教一个问题 这freemodbus的的任务时候是怎么做任务切换的呢
static  void  AppTaskModbus ( void * p_arg )
{
    OS_ERR      err;

          eMBInit(MB_RTU, 0x01, 0x01, 9600, MB_PAR_EVEN); //初始化 RTU模式 从机地址为1 USART1 9600 无校验  
          eMBEnable(); //启动FreeModbus
        (void)p_arg;


    while (DEF_TRUE)
      {                                       
          eMBPoll();//总线侦听
         OSTimeDly ( 50, OS_OPT_TIME_DLY, & err );
       }
                       
}

OSTimeDly ( 50, OS_OPT_TIME_DLY, & err );函数加了延时50还可以能相应到,但是加点 500 就返回不了, 因为要实时监听发过来的数据实时相应,有没有别的切换任务好的办法

看到有的例子没有延时,什么的也能做到任务的切换吗

出0入8汤圆

发表于 2018-6-2 09:59:14 | 显示全部楼层
jiangzhimin 发表于 2018-6-2 09:34
再次请教一个问题 这freemodbus的的任务时候是怎么做任务切换的呢
static  void  AppTaskModbus ( void * ...

µC/OS-III 的调度策略为优先级抢占 + 时间片轮转。
你要去查一下这些术语的知识。

对于没有延时、或者等待同步对象的线程,这是不可取的,因为会让更低级的任务,没有机会运行。如果现阶段表现没问题的话,只能说没有更低优先级的任务了,暂时看不出问题。

要想实时,就是通过信号量、事件之类的同步对象,来实现实时通知唤醒。

出0入0汤圆

发表于 2018-6-4 11:49:50 | 显示全部楼层
延时太长无法响应的话有可能是你的任务堆栈开的不够大,或者接收区有溢出的嫌疑;任务没有延时的话系统就死掉了(一直轮不到其他任务运行),任务调度的核心就是通过延时、中断这些优先级来实现的,建议好好理解下ucos的运行机制

出0入0汤圆

 楼主| 发表于 2018-6-4 12:26:23 | 显示全部楼层
aaabbbad 发表于 2018-6-4 11:49
延时太长无法响应的话有可能是你的任务堆栈开的不够大,或者接收区有溢出的嫌疑;任务没有延时的话系统就死 ...

多些您的指点

出0入8汤圆

发表于 2018-6-4 14:32:34 | 显示全部楼层
我发现一个问题:我回复了 2 次,但结果好像只有我一人在自言自语,
好吧,或许是我自作多情了,不该插手回复了。

出0入8汤圆

发表于 2018-6-4 14:42:50 | 显示全部楼层
aaabbbad 发表于 2018-6-4 11:49
延时太长无法响应的话有可能是你的任务堆栈开的不够大,或者接收区有溢出的嫌疑;任务没有延时的话系统就死 ...

我发现你的回复,楼主都跟你互动了。
而我的回复,全部被无视掉,一个帖子就我们两个在与楼主交流,这真是受到一万点暴击。
如果是很多人在交流,没回复到,那还可以理解。
你怎么看?难道我的回复内容是瞎扯的,不值一提?

出0入0汤圆

 楼主| 发表于 2018-6-4 17:51:38 | 显示全部楼层
security 发表于 2018-6-4 14:42
我发现你的回复,楼主都跟你互动了。
而我的回复,全部被无视掉,一个帖子就我们两个在与楼主交流,这真 ...

首先是我的不对,您说的每句话我有去网上查相关的东西和资料, 对我帮助挺大的,我只是一知半解,恢复怕说错了,
就好像 武林高手指点,小白有有些地方听着有道理,不能全部领悟,只会点点头, 我一句一句恢复感谢 好像刷分的怀疑 抱歉

出0入8汤圆

发表于 2018-6-5 08:37:41 | 显示全部楼层
jiangzhimin 发表于 2018-6-4 17:51
首先是我的不对,您说的每句话我有去网上查相关的东西和资料, 对我帮助挺大的,我只是一知半解,恢复怕 ...

其实只是要一个良性的反馈互动而已。
不然在强烈对比之下,真是一万点暴击。

出0入8汤圆

发表于 2018-6-5 08:59:42 | 显示全部楼层
security 发表于 2018-6-4 14:32
我发现一个问题:我回复了 2 次,但结果好像只有我一人在自言自语,
好吧,或许是我自作多情了, ...

大佬,原谅我没忍住笑了,我也奇怪为啥没跟你回复,结果你自己就问出来了。。。

楼主有点打击回复热情了。。。(看到后面楼主的回复了)

出0入8汤圆

发表于 2018-6-5 09:05:30 | 显示全部楼层
Jmhh247 发表于 2018-6-5 08:59
大佬,原谅我没忍住笑了,我也奇怪为啥没跟你回复,结果你自己就问出来了。。。

楼主有点打击回复热情了 ...

可能他俩是真爱哈哈哈。

出0入0汤圆

 楼主| 发表于 2018-6-5 10:51:15 | 显示全部楼层
security 发表于 2018-6-5 08:37
其实只是要一个良性的反馈互动而已。
不然在强烈对比之下,真是一万点暴击。  ...

好的,我以后回互动的

出0入0汤圆

发表于 2018-6-5 11:25:06 | 显示全部楼层
加上,会少走弯路,另外信号量用在中断没问题,在任务中获取后可以处理后续

出0入0汤圆

发表于 2018-6-5 11:39:00 | 显示全部楼层
security 发表于 2018-6-4 14:42
我发现你的回复,楼主都跟你互动了。
而我的回复,全部被无视掉,一个帖子就我们两个在与楼主交流,这真 ...

哈哈,做技术的人就是比较直白不喜欢绕来绕去的,看来高手是“吃醋”了,我还真没留意他只回复我了。话说我们这里的人就是“有一说一”,这样看来你的积极性确实受到了打击,换成是我估计也是这样想,越来越喜欢我们的直男社区了:“这里远比混乱的现实世界美好”

出0入8汤圆

发表于 2018-6-5 11:58:22 | 显示全部楼层
aaabbbad 发表于 2018-6-5 11:39
哈哈,做技术的人就是比较直白不喜欢绕来绕去的,看来高手是“吃醋”了,我还真没留意他只回复我了。话说 ...

可能我比较闲吧。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 07:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表