找回密码
 立即注册
楼主: 熊***

最新版本uC-OS2-2.93.01已移植到STC32G上,请帮忙查错

[复制链接]

该用户从未签到

20

主题

551

回帖

1827

积分

荣誉版主

积分
1827
发表于 2023-9-23 08:21:55 | 显示全部楼层
不如这样吧, 你们把STC官方出的产品, USB转2串口也好, 另外的产品也行
把注消临界段的UCOS放进去, 作为官方出厂程序, 必须多开几个可用中断优级, 并且高调出示原码, 表明全世界就我一家敢这么做, 例程代码一并发出.
如果做到这样, 我一定心服口服.

点评

“不如这样吧, 你们把STC官方出的产品, USB转2串口也好, 另外的产品也行 把注消临界段的UCOS放进去, 作为官方出厂程序, 必须多开几个可用中断优级, 并且高调出示原码, 表明全世界就我一家敢这么做, 例程代码一并发出  详情 回复 发表于 2023-9-23 11:13
回复 支持 0 反对 1 送花

使用道具 举报

该用户从未签到

11

主题

330

回帖

876

积分

荣誉版主

积分
876
 楼主| 发表于 2023-9-23 10:27:25 来自手机 | 显示全部楼层
看一楼的发布的,只有方法3和方法4。
方法0杨老师的,我不认同。

点评

“方法0杨老师的,我不认同。”是对方法0的测试方法不认同,还是对RTOS系统可以没有临界区保护的结论不认同,这个差别巨大! 如果,我用一根筷子挑着眼吃成了藕片,然后就得出筷子只要一只就够了的结论。你会对我挑  详情 回复 发表于 2023-9-23 11:23
回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

330

回帖

876

积分

荣誉版主

积分
876
 楼主| 发表于 2023-9-23 10:29:50 来自手机 | 显示全部楼层
还有切换任务中断,不保护重要语句,我也不认同。因为杨老师说的是最高优先级,我们弄的是最低优先级,不在一个频道。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

661

回帖

1万

积分

荣誉版主

积分
10810
发表于 2023-9-23 11:13:03 | 显示全部楼层
tzz1983 发表于 2023-9-23 08:21
不如这样吧, 你们把STC官方出的产品, USB转2串口也好, 另外的产品也行
把注消临界段的UCOS放进去, 作为官方 ...

不如这样吧, 你们把STC官方出的产品, USB转2串口也好, 另外的产品也行
把注消临界段的UCOS放进去, 作为官方出厂程序, 必须多开几个可用中断优级, 并且高调出示原码, 表明全世界就我一家敢这么做, 例程代码一并发出.
如果做到这样, 我一定心服口服.尽管有气,但是问得有理

