tzz1983
发表于 2024-3-28 21:15:24
本帖最后由 tzz1983 于 2024-3-29 10:04 编辑
杨为民 发表于 2024-3-28 17:20
请你亲自开帖,态度诚恳地亲自征求广大网友的意见
优化了一晚上,感觉已经到位了,杨老师,坛友们,费点心,再看看?
做着做着,感觉确实有些喜欢这个"No_PendSv"版本了,还是杨老师有先见之明
杨为民
发表于 2024-3-29 02:50:19
tzz1983 发表于 2024-3-28 21:15
优化了一晚上,感觉已经到位了,杨老师,坛友们,费点心,再看看?
做着做着,感觉确实有些喜欢这个"No_ ...
(1)本帖1楼的楼主像个男子汉,自己新开一帖,拎着棍子就上擂台亮家伙。虽然走错了赛场,可是勇气满满的就值得鼓励。
(2)本帖161楼的楼主像个女孩子,躲在人后面老问别人自己的新裙子好不好看?等大家都说好看了,才敢上T台。
(3)中国老话说“是骡子是马拉出来遛遛”
楼主,想上擂台吗?
擂台有高人,擂台有裁判,擂台有观众,擂台出英雄!
杨为民
发表于 2024-3-29 03:01:30
tzz1983 发表于 2024-3-28 21:15
优化了一晚上,感觉已经到位了,杨老师,坛友们,费点心,再看看?
做着做着,感觉确实有些喜欢这个"No_ ...
(1)首先要感谢LAOXU给出的满分答案
(2)其次不要再忽悠帖主了,STC FreeRTOS已经走在正确的路上了
gentleman
发表于 2024-3-29 09:46:20
杨为民 发表于 2024-3-29 03:01
(1)首先要感谢LAOXU给出的满分答案
(2)其次不要再忽悠帖主了,STC FreeRTOS已经走在正确的路上了
先谢谢杨老师 的警告和赞许
只是学生还有些不清楚 如果多次被忽悠就不是男子汉,而是大笨蛋了{:4_167:}
请杨老师解惑
修改的方法
钩子/嵌套计数器 部分已经实现了,其他会在下个月进行修改(本来这些想法在完成前不想拿出来,怕实现不了反而误导大家)
杨为民
发表于 2024-3-29 13:28:44
本帖最后由 杨为民 于 2024-3-29 13:50 编辑
gentleman 发表于 2024-3-29 09:46
先谢谢杨老师 的警告和赞许
只是学生还有些不清楚 如果多次被忽悠就不是男子汉,而是大笨蛋了
(1)首先,FreeRTOS的STC官方版还未完成的“taskYIELD_FROM_ISR”这个中断级任务切换函数是事实。
(2)你想解决什么问题?是解决LAOXU题目的问题吗?还是要解决用户在中断内怎么进行任务切换的问题?
那么解决这俩个问题必须要使用“taskYIELD_FROM_ISR”这个函数才能解决吗?你应该在大脑中先出回答这个问题再行动,没想好就行动是无的放矢。
(3)你想实现“taskYIELD_FROM_ISR”这个函数,可你知道在这个函数在FreeRTOS中主要用在什么地方?你现在是碰到非“taskYIELD_FROM_ISR”这个函数就不能解决的问题了吗?
FreeRTOS是一个整体系统,如果这些都不清楚,你怎么能保证你的实现调用后不会产生系统崩溃?
(4)到今天,你们都没有问自己一个问题:为什么FreeRTOS的第一个STC官方版漏掉了“taskYIELD_FROM_ISR”函数的实现?是当初移植团队的疏忽?还是他们的水平不如你们?
如果都不是,那楼主你大大咧咧地“方向改为优化官方的FreeRTOS”,那不就像LAOXU要优化C51一样了吗?
(5)不知道楼主之前在STMF32上用过和研究过FreeRTOS吗?不知道楼主之前认真读完至少一本FreeRTOS的理论的书吗?不知楼主了解STM32F与STC32G/F这两种单片机在中断机制方面的重大差别是什么吗?
如果楼主这三个条件都有,就不会问出地164楼的问题了。如果不是都具备,那我觉得楼主还是先读读书,学习学习再动手,也保证不会被忽悠。书中自有黄金屋,书中自有颜如玉。
杨为民
发表于 2024-3-29 13:49:25
gentleman 发表于 2024-3-29 09:46
先谢谢杨老师 的警告和赞许
只是学生还有些不清楚 如果多次被忽悠就不是男子汉,而是大笨蛋了
这里顺便问大家一个的问题:
在FreeRTOS的STC官方移植版中,用户任务的切换是不是在中断里面(没有退出中断之前)完成的?
如果是,那在中断中任务切换就已经被移植团队实现了呀,用户要用照搬就行了,那还有必要补充实现taskYIELD_FROM_ISR这个函数吗?
如果不是,那就请证明一下怎么就不是了?
gentleman
发表于 2024-3-29 14:57:12
杨为民 发表于 2024-3-29 13:28
(1)首先,FreeRTOS的STC官方版还未完成的“taskYIELD_FROM_ISR”这个中断级任务切换函数是事实。
感谢杨老师的指正
不是解决LAOXU的问题, 就是解决 第一张图任务2 可能 下个tick才调用的问题
确实如果按照FreeRTOS手册上对taskYIELD_FROM_ISR 的描述, 这里一定是不符合的
崩溃倒一定不会崩溃的, 因为OS 没有其他位置调用,否则OS也跑不起来,除非用户自己调。但这个错误我承认
我会将其改为 G_taskYIELD_FROM_ISR(G_xHigherPriortyTaskWoken);
这种带参数的 中断内任务切换 官方版应该没有(如果是具体的 整理堆栈 RETI ERET 这些一定是有的 )
通过简单判断参数 可以快速在不切任务时及时退出中断
杨为民
发表于 2024-3-29 15:57:59
gentleman 发表于 2024-3-29 14:57
感谢杨老师的指正
不是解决LAOXU的问题, 就是解决 第一张图任务2 可能 下个tick才调用的问题
确实如果 ...
“中断内任务切换 官方版应该没有”
有,结论我先写在这里了。吸取教训,多思考
gentleman
发表于 2024-3-29 16:55:33
杨为民 发表于 2024-3-29 15:57
“中断内任务切换 官方版应该没有”
有,结论我先写在这里了。吸取教训,多思考
杨老师,原话是
“带参数的 中断内任务切换 官方版应该没有”{:4_167:}
咋还给学生断章取义了呢
如果这个有,那学生一定要仔细找找
gentleman
发表于 2024-3-29 16:56:39
tzz1983 发表于 2024-3-28 21:15
优化了一晚上,感觉已经到位了,杨老师,坛友们,费点心,再看看?
做着做着,感觉确实有些喜欢这个"No_ ...
兄弟,杨老师说你忽悠我
怎么说,我可把你当兄弟{:4_165:}