熊仔
发表于 2023-9-16 10:44:36
中断触发方式,对杨老师提出的临界区嵌套切换任务是不能成功运行的。估计这个只能说是特殊例子了。实际使用压根不会出现这样的案例。即便出现了也很容易发现这样做是有问题的,程序员自己改就是了。
tzz1983
发表于 2023-9-16 11:06:18
熊仔 发表于 2023-9-16 10:44
中断触发方式,对杨老师提出的临界区嵌套切换任务是不能成功运行的。估计这个只能说是特殊例子了。实际使用 ...
他提出的那个概念前提是错的, 对于用代码切换任务的例了, 临界区切换任务, 就是打断了临界区, 实际已经违规了(除了OS本身的任务切换, 因为机制的特殊性, 切换任务本身就是处在临界段), 除此之外, 在别的地方临界段切换任务都是错误的做法, 因为临界段的定义, 不尽尽是关中断, 它最核心是不可打断, 还包含那些有时序要求的, (比如这种情况,先清除一个IO电平,三个时钟后, 你抬高另一个电平, 不能多也不打少) .
对于中断切换的例子, 那就更不用多说了, 中断是滞后切换, 不会打断原来临界段, 并且你真要在临界段切换任务也行, 嵌套也没问题, 大大方方的让你用错, 也不会产生什么不良后果.
杨为民
发表于 2023-9-16 11:31:01
tzz1983 发表于 2023-9-16 09:38
这是嵌套问题, 和提不提前开中断没关系, 就是说已进入任务了, 也会发生. 只要是在执行中断向量口那条转移 ...
“杨老师提到了"正统"二字, 反面映射就是说我的方法不正统啊, 呵呵, 我发现我现在就是喜欢怼杨老师, 自己也知为什么, 网友会不会反感这种行为?”
(1)我不知道网友怎么想,但是我喜欢你来怼。年轻人不怼老年人,难道去怼小朋友?那叫欺负,这是一。世界是你们的,也是我们的,但是归根结底是你们的,这是二。
(2)科学技术“正统”存在的意义就是被“非正统”推翻,什么时候被推翻了,什么时候就进步了。量子论不推翻原子论,就没有今天的计算机技术,没有计算机技术,就没有这个论坛了。没有这个论坛,就没有你和我了(最后这句是哲学)。
(3)在科学上没有绝对真理,科学真理的正确性依赖于这个真理应用的时间、地点和对象,计算机科学技术和操作系统理论也是如此。比如传统(我提到的正统)操作系统理论的许多基本原理和方法,既不适用于并行计算机,也不适用于网络操作系统,更不适用于量子计算机。
(4)任何科学真理,都要经过检验,对于本论坛的主题“STC单片机RTOS”,当然也要经过检验,不是一推出来就完事了。所以我盯你,主要是盯你的新的任务切换方法的正确性。所以我会给出各种严苛的测试程序来进行检验,对其中的代码进行质疑,目的是通过争论来展示你的新方法的正确性、与传统/正统方法本质差别和新方法应用的边界在哪里,希望“tzz1983”你挺住(PS:我为你取了个昵称为“挑战者”,以后在论坛里我会称你的C251-UCOSII为STC32G单片机上“网友挑战者”的uC/OS-II移植版)。
tzz1983
发表于 2023-9-16 11:54:39
杨为民 发表于 2023-9-16 11:31
“杨老师提到了"正统"二字, 反面映射就是说我的方法不正统啊, 呵呵, 我发现我现在就是喜欢怼杨老师, 自己 ...
我自己那个代码, 现在已经发现了两个BUG, 稍迟一些发更新的代码出来, 唉, 本想发出来, 让别人去接, 自己背后坐享其成, 没想到把自己给搭进来了. 另外就是我并不是什么挑战者, 那代码也都是参照了FREERTOS汇编, 和STM32的思维, 顶多算个搬运工. 只因自身需要才去搞了一下, 高帽子不想戴
杨为民
发表于 2023-9-16 12:08:35
tzz1983 发表于 2023-9-16 11:54
我自己那个代码, 现在已经发现了两个BUG, 稍迟一些发更新的代码出来, 唉, 本想发出来, 让别人去接, 自己 ...
(1)父母取的叫“姓名”,老师取的叫“学名”,师傅取的叫“法号”,坛主取的叫“昵称”,这些都不是由你自己能做主的,你就叫“挑战者”吧!
(2)神来一脚,把你踢进门来了,就好好会会各种大侠吧,相信你会找到快乐的
杨为民
发表于 2023-9-19 16:21:24
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4336&extra=
这是新的测试,请看看结论对不对
yu2008
发表于 2023-12-6 08:47:01
请教一下,这个工程能串口仿真吗?仿真启动的时候就在这里死循环了。是我哪里搞错了?
CosyOS
发表于 2023-12-6 13:52:46
yu2008 发表于 2023-12-6 08:47
请教一下,这个工程能串口仿真吗?仿真启动的时候就在这里死循环了。是我哪里搞错了? ...
应该是仿真设置的问题,有一个 Run to main(),需要打勾。。。
yu2008
发表于 2023-12-6 20:02:53
本帖最后由 yu2008 于 2023-12-6 20:04 编辑
CosyOS 发表于 2023-12-6 13:52
应该是仿真设置的问题,有一个 Run to main(),需要打勾。。。
测试了,不是这个问题。
我直接下载的官方代码包,打开,编译,设置串口仿真,下载进入仿真,就是图上的结果。但直接用stc-isp下载 后复位运行是正常的。
看来就是仿真哪里有问题
giveyou
发表于 2023-12-20 14:27:36
使用STC8H4K64TL芯片,使用P0都作为指示灯显示。时钟设置40MHz。设置成其他频率也变化不明显。
修改Delay_MS(1000)的延时数值,感觉不管用。
OSTimeDly(OS_TICKS_PER_SEC / 2); // 500毫秒 这个延时好像也不管用呢?
修改这几个数值,没什么大的变化,请问高手是什么原因?谢谢
如果使用串口中断,是不是需要在isr_a.A51中仿照Timer1的中断使用汇编调用isr.c中的对应中断函数?
页:
1
2
3
4
5
6
7
8
9
[10]
11
12