lmyyjx 发表于 2024-6-4 16:23:31

什么时候移植GUI

CosyOS 发表于 2024-6-4 21:08:18

lmyyjx 发表于 2024-6-4 16:23
什么时候移植GUI

还得过段时间

Yang.Lian 发表于 2024-6-6 12:01:26

我完全仿照 os_debug.c 中的方法,写了一个 modbus rtu 从机,
很尴尬的是
每秒查询一次
在运行到大约 735 次查询的时候,就会“死机”,停止响应
所有内存都是静态分配

CosyOS 发表于 2024-6-6 12:44:13

本帖最后由 CosyOS 于 2024-6-6 12:52 编辑

Yang.Lian 发表于 2024-6-6 12:01
我完全仿照 os_debug.c 中的方法,写了一个 modbus rtu 从机,
很尴尬的是
每秒查询一次

那你提供相关代码,我看一下有没有问题。
或者,你自己再多方面查找原因。
重点是“死机”时还有哪些迹象?

如果是STC32的话,仔细查看 内存方案配置与编译器配置的关系:



方案三 和 方案五,内存池指针 均指向 xdata,但要注意:
方案三:内存池指针 从 0x10000 开始;
方案五:内存池指针 从 0 开始。





CosyOS 发表于 2024-6-6 13:16:39

Yang.Lian 发表于 2024-6-6 12:01
我完全仿照 os_debug.c 中的方法,写了一个 modbus rtu 从机,
很尴尬的是
每秒查询一次


注意 任务栈 是否有溢出的可能,尤其是 PSP模式,搞不好是容易任务栈溢出的。

Yang.Lian 发表于 2024-6-6 13:46:07

CosyOS 发表于 2024-6-6 12:44
那你提供相关代码,我看一下有没有问题。
或者,你自己再多方面查找原因。
重点是“死机”时还有哪些迹象 ...
我先研究研究,

死机以后,不管多久,任务还可以调度一次(仅仅一次),通过 iResumeTask 还可以触发另一个Task运行一次,至此之后就完全不响应了

我先增加 任务栈 试一试

Yang.Lian 发表于 2024-6-6 15:39:54

CosyOS 发表于 2024-6-6 13:16
注意 任务栈 是否有溢出的可能,尤其是 PSP模式,搞不好是容易任务栈溢出的。 ...

补充信息:
1. 我使用的 STC32G12K128
2. 我开启了 Debugger/TaskMgr,记录见本文附录
3. PMB1 就是 MODBUS的任务,
4. 用UART3,Debugger/TaskMgr 占用UART1
5. 自从开了 Debug/TaskManager,感觉又没有死机的迹象了

350次左右的时候
CosyOS-II 任务管理器          0.18%            
                  名称       TID   PRI状态      CPU         内存
                  
                  Taskmgr      1   7   RDY    0.07%    56B/s192B
                  Debugger   4   7   SPD       0%    43B/s160B
                  PMB1         5   7   SPD    0.04%    43B/s128B
                  EARC         7   7   SPD       0%    39B/s128B
                  RNTC         8   6   SPD    0.02%    55B/s128B
                  THC          6   5   SPD    0.02%    51B/s128B
                  Sysidle      3   0   RDY   99.82%    39B/s160B
                  
                  PSVFIFO: 1/32.
                  Task-PC: 00FF0161.
                  SysTick: 23.20us.

550次左右的时候

CosyOS-II 任务管理器          0.18%            
                  名称       TID   PRI状态      CPU         内存
                  
                  Taskmgr      1   7   RDY    0.07%    56B/s192B
                  Debugger   4   7   SPD       0%    43B/s160B
                  PMB1         5   7   SPD    0.04%    43B/s128B
                  EARC         7   7   SPD       0%    39B/s128B
                  RNTC         8   6   SPD    0.02%    55B/s128B
                  THC          6   5   SPD    0.02%    51B/s128B
                  Sysidle      3   0   RDY   99.82%    39B/s160B
                  
                  PSVFIFO: 1/32.
                  Task-PC: 00FF0161.
                  SysTick: 23.20us


800次左右的时候

CosyOS-II 任务管理器          0.18%            
                  名称       TID   PRI状态      CPU         内存
                  
                  Taskmgr      1   7   RDY    0.07%    56B/s192B
                  Debugger   4   7   SPD       0%    43B/s160B
                  PMB1         5   7   SPD    0.04%    43B/s128B
                  EARC         7   7   SPD       0%    39B/s128B
                  RNTC         8   6   SPD    0.02%    55B/s128B
                  THC          6   5   SPD    0.02%    51B/s128B
                  Sysidle      3   0   RDY   99.82%    39B/s160B
                  
                  PSVFIFO: 1/32.
                  Task-PC: 00FF0161.
                  SysTick: 23.21us.


1200次左右的时候

CosyOS-II 任务管理器          0.18%            
                  名称       TID   PRI状态      CPU         内存
                  
                  Taskmgr      1   7   RDY    0.07%    56B/s192B
                  Debugger   4   7   SPD       0%    43B/s160B
                  PMB1         5   7   SPD    0.04%    43B/s128B
                  EARC         7   7   SPD       0%    47B/s128B
                  RNTC         8   6   SPD    0.02%    55B/s128B
                  THC          6   5   SPD    0.02%    51B/s128B
                  Sysidle      3   0   RDY   99.82%    39B/s160B
                  
                  PSVFIFO: 5/32.
                  Task-PC: 00FF0161.
                  SysTick: 23.20us.



2100次左右的时候

CosyOS-II 任务管理器          0.18%            
                  名称       TID   PRI状态      CPU         内存
                  
                  Taskmgr      1   7   RDY    0.07%    56B/s192B
                  Debugger   4   7   SPD       0%    43B/s160B
                  PMB1         5   7   SPD    0.04%    43B/s128B
                  EARC         7   7   SPD       0%    47B/s128B
                  RNTC         8   6   SPD    0.02%    55B/s128B
                  THC          6   5   SPD    0.02%    51B/s128B
                  Sysidle      3   0   RDY   99.82%    39B/s160B
                  
                  PSVFIFO: 5/32.
                  Task-PC: 00FF0161.
                  SysTick: 23.20us.


还在持续运行中,没有任何问题

CosyOS 发表于 2024-6-6 16:06:42

本帖最后由 CosyOS 于 2024-6-6 16:08 编辑

Yang.Lian 发表于 2024-6-6 15:39
补充信息:
1. 我使用的 STC32G12K128
2. 我开启了 Debugger/TaskMgr,记录见本文附录

检查一下 Alias checking on pointer accesses 打勾了吗?
不要打勾。
你用的是 PSP模式吗?mcucfg中,是内存方案一吗?

Yang.Lian 发表于 2024-6-6 16:13:15

本帖最后由 Yang.Lian 于 2024-6-6 16:16 编辑

CosyOS 发表于 2024-6-6 16:06
检查一下 Alias checking on pointer accesses 打勾了吗?
不要打勾。
你用的是 PSP模式吗?mcucfg中,是 ...
Alias checking on pointer accesses 没有打钩
mcucfg_80251.h 选择是方案一: PSP

我怀疑是 PSVFIFO 溢出了

CosyOS 发表于 2024-6-6 16:47:26

Yang.Lian 发表于 2024-6-6 16:13
Alias checking on pointer accesses 没有打钩
mcucfg_80251.h 选择是方案一: PSP



那 你 PENDSV_FIFO 深度 设置大一些,
测试一段时间,观察它的最大值
页: 61 62 63 64 65 66 67 68 69 70 [71] 72 73 74 75 76 77 78 79 80
查看完整版本: 全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板