(1)作为STC官方出的RTOS产品,支不支持STC单片机的USB转2串口,同时实现两路串口的通讯?如果支持,必须给出范例程序。
(2)如何在RTOS中支持异步通讯串口是一个很大的技术问题,比如现在的范例程序的构架就好像与没有RTOS一个样:一个中断,然后在主程序中把收到的字符原路转回去。
那么这个中断ISR是与没有RTOS的一样吗?要不要加临界区保护?允不允许多个任务从同一个串口中接收数据,要不要引入信号量?当多个任务向同一个串口发送信息时要不要排队?要不要加锁?会不会死机?这些都是问题。
(3)支持多个带优先级的中断是单片机RTOS的技术特征,那么系统定时器中断应该在什么级别?对于STC32G单片机,允许系统定时器中断被别的中断嵌入吗?还有允许系统定时器中断嵌入到别的中断吗?比如系统中断能中断DMA、PWM、USB的ISR执行,然后切换任务吗?如果切换了任务,那么当控制权在回到这些ISR后,哪些正等待着这些设备完成标志的程序和任务怎么办?另外这些中断的ISR程序中,要不要加中断嵌套保护的进入和退出中断语句?这些都是问题
(4)目前的uCOSII-STC32G只是一个极小核心版,还没有涉及到像C251-UCOSII移植版范例中的“事件、邮箱、信号量”这些RTOS的标准功能。那么如果使用了这些功能,对于现在极小核心板的测试1、测试2和测试3的结论还会成立吗?不成立应该怎么办?
(5)关闭uC/OS-II临界区保护的方法0是我给出的测试方法,对于特定的被测例子能够成立是很正常的,而对于那些惊天大BUG文章里的结论,当然只适合与那些具体测试程序相似的场合,怎么可能对任意场合成立呢?比如对于串行通讯,对于“事件、邮箱、信号量”,怎么可以没有临界区保护呢?方法0肯定死机。当然保护的方法不一定非要关闭总中断,但是保护是必须的。
(6)引入方法0测试方法本来要证明临界区保护的必要性,按我的设想,对于某个范例程序,不用方法0有临界区保护时程序正常运行,然后一用方法0就死机,然后我这个当老师就可以得意洋洋地宣布结论:“在单片机RTOS中没有临界区保护时不行的!”可是我把两位的第一个移植版拿来一测,tzz1983网友的结果打了我的脸,居然是无临界区保护的方法0不死机。
但是这是事实呀,我只能原样公布结果,我只能通过你们的程序事实得出对你们移植版的检测结论呀。我希望你们能不断改进,找到问题所在。比如对于第一个移植版,惊天大BUG之二文章的测试中熊仔方法0翻车就表示必须有临界区保护呀,对于tzz1983的移植版,熊仔已经给出一个例子让方法0翻车,那就是说明必须有临界区保护呀。
(7)直到今天对于当时特定例子的为什么挑战者网友的方法0不会死机,而熊仔网友的会死机,我看两位并没有明白,今天宣布答案吧:挑战者的C251-UCOSII几乎没有对uC/OS-II的核心代码“os_core.c”部分进行修改,而原始的核心代码就是以DOS的软中断作为任务切换方法专门编写的,自然系统部分临界区保护在某些情况下可以取消,那个情况正好被我碰到了。而熊仔网友的移植版则对核心代码部分做了许多修改,所以uCOSII-STC32G的运行离开临界区保护不行。





点评

STC32版本是没有更改core文件。STC8版本修改了。  详情 回复 发表于 2023-9-23 13:20
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

661

回帖

1万

积分

荣誉版主

积分
10810
发表于 2023-9-23 11:23:57 | 显示全部楼层
熊仔 发表于 2023-9-23 10:27
看一楼的发布的,只有方法3和方法4。
方法0杨老师的,我不认同。

方法0杨老师的,我不认同。”是对方法0的测试方法不认同,还是对RTOS系统可以没有临界区保护的结论不认同,这个差别巨大!

如果,我用一根筷子挑着眼吃成了藕片,然后就得出筷子只要一只就够了的结论。你会对我挑眼的方法不认同呢?还是对我的结论不认同?或者是两者都不认同?

点评

方法0不能通过我的例子测试,我自己写的断例子都不能通过运行。我怎么能认同?不可能说我例子不能这么写吧。  详情 回复 发表于 2023-9-23 12:07
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

551

回帖

1827

积分

荣誉版主

积分
1827
发表于 2023-9-23 11:32:51 | 显示全部楼层
杨为民 发表于 2023-9-23 11:13
“不如这样吧, 你们把STC官方出的产品, USB转2串口也好, 另外的产品也行
把注消临界段的UCOS放进去, 作为 ...

首先纠正一点, 我没有打你的脸, 我用OS是需要临界段保护的, 原先争论点是: "是否可只在访问OS关键变量时关中断,别的时候不需要, 可不可行." 而不是完全不要临界段.
其次是.你发什么内容与我无关,我不想和你争什么.  但是涉及到我的时候, 我还是会忍不住回应一下. 主要是为了观众不被带偏

点评

首先纠正一点, 我没有打你的脸, 我用OS是需要临界段保护的, 原先争论点是: "是否可只在访问OS关键变量时关中断,别的时候不需要, 可不可行." 而不是完全不要临界段. 其次是.你发什么内容与我无关,我不想和你争什么.  详情 回复 发表于 2023-9-23 12:08
回复 支持 反对 送花

使用道具 举报

该用户从未签到

20

主题

551

回帖

1827

积分

荣誉版主

积分
1827
发表于 2023-9-23 11:55:30 | 显示全部楼层
还有一点是STC8 那个你们到底承不承认是BUG, 如果不承认, 你们回复一下我, 告诉我你们不承认, 那我也就死心了.
否则我时不时的忍不住来提一下, 对不对?
毕竞200元可以买200个棒棒糖了, 宝宝心里苦, 吃点糖, 至少嘴巴里还是甜的

点评

