硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1064|回复: 4
收起左侧

[以太网] 在多任务环境下,使用udp发送报文是否需要关中断

[复制链接]

12

主题

26

回帖

62

积分

初级会员

积分
62
发表于 2021-11-26 14:00:01 | 显示全部楼层 |阅读模式
想请教大家一个问题:
在运行多个任务的环境下,使用Systick_IRQ进行周期为10ms的任务调度,使用UDP发送数据包是否需要关中断,以确保数据包完整发送。

err_t udp_sendData(struct udp_pcb *pcb, struct pbuf *p, struct ip_addr* dst_ip, u16_t dst_port)
{
        __disable_irq();        
                                                       
        err = udp_sendto(pcb, p, dst_ip, dst_port);       
                                                       
        __enable_irq();
        return err;
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115668
QQ
发表于 2021-11-26 15:06:02 | 显示全部楼层
不要开关中断,太影响性能了。

多任务都使用的话,函数要支持重入。

单个任务的话,无所谓。
回复

使用道具 举报

12

主题

26

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2021-11-26 15:46:53 | 显示全部楼层
性能倒不是问题,数据量不大,1秒钟也就几十个数据包。
主要是之前提到的lwip会不定期卡死的问题一直没解决,就在想是不是这方面的原因,测试下来不开关中断发报文,依然有卡死的现象。
因为硬件也是刚做的,不敢保证没有问题,所以就很苦恼。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115668
QQ
发表于 2021-11-26 16:27:33 | 显示全部楼层
szttg 发表于 2021-11-26 15:46
性能倒不是问题,数据量不大,1秒钟也就几十个数据包。
主要是之前提到的lwip会不定期卡死的问题一直没解 ...

lwip的稳定性不好做,要玩转,得好好花一番工夫。

回复

使用道具 举报

12

主题

26

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2021-11-26 17:22:25 | 显示全部楼层
eric2013 发表于 2021-11-26 16:27
lwip的稳定性不好做,要玩转,得好好花一番工夫。

这个项目之前是在F407上开发的,运行差不多两年了,一直很稳定,没有出现这个卡死的问题。
最近移植到H743上,所有功能都正常了,出现了这个不稳定的问题,感觉很费解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-11 08:26 , Processed in 0.269398 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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