tzz1983 发表于 2024-5-11 09:20:45

杨为民 发表于 2024-5-10 21:45
(1)本来等待的CosyOS-II for M3/M4以及熊仔的新版本一时半会儿等不到了,你的这个移植版的特性先自己测 ...

发给您的测试代码,有TIM3中断的使用, 一楼的代码,有串口中断的使用,都可以参照。无需另外发中断使用的例子了

杨为民 发表于 2024-5-11 16:35:27

tzz1983 发表于 2024-5-11 09:07
使用中断,和祼机完全一样, (就是以前是要在中断里 OSIntNesting++ 和 OSIntExit(), 现在不需要了)

中 ...

这一楼的说明写得不错。去看看我对你作品的点评:
《单片机RTOS实时响应时间排行榜重大宣布:STC32G12K128单片机 全面碾压 STM32F103C》(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7724&extra=page%3D1)
的121楼。





杨为民 发表于 2024-5-12 17:15:49

tzz1983 发表于 2024-5-11 09:09
您说写得过于奇怪的地方,是哪里?可以贴出代码,我愿意为您单独解释

(1)我的排行榜测试程序设计的是1秒钟进行一次产生中断调用。当然STC8H/32G的定时器3产生不了1秒钟的延迟,看看你的招数:

oid Timer3_ISR_Handler (void) interrupt 19
{
        T4T3M &= ~0x08;   //定时器3停止计数
    IE2 &= ~0X20;       //关闭定时器3中断   
    P00 = ~P00;   
    P01 = 1;            //开始唤醒任务
    OSTaskResume_FROM_ISR(APP_CFG_START_TASK_PRIO);
}
void START_TASK(void *p_arg)

{
    while(OSRunning)

    {
       Timer3_Init();      //定时200微秒后产生中断
      OSTaskSuspend(APP_CFG_START_TASK_PRIO);//任务挂起自己, 200微秒后被中断唤醒

      P01=0;            //任务被中断解除挂起32uS      
      OSTimeDly(77);
      P02=~P02;
      P23=~P23;
    }
    if(p_arg);
}
其中,每次中断调用要在停止定时器3,然后在任务中又初始化它,这是什么招数?你至今不知道STC8H/32G的定时器3有预分频的功能吗?

(2)这是第一轮排行榜我帮你写的测试程序:
// ==== 定时器3 初始化 ===========
                        Timer3_Init();       
      ET3=1;         //允许中断
                TM3PS=99;
void Timer3_ISR_Handler (void) interrupt 19      
{
    OSIntNesting++;   //单指令加 OSIntNesting
                P00=~P00;
       
// ---- 中断启动等待任务 ------------       
                        P01=1;
                        OSTaskResume(2);                       
   
    OSIntExit();      //退出中断
}
其中只一行“TM3PS=99;”程序就将10毫秒的定时器3的中断周期变为1秒了。
(3)我帮你写得测试程序你本尊架子大到没有从网上下载下来具体看看吗?然后你本尊写你移植FreeRTOS的测试程序就给出了这种烂招数,当时我就觉得你真是那种只会挑毛病不肯学习的主!我怕再打你的脸,忍住没有说。这次你又用这种烂招数,还要盯着问,我也忍着不说了,留给你学习排行榜其他作品的机会。但是,现在尾巴被人揪住了,打脸不?
但愿没有下一次






神农鼎 发表于 2024-5-12 17:24:05





神农鼎 发表于 2024-5-12 17:32:42

楼主大侠能否将STC32上曾经移植的:
GUI/uGFX, 文件系统,
也在STC8H上测试通过,一并放上来

tzz1983 发表于 2024-5-12 17:58:29

本帖最后由 tzz1983 于 2024-5-12 18:18 编辑

杨为民 发表于 2024-5-12 17:15
(1)我的排行榜测试程序设计的是1秒钟进行一次产生中断调用。当然STC8H/32G的定时器3产生不了1秒钟的延 ...
杨老师教训的对,
我当时只是想用最短的时间完成这个简单测试的功能代码,
并没有想这么周全, 初始化代码也是ISP工具生成的哈.

其实我还想说, 与其定时, 还不如关掉妥当, 这里就是要这个单次的效果呀
可以理解为任务单次启定硬件定时器.

其次是我定的这 200微秒也不是随变定的,因为滴答为1000微秒,
延时200毫秒可以自动的让TIM3中断避开滴答中断,
让这两个最低优中断不能相互影响, 从而保证测量准确度

tzz1983 发表于 2024-5-12 18:12:29

神农鼎 发表于 2024-5-12 17:32
楼主大侠能否将STC32上曾经移植的:
GUI/uGFX, 文件系统,
也在STC8H上测试通过,一并放上来


暂时不做这些了,需要用到的, 可以自己整合, 难度不大.

杨为民 发表于 2024-5-13 00:23:13

本帖最后由 杨为民 于 2024-5-13 00:25 编辑

tzz1983 发表于 2024-5-12 18:12
暂时不做这些了,需要用到的, 可以自己整合, 难度不大.
我原来给你的点评结论看来“零中断延迟”一词的发明人有不同意见,所以我负责任地重新做点评结论:

楼主的“uC/OS-II@STC8H”确实是一个能在高优先级用户中断中调用系统服务的RTOS,
并且是一个主流的优秀的单片机的RTOS(uC/OS-II)在STC8H单片机上的移植版。

这个点评结论与CosyOS无关,不需要得到他的批准。


xiangzichen 发表于 2024-5-13 01:19:43

一声不吭的下载了.{:4_168:}

13918210822 发表于 2024-5-13 12:10:34

fanxsp 发表于 2024-5-7 09:45
“OS切换上下文时,不关中断,中断可以快速响应”,你这个特性,非常好,我也考虑一下,能不能实现,至少不要 ...

对的,我也很期待,早上开车还在想,EA关多短,有可能不丢信号
后来想明白了,只要EA关一会,等运行到EA再打开,一定有机会丢信号
页: 1 2 [3] 4 5 6 7
查看完整版本: uC/OS-II@8H8K64U, 51核移植版本!杨教授:51核上激动人心的RTOS生态已具备