按照最新的STC发布的流程图,有中断发生,至少执行2条指令。 这个我也不知道是否bug。估计需要STC回答下,还有打赏不是我个人弄的,是STC人员弄的,修改的主题。坛友发现bug他们不至于不打赏吧。  详情 回复 发表于 2023-9-23 12:00
回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

330

回帖

876

积分

荣誉版主

积分
876
 楼主| 发表于 2023-9-23 12:00:35 | 显示全部楼层
tzz1983 发表于 2023-9-23 11:55
还有一点是STC8 那个你们到底承不承认是BUG, 如果不承认, 你们回复一下我, 告诉我你们不承认, 那我也就死心 ...

按照最新的STC发布的流程图,有中断发生,至少执行2条指令。
这个我也不知道是否bug。估计需要STC回答下,还有打赏不是我个人弄的,是STC人员弄的,修改的主题。坛友发现bug他们不至于不打赏吧。

点评

不过你总算正面回复我了, 这个话题算是翻篇了  发表于 2023-9-23 12:17
两条? 那天CosySO说过以后我就明白了, 中断发生在MOV C EA 的上一步时,结论就推翻了. 我还测试过  发表于 2023-9-23 12:16
回复 支持 反对 送花

使用道具 举报

该用户从未签到

11

主题

330

回帖

876

积分

荣誉版主

积分
876
 楼主| 发表于 2023-9-23 12:07:25 | 显示全部楼层
杨为民 发表于 2023-9-23 11:23
“方法0杨老师的,我不认同。”是对方法0的测试方法不认同,还是对RTOS系统可以没有临界区保护的结论不认 ...

方法0不能通过我的例子测试,我自己写的断例子都不能通过运行。我怎么能认同?不可能说我例子不能这么写吧。

点评

我被你的逻辑弄懵了:你写的程序不能方法0的测试是事实,但是这个事实是证明你是正确的呀!你还要争论什么?你是不认同什么? 如果我带你到青楼去测试你,但你每次都没有进去每次都没有测试成功,这是测试事实,结  详情 回复 发表于 2023-9-23 12:25
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

661

回帖

1万

积分

荣誉版主

积分
10810
发表于 2023-9-23 12:08:05 | 显示全部楼层
本帖最后由 杨为民 于 2023-9-23 12:29 编辑
tzz1983 发表于 2023-9-23 11:32
首先纠正一点, 我没有打你的脸, 我用OS是需要临界段保护的, 原先争论点是: "是否可只在访问OS关键变量时 ...

首先纠正一点, 我没有打你的脸, 我用OS是需要临界段保护的, 原先争论点是: "是否可只在访问OS关键变量时关中断,别的时候不需要, 可不可行." 而不是完全不要临界段.
其次是.你发什么内容与我无关,我不想和你争什么.  但是涉及到我的时候, 我还是会忍不住回应一下. 主要是为了观众不被带偏

(1)“首先纠正一点, 我没有打你的脸”。当然不是你打我的脸,我说的是“tzz1983网友的结果打了我的脸”。首先是结果打,不是人打,其次是我写的测试程序,是我给的测试方法,最后是我对你的移植版进行了测试,并公布了结果,何来你打了我的脸?要说打脸,当然是我自己打了自己的脸。
(2)是你自己公布了你的移植版,是你自己要求“目前没发现什么问题. 别的功能暂时没有测试,(昨天才刚移植完啊,有兴趣的可以自己去试试,然后回来指正),但我想应该是问题不大的,因为OS的原码根本就没动过”。
我当然感兴趣,我当然要试试,我只能在论坛上告诉你我的测试果。
(3)我不知道你在和谁争论,对于 "是否可只在访问OS关键变量时关中断,别的时候不需要, 可不可行" 这个论点,结论当然是可行!当然不需要全程关闭中断!男孩子下河游泳,遮住关键部位就行!谁见过全身遮住的。
(4)你的移植版是很典型的纯软中断任务切换,你的移植版不需要也不必要通过测试2,纯软中断任务切换通过测试3就行了。纯软中断的任务切换只要稍加改进,就一样可以实现在临界区保护下进行任务切换,一模一样地实现测试2的时序,不必等到临界区保护结束再切换任务。只是你还不知道怎么改而已。
(4)还是要对你说抱歉,你的移植版是很典型,我还会在未来的帖子拿来作为对比使用。我们无需争论,那些只是我的观点。

回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-9 08:10 , Processed in 0.101590 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表