Hei瞎搞
发表于 2025-4-22 13:52:12
cosyos中可以添加CDC虚拟串口使用吗,希望出一个教程
oce4n
发表于 2025-4-30 15:18:16
定义两个定时器中断任务,为什么只有0号定时器任务可以触发,1号不行啊
CosyOS
发表于 2025-4-30 21:49:02
oce4n 发表于 2025-4-30 15:18
定义两个定时器中断任务,为什么只有0号定时器任务可以触发,1号不行啊
你用的是 CosyOS-II 的早期版本,当时对“定时中断”的支持存在一个bug:
就是如果不开启 OS-DEBUG,如果用户仅定义一个定时中断,
也就是全局仅有一个定时中断,将不能运行它的任务或钩子。
如果开启了 OS-DEBUG,用户仅定义一个定时中断,是可以正常运行的,
因为此时全局一共有两个定时中断(含一个系统的)。
但你现在遇到的问题是已经定义了两个定时中断,有一个不能正常运行。
首先可以通过点灯的方式验证是否已经进入了任务,如果确定没有进入过任务,
我猜测可能有以下原因:
1、可能还存在其它的用户级的定时中断,只是你不知道。
如果你直接使用“工程模板/测试例程”是可能会存在这样的问题。
// <o> 用户定时中断总数
// <i> 取值范围:<0-64>
// <i> 用户创建的定时中断任务/钩子总数。
// <i> 此项参数应等于实际的数量,既不能大于也不能小于。
// <i> 如果定义数量大于实际数量,会引起编译器警告,否则不会有任何提示。
#define SYSCFG_USERTIMINTTOTAL 0
所以,首先尝试把用户定时中断总数改成3,编译看有没有警告?
如果没有警告:
证明还存在其它的用户级的定时中断;
如果告警了:
证明用户级的定时中断确实只有两个。
1、定时中断定时器位数,设置大一点,以防溢出,如 32,再试一试;
2、用户任务总数,设置大一点,以防溢出,再试一试;// 也许还存在其它你不知道的任务
3、还不行就替换为 CosyOS-II 的最终版本 V3.4.0,这个版本对定时中断/查询的支持没有bug,再试一试;
4、开启任务管理器,监控任务的运行情况,有助于辅助查找原因;
5、最终还是不行,把程序发过来,我帮你找原因。
CosyOS
发表于 2025-4-30 21:52:43
Hei瞎搞 发表于 2025-4-22 13:52
cosyos中可以添加CDC虚拟串口使用吗,希望出一个教程
等我这两天研究一下,有结论了会公布
神农鼎
发表于 2025-5-1 11:58:40
CosyOS 发表于 2025-4-30 21:52
等我这两天研究一下,有结论了会公布建议使用最新的USB库
dashuai
发表于 2025-5-2 16:34:21
{:4_188:}
Apple12306
发表于 2025-5-8 12:16:52
我有个疑问,为啥这里的论坛,项目例程都是直接附的附件,没有git仓库啊?
神农鼎
发表于 2025-5-8 13:39:43
Apple12306 发表于 2025-5-8 12:16
我有个疑问,为啥这里的论坛,项目例程都是直接附的附件,没有git仓库啊? ...
GIT 没给我们广告费,所以直接去了
dwwzl
发表于 2025-5-8 22:14:46
神农鼎 发表于 2025-5-8 13:39
GIT 没给我们广告费,所以直接去了
哈哈,很直白,不过git似乎是开源的吧,该奉献的的时候也不要吝啬哈
sdwys
发表于 2025-5-8 23:55:36
作者能不能阐述一下CosyOS内核的设计思想。在读内核代码时遇到最多的是#define,在#define定义的后面你永远不知道后面还有多少个#define,你以为看到的是函数可后面还是#define,这种层层包装,有的地方多个括号,有的地方少个括号,直接增加阅读理解难度。为了一组宏定义,要努力拼命的去用宏处理器的思想去理解代码。作者能否阐述一下为什么这么设计。