找回密码
 立即注册
楼主: tzz1983

uC/OS-II@8H8K64U, 51核移植版本!杨教授:51核上激动人心的RTOS生态已具备

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-5-8 00:46:56 | 显示全部楼层

请本尊写个排行榜测试程序传上来,参加STC8H的排行榜

点评

辛苦杨老师了 这里顺带发一个编译结果,这个测试例程用的OS功能很少, 基本上可以体现出uC/OS-II最小资源占用情况如图: [attachimg]43435[/attachimg] data=27.1 xdata=520 code=4953 对OS占用资源情况  详情 回复 发表于 2024-5-8 09:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:220
  • 最近打卡:2025-05-01 18:20:12

79

主题

631

回帖

1132

积分

金牌会员

积分
1132
发表于 2024-5-8 06:54:24 | 显示全部楼层
期待大佬们出个stc32g的。。。
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-8 09:36:35 | 显示全部楼层
杨*** 发表于 2024-5-8 00:46
请本尊写个排行榜测试程序传上来,参加STC8H的排行榜



uCOS-II_STC8H_small large(辛苦杨师测试).rar (1.01 MB, 下载次数: 158)


辛苦杨老师了
这里顺带发一个编译结果,这个测试例程用的OS功能很少,
基本上可以体现出uC/OS-II最小资源占用情况如图:
捕获.JPG

data=27.1  xdata=520  code=4953
对OS占用资源情况不了解的朋友,这下可以放心了




点评

收到,谢谢  详情 回复 发表于 2024-5-8 10:27
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-5-8 10:27:55 | 显示全部楼层
tzz1*** 发表于 2024-5-8 09:36
辛苦杨老师了
这里顺带发一个编译结果,这个测试例程用的OS功能很少,
基本上可以体现出uC/OS-II最小 ...

收到,谢谢

点评

杨老师,测试好吗? 有没有遇到编译报错的问题? 我在头件(ucos_ii.h尾部)中新增的几个函数声明忘记加条件编译, 导致os_cfg.h中配制禁用相关模块时,头文件编译报错->缺少相关的数据结构声明。 如果遇到这种情  详情 回复 发表于 2024-5-10 11:22
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:439
  • 最近打卡:2025-05-01 08:21:55

3

主题

125

回帖

1266

积分

金牌会员

积分
1266
发表于 2024-5-8 14:07:51 | 显示全部楼层
强大的一批
You can you up!~No can no BB!~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-10 11:22:19 | 显示全部楼层

杨老师,测试好吗?

有没有遇到编译报错的问题?
我在头件(ucos_ii.h尾部)中新增的几个函数声明忘记加条件编译
导致os_cfg.h中配制禁用相关模块时,头文件编译报错->缺少相关的数据结构声明。
如果遇到这种情况,发给我修正一下,或者自己加一下。

点评

(1)本来等待的CosyOS-II for M3/M4以及熊仔的新版本一时半会儿等不到了,你的这个移植版的特性先自己测一下,先放在这个帖子里介绍吧,我的那个排行榜暂时不会更新了。 (2)你专门介绍一下你自己写的“中断实时响  详情 回复 发表于 2024-5-10 21:45
测了,你的程序我编译了,0错误0警告,等待与其他新一轮作品一起公布。  详情 回复 发表于 2024-5-10 11:29
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-5-10 11:29:25 | 显示全部楼层
tzz1*** 发表于 2024-5-10 11:22
杨老师,测试好吗?

有没有遇到编译报错的问题?

测了,你的程序我编译了,0错误0警告,等待与其他新一轮作品一起公布。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-5-10 21:45:31 | 显示全部楼层
tzz1*** 发表于 2024-5-10 11:22
杨老师,测试好吗?

有没有遇到编译报错的问题?

(1)本来等待的CosyOS-II for M3/M4以及熊仔的新版本一时半会儿等不到了,你的这个移植版的特性先自己测一下,先放在这个帖子里介绍吧,我的那个排行榜暂时不会更新了。
(2)你专门介绍一下你自己写的“中断实时响应”的那部分程序,写得过于奇怪,我怀疑测出来的结果是否有代表性。
(3)也许你应该专门介绍一下在用户中断里如何使用系统服务,强调一下有什么需要注意的





点评

发给您的测试代码,有TIM3中断的使用, 一楼的代码,有串口中断的使用,都可以参照。无需另外发中断使用的例子了  详情 回复 发表于 2024-5-11 09:20
您说写得过于奇怪的地方,是哪里? 可以贴出代码,我愿意为您单独解释  详情 回复 发表于 2024-5-11 09:09
使用中断,和祼机完全一样 如果调用OS服务,分两种情 1. 原uC/OS-II中的通用服务, 即原本就是可任务调用也可中断调用的服务,仍可直接在中断里直接使用。 2.针对所有需要中断调用并且会引起任务切换的OS服务,移植  详情 回复 发表于 2024-5-11 09:07
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-11 09:07:29 | 显示全部楼层
本帖最后由 tzz1983 于 2024-5-11 09:21 编辑
杨*** 发表于 2024-5-10 21:45
(1)本来等待的CosyOS-II for M3/M4以及熊仔的新版本一时半会儿等不到了,你的这个移植版的特性先自己测 ...

