杰瑞鼠
杰瑞鼠

注册于 2 years ago

回答
38
文章
3
关注者
4

杰瑞鼠 发表了评论

2 weeks ago

相同优先级,时间片的3个线程有个运行一段时间后就不在运行

@杰瑞鼠 确认log不显示是因为没有调度。因为无论结果如何我都会打印采集值的,并且modbustcp读的值在log没有时也不变化,说明值没有得到更新也即没有运行。modbustcp线程优先级是6,短连

杰瑞鼠 发表了评论

3 weeks ago

读取内部flash报错:SCB_CFSR_BFSR:0x82 PRECISERR SCB->BFAR:08120000

我的W5500运行一段时间出现这个错误,请问怎么找原因?

杰瑞鼠 对问题发布了答案

3 weeks ago

wiznet(W5500) 设置MAC

修改303行为你自己的MAC字符串即可。

杰瑞鼠 发表了评论

3 weeks ago

相同优先级,时间片的3个线程有个运行一段时间后就不在运行

@mii规律是刚上电三个串口(每个上面4个从机)采集的log日志都有,逐渐的是2个串口的,最后是一个串口的,复位后又三个都有,究竟是什么原因导致了log丢失,我再试试硬件在线仿真,看出问题后的的串口采

杰瑞鼠 对问题发布了答案

1 month ago

相同优先级,时间片的3个线程有个运行一段时间后就不在运行

猜想原因可能是这样的:假如高优先级任务就绪前,三个任务中正在运行的是MB_RTU_THRAD1,当高优先级任务就绪时,MB_RTU_THRAD1被抢占变成非就绪态,在网络线程中因为不知道前一刻运行的是

杰瑞鼠 发表了评论

1 month ago

相同优先级,时间片的3个线程有个运行一段时间后就不在运行

@flashman2002 1 你说的这个函数没有找到。2 这个不是显示覆盖,是真的线程被忽略了,因为同样加载动态物理量,这又线程1没有数据。

杰瑞鼠 发表了评论

1 month ago

相同优先级,时间片的3个线程有个运行一段时间后就不在运行

因为等待信号量是一种阻塞,所系系统没有再调用延时,这3个线程基本逻辑都一样。每个线程都是ModbusRTU,都接了4个从机。

杰瑞鼠 发表了评论

1 month ago

相同优先级,时间片的3个线程有个运行一段时间后就不在运行

信号量初始为1,MB_RTU_THRAD1~3共用这1个信号量,永久等待,申请到用完之后就释放并让出控制权,就像接力棒传递一样。网络里面只时挂起和恢复线程,对MB_RTU_THRAD1~3用到的信号量

杰瑞鼠 发表了评论

1 month ago

关于syswatch 组件重启线程动态内存问题

socket不通你分析是什么原因?你的是W5500还是什么LWIP?,你也是短连接?

杰瑞鼠 发表了评论

1 month ago

wiznet软件包编译错误

既然我都定义了静态分配IP,为何还有这个?静态下这个怎么解决,你说的讨论在什么地方,我没搜索到

发布
问题