Hzyy3939
发表于 2024-9-30 10:48:14
最新的版本在哪里可以下载
springvirus
发表于 2024-9-30 14:41:03
最好有个讲解的教程,方便移植
gmaker
发表于 2024-10-8 23:29:21
本帖最后由 gmaker 于 2024-10-8 23:39 编辑
在task中能传递结构体指针吗?
zjiot
发表于 2024-10-9 09:13:33
福音啦
fanxsp
发表于 2024-10-9 09:45:36
本帖最后由 fanxsp 于 2024-10-9 09:48 编辑
gmaker 发表于 2024-10-8 23:29
在task中能传递结构体指针吗?
可以,但是任务函数本身不支持参数传递
gmaker
发表于 2024-10-9 22:35:19
本帖最后由 gmaker 于 2024-10-9 22:37 编辑
这里的stopfun并没有改变stepinfo->DirConversely 这个的值,但是调用完丢失了指针变成一个空的结构体了
调用堆栈是main.c->Task_Main->SelfCheck()->CheckChannelMoveBuffer()->Step_MoveAndStopByFun();
输出这样的
----a:99
a1:99
Stop:99
a2:0,r:16 //这里没有改变值变成0了,也就是指针参数丢失了
a4:0
有的时候a2是99就正常 有时候变0了
请问,是不是堆栈太深了导致的?
还是数据栈给的空间不够?改过OStypeInt8u OSLOC_STACKS taskStack_main;这个30改到100都没用
请问下任务执行时会把堆栈的变量都存起来吗?我用协作模式也是一样的结果
fanxsp
发表于 2024-10-10 07:56:11
本帖最后由 fanxsp 于 2024-10-10 08:02 编辑
gmaker 发表于 2024-10-9 22:35
这里的stopfun并没有改变stepinfo->DirConversely 这个的值,但是调用完丢失了指针变成一个空的结构体了
调 ...
没有完整的程序,你有没有在多个任中都要调用这个函数据,或使用这个结构?printf()函数是不可重入的,其它任务还有没有用到这个函数?
gmaker
发表于 2024-10-10 10:14:54
没有这个是启动自检其他任务还是挂起状态的,我做个重现的简化代码试试
gmaker
发表于 2024-10-10 10:20:07
协作模式是不是就会避免重入问题,只有OSDelay才会切换任务?我其实只希望OSDelay才却换任务.
fanxsp
发表于 2024-10-10 12:41:48
gmaker 发表于 2024-10-10 10:20
协作模式是不是就会避免重入问题,只有OSDelay才会切换任务?我其实只希望OSDelay才却换任务. ...
协作模式,只在OSDelay()处进行任务切换。简化后,如果还不能发现问题,可以把完整程序发出来,大家一起找一下原因。