tzz1983
发表于 2024-3-29 17:02:30
gentleman 发表于 2024-3-29 16:56
兄弟,杨老师说你忽悠我
杨老师是不喜欢我这调皮的学生, 才说我坏话{:tongue:}
gentleman
发表于 2024-3-29 17:13:53
tzz1983 发表于 2024-3-29 17:02
杨老师是不喜欢我这调皮的学生, 才说我坏话
你帮我看了代码,感觉不像坏蛋{:4_165:}
就当你也想错了{:4_168:}
杨为民
发表于 2024-3-29 19:30:27
tzz1983 发表于 2024-3-28 21:15
优化了一晚上,感觉已经到位了,杨老师,坛友们,费点心,再看看?
做着做着,感觉确实有些喜欢这个"No_ ...
你自己都不敢开主帖,上擂台,我为什么还要评论你。
tzz1983
发表于 2024-3-29 20:27:15
本帖最后由 tzz1983 于 2024-3-29 20:30 编辑
杨为民 发表于 2024-3-29 19:30
你自己都不敢开主帖,上擂台,我为什么还要评论你。
要玩就玩把大的,我要全坛悬赏500元找BUG, 个人出资,人品保证.
等我再好好仔细检查一番,这个钱也不能国轻易的给坛友们赚去了{:lol:}
算了,我现在就开个帖挂出来,下个月15号悬赏开始生效.给我点时间缓冲{:tongue:}
gentleman
发表于 2024-3-29 20:54:49
tzz1983 发表于 2024-3-29 20:27
要玩就玩把大的,我要全坛悬赏500元找BUG, 个人出资,人品保证.
等我再好好仔细检查一番,这个钱也不能 ...
兄弟,没必要,玩太大了吧{:4_167:}
这么整我可不玩了,我改完还是自己用吧{:4_187:}
杨为民
发表于 2024-3-29 21:10:04
本帖最后由 杨为民 于 2024-3-29 21:19 编辑
gentleman 发表于 2024-3-29 16:55
杨老师,原话是
“带参数的 中断内任务切换 官方版应该没有”
(1)首先道歉,我的文字表达漏掉了关键的定语,引起你的误解,以为我是在批评你的那句话,其实不是:
“这种带参数的 中断内任务切换 官方版应该没有”,这点你是正确的,官方版不是“应该没有”,而是“确实没有”。这也是我一直在确认的事实呀(请看165楼),没有含糊。
(2)中断内任务切换函数有两种形式,带参数的和不带参数的(比如uC/OS II中的),现在我用明确的文字表达我的观点:
“不带参数的 中断内任务切换 官方版肯定有”。
(3)因为这种“不带参数的 中断内任务切换”已经有了,而且这对于绝大部分情况已经可以实用了(就像uC/OS II),所以我猜测这就是“这种带参数的 中断内任务切换 第一个官方版没有”的原因。
(4)你想为官方版增加还没有实现的功能,比如“这种带参数的 中断内任务切换”函数,叫“锦上添花”,是好事。但是这种增加原来没有的功能,在我的语文字典叫“完善”,而不是叫“优化”。
(5)在我的词语里对XXX进行“优化”是指改写XXX的部分程序来达到提高性能、提高可靠性等目的的行为。我看了你的标题里的“方向改为优化官方的FreeRTOS”,我认为你是要修改“官方的FreeRTOS”的程序。比如你已经试着在为FreeRTOS添加“钩子/嵌套计数器”了(这是好像XXX忽悠你的吧)。
(6)uC/OS-II是世界范围内权威性的RTOS,而FreeRTOS的诞生是2003年,远迟于uC/OS-II的诞生(1992年)。
你想过没有为什么 FreeRTOS没有使用uC/OS-II那样的“嵌套计数器”?
是FreeRTOS的创始人没有读过uC/OS的书?还是他眼光没有你和XXX的高?又或许是他想实现但是技术上没有你高实现不了?
(7)如果这些没有想清楚和弄清楚,那么我在第165楼担心的崩溃:
“FreeRTOS是一个整体系统,如果这些都不清楚,你怎么能保证你的实现调用后不会产生系统崩溃?”
大概率是迟早要发生的。你测试时没有发生崩溃也可能是你的测试方法不专业而已,就像你在1楼,你以为中断关闭了,其实没有关闭一样。
(8)以我的观察(比如从你第164楼的内容水平等),我认为你的技术和理论目前还没有达到优化或者完善官方的FreeRTOS那个水平,所以165楼是用兜头泼冷水的方式劝阻你不要轻易地就开始你的实际行动,应该在行动前先做好规划和准备工作。
当然听不听你应该自己决定,这是你的自由和权利。
gentleman
发表于 2024-3-29 21:46:20
本帖最后由 gentleman 于 2024-3-29 21:58 编辑
杨为民 发表于 2024-3-29 21:10
(1)首先道歉,我的文字表达漏掉了关键的定语,引起你的误解,以为我是在批评你的那句话,其实不是:
“ ...
真的不必道歉{:4_187:}谢谢杨老师
我暂停 关于完善 FreeRTOS 官方移植版的进度
这些条教导 我认为都是非常正确/值得我反思的
======================================
学生在 STM32 上只用过HAL 与FreeRTOS,没有仔细阅读其源码
反而这个STC 的官方移植版 阅读的更多
学生去读一读STM32 的FreeRTOS源码,在学一下STM32底层硬件架构,看看能不能提高自己的对FreeRTOS 理解{:4_183:}
tzz1983
发表于 2024-3-29 21:53:03
本帖最后由 tzz1983 于 2024-3-29 22:01 编辑
杨为民 发表于 2024-3-29 19:30
你自己都不敢开主帖,上擂台,我为什么还要评论你。
杨老师, 擂台摆好了, 移驾么? 去那边看新版
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7521&extra=page%3D1
杨为民
发表于 2024-3-29 22:49:41
本帖最后由 杨为民 于 2024-3-29 23:27 编辑
gentleman 发表于 2024-3-29 21:46
真的不必道歉谢谢杨老师
我暂停 关于完善 FreeRTOS 官方移植版的进度
这些条教导 我认为都是非常正确/值得 ...
(1)FreeRTOS的许多特点(我认为是全部特点)都是针对ARM Cortex-M系列单片机写的,因为STM32单片机有不可屏蔽软件中断,有专门为OS设计的SVC和PendSVC中断,有按优先级屏蔽的中断,有两套堆栈指针等等,所以FreeRTOS在STM32单片机上是可以“在嵌套的高优先级内切换任务的”,自然就没有设计中断嵌套计数变量,而中断嵌套保护采用了另外的方法。
(2)因此硬件中断结构如此的不同,想要在现有的FreeRTOS将中断嵌套保护方法改成中断嵌套计数变量方法,这涉及到很多地方的程序,一动百摇。不是不可以,也是应该去探索的,但是必须慎重。
(3)与FreeRTOS不同,同样是在STM32单片机上运行的RT-Thread,却是采用中断嵌套计数变量来避免在中断嵌套中切换任务的。但是参考不了,因为RT-Thread的结构一开始就支持,而FreeRTOS一开始就不支持。
大胆思考,谨慎行动,仔细验证,方成正果。
杨为民
发表于 2024-3-29 22:56:34
tzz1983 发表于 2024-3-29 21:53
杨老师, 擂台摆好了, 移驾么? 去那边看新版
我早就实现了:
《STC单片机uC/OS-II移植记(12):微山x51-RTOS(uC/OS-II STC单片机研究版)性能测试》发表于 2023-6-26 22:44:20
(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2826)