使用中断,和祼机完全一样, 就是以前是要在中断里 OSIntNesting++ 和 OSIntExit(), 现在不需要了

中断里调用OS服务,分两种情
1. 原uC/OS-II中的通用服务, 即原本就是可任务调用也可中断调用的服务,仍可直接在中断里直接使用。
2.针对所有需要中断调用并且会引起任务切换的OS服务,移植版本提供了额外的中断调用版本,以原名函数+FROM_ISR结尾。
这一点和FreeRTOS使用规则是一致的。

具体可以看文件中的说明文档:

中断调用OS服务的注意事项:
* 有许多OS服务是不可以在中断例程中调用的,
* 原版的uCOS-II提供了OSIntNesting值来判断,
* 可以检测到用户的错误调用,从而提前返回一个错误码.
* 移植后的uCOS-II彻底取消了OSIntNesting
* 所以需要用户自行甄别哪些OS服务是不可以在中断例程中调用的( 比如OSTimeDly(),OSxxPend() 就是不可以在中断服务里调用的 )
* 如何判断一个服务是否可以在中断例程中调用? 方法是: 通过查看原码,如果该服务不会返回中断调用错误码,
* 同时也不会引起任务切换,就是通用服务,即->可以任务级调用,也可中断级调用. 否则不可中断调用.

* 针对所有需要中断调用并且会引起任务切换的OS服务,移植版本提供了额外的中断调用版本,以下是新增中断服务的函数.
INT8U  OSTaskSuspend_FROM_ISR (INT8U prio)FunctionProperties;
INT8U  OSTaskResume_FROM_ISR (INT8U prio)FunctionProperties;
INT8U  OSTaskChangePrio_FROM_ISR (INT8U  oldprio,INT8U  newprio)FunctionProperties;
INT8U  OSTimeDlyResume_FROM_ISR (INT8U prio)FunctionProperties;
INT8U  OSSemPendAbort_FROM_ISR (OS_EVENT *pevent, INT8U opt, INT8U *perr)FunctionProperties;
INT8U  OSSemPost_FROM_ISR (OS_EVENT *pevent)FunctionProperties;
OS_FLAGS  OSFlagPost_FROM_ISR (OS_FLAG_GRP  *pgrp, OS_FLAGS flags, INT8U opt, INT8U *perr)FunctionProperties;
INT8U  OSMboxPostOpt_FROM_ISR (OS_EVENT  *pevent, void *pmsg, INT8U opt)FunctionProperties;
INT8U  OSMboxPost_FROM_ISR (OS_EVENT  *pevent, void *pmsg)FunctionProperties;
INT8U  OSMboxPendAbort_FROM_ISR (OS_EVENT  *pevent, INT8U opt, INT8U *perr)FunctionProperties;
INT8U  OSQPendAbort_FROM_ISR (OS_EVENT  *pevent, INT8U opt, INT8U *perr)FunctionProperties;
INT8U  OSQPost_FROM_ISR (OS_EVENT  *pevent, void *pmsg)FunctionProperties;
INT8U  OSQPostFront_FROM_ISR (OS_EVENT  *pevent, void *pmsg)FunctionProperties;
INT8U  OSQPostOpt_FROM_ISR (OS_EVENT  *pevent, void *pmsg, INT8U opt)FunctionProperties;


有一定RTOS功底的应该是很好上手的。
这里不多说了,本来就是打算自己用的,我没有精力去搞宣传和教化。
学这个东西多半还是要靠自己悟的,啃代码就是最好的老师,谁学RTOS是靠人教会的?

点评

这一楼的说明写得不错。去看看我对你作品的点评: 《单片机RTOS实时响应时间排行榜重大宣布:STC32G12K128单片机 全面碾压 STM32F103C》(https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7724&extra=page%3  详情 回复 发表于 2024-5-11 16:35
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-5-11 09:09:53 | 显示全部楼层
杨*** 发表于 2024-5-10 21:45
(1)本来等待的CosyOS-II for M3/M4以及熊仔的新版本一时半会儿等不到了,你的这个移植版的特性先自己测 ...

您说写得过于奇怪的地方,是哪里?  可以贴出代码,我愿意为您单独解释

点评

(1)我的排行榜测试程序设计的是1秒钟进行一次产生中断调用。当然STC8H/32G的定时器3产生不了1秒钟的延迟,看看你的招数: oid Timer3_ISR_Handler (void) interrupt 19 { T4T3M &= ~0x08; //定时器3停止计数  详情 回复 发表于 2024-5-12 17:15
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 20:05 , Processed in 0.129970 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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