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

全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板

 火... [复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2025-01-20 22:01:29
已绑定手机

2

主题

47

回帖

212

积分

中级会员

积分
212
发表于 2024-12-11 22:47:48 | 显示全部楼层
保持学习状态
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-03-03 23:04:42

2

主题

65

回帖

356

积分

中级会员

积分
356
发表于 2024-12-11 23:57:51 | 显示全部楼层

支持开源支持原创

学无止境
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2024-12-16 22:18:05 | 显示全部楼层

CosyOS-II 最新版 V3.2.0-beta 发布!

新版特性:

一、新增服务

1、禁止调度
仅是禁止任务调度,不会关闭系统中断(SysTick、PendSV),仅支持在任务中调用。
禁止调度适用于在任务中,对大段的任务级公共资源和程序过程的保护。
支持嵌套功能(最大嵌套深度255),嵌套使用时,禁止调度与恢复调度必须配对使用。
禁止调度与任务临界区之间可随意互相嵌套,但仅推荐在禁止调度中嵌套任务临界区。
禁止调度:uForbidSchedule;
恢复调度:uResumeSchedule;

2、时间单位转换
把其它单位的时间转换为滴答周期。
毫秒转换为滴答周期,xTick_ms(ms);
秒钟转换为滴答周期,xTick_s(s);
分钟转换为滴答周期,xTick_m(m);
小时转换为滴答周期,xTick_h(h);

3、清除就绪延时
清除当前任务的就绪延时,前提是当前任务已在禁止调度中。
tClearDelay;
iClearDelay;
pClearDelay;

4、切换任务
尝试切换至某任务。
uSwitchTask(task);
iSwitchTask(task);
pSwitchTask(task);

5、禅让任务
自身任务主动禅让CPU使用权给其它相同优先级的任务。
多个相同优先级的任务,通过禅让的方式可实现合作式任务。
uYieldTasking;

二、删除服务

删除服务 uTaskSchedule、iTaskSchedule,取而代之的服务是 切换任务。

三、服务功能调整

自身任务延时,自身任务延时分为阻塞延时和就绪延时。
阻塞延时:在延时期间,任务会进入阻塞状态,把CPU使用权转让给其它任务。
就绪延时:在延时期间,任务会维持就绪状态,原地等待延时时间到达,不转让CPU使用权。
当在禁止调度中,自动选择为就绪延时,否则选择为阻塞延时。
不支持在临界区中(包括任务临界区和全局临界区)或关闭总中断时调用。

四、服务更名

1、飞信信箱的声明和创建;
2、消息队列的声明和创建;
3、更新全局变量副本;

五、新增文件 ur_eapi.h

ur_api.h:用户API定义,含注释说明,所有内核服务的API说明均在此文件中,并支持 doxygen。
ur_eapi.h:用户API的补充扩展定义,仅是定义无注释说明,所有内核服务的API说明均在 ur_api.h 中,并支持 doxygen。

doxygen 生成说明书:

d760bb9e090ce5562c6c5c9efc900e2d.png

326c8eca-61a2-4e4a-a081-d14c5e696321.png

d19d1de7-8d73-4444-b7d1-c8a61c4ba78e.png

六、软件RTC,增加 每半秒信号,方便实现 每半秒钟做一件事。

七、全新升级的任务管理器,更加美观大方。

5A40650242EDD4544478111F98613BA3.png

稍后将会在顶楼发布新版 工程模板 和 用doxygen生成的API说明书。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:274
  • 最近打卡:2025-04-27 10:30:07
已绑定手机

1

主题

73

回帖

1236

积分

金牌会员

积分
1236
发表于 2024-12-17 14:09:11 | 显示全部楼层
Cos*** 发表于 2024-12-16 22:18
CosyOS-II 最新版 V3.2.0-beta 发布!
新版特性:
一、新增服务

有用户手册,使用下来更方便了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-05-01 10:58:55

44

主题

230

回帖

2841

积分

金牌会员

积分
2841
发表于 2024-12-18 10:41:53 | 显示全部楼层

qiang

不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

542

积分

高级会员

积分
542
发表于 2024-12-18 10:52:55 | 显示全部楼层
各位老师,

我发现 软件RTC 有点不准啊,
我昨天简单的测试了一下 14 小时能差 4-5分钟的样子
主要是快了,比真实时间要快4-5分钟的样子

补充一下,
STC32G12k128

使用内部HIRC 24M
SYSCFG_SYSCLK 设置就是 24M
SYSCFG_SYSTICKCYCLE 设置为1000


稍微认真测试了一下,运行
运行总时长 2966秒(由 CosyOS 软件 RTC 计时)

比真实时间快了 14 秒

点评

软件RTC是否准确,主要依赖系统时钟; 当然,如果在 任务临界区中 时间过长,接近或超过一个滴答周期,会丢节拍,将导致时间变慢。 内部时钟 误差可能会大一些,产生影响。 用 ISP 下载的时候,可关注一下内部IRC频  详情 回复 发表于 2024-12-18 19:52
希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2024-12-18 19:52:18 | 显示全部楼层
Yang.*** 发表于 2024-12-18 10:52
各位老师,

我发现 软件RTC 有点不准啊,

软件RTC是否准确,主要依赖系统时钟;
当然,如果在 任务临界区中 时间过长,接近或超过一个滴答周期,会丢节拍,将导致时间变慢。
内部时钟 误差可能会大一些,产生影响。
用 ISP 下载的时候,可关注一下内部IRC频率,看误差多少?
误差大的话,可反复下载,直到误差很小。
截图202412181952542350.jpg
但即使误差很小,温度升高以后,误差会不会变大?
但感觉还是太离谱了,即使IRC有 1/1000 的误差,1000分钟误差也才1分钟。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

542

积分

高级会员

积分
542
发表于 2024-12-19 09:35:49 | 显示全部楼层
Cos*** 发表于 2024-12-18 19:52
软件RTC是否准确,主要依赖系统时钟;
当然,如果在 任务临界区中 时间过长,接近或超过一个滴答周期,会 ...

实际时间过去3000秒,软件RTC走时 3014秒,14/3000=0.00466 大约是 0.46%
但是ISP下载以后,频率调节误差往往是 0.046% 这个数量级

实际时间的误差是 0.46%
频率的误差是 0.046%
这个差距还是有点大的

点评

在 port_8051.h 中, 你把所有 65536 都改成 65535 试一试, 时间就会变慢了,误差就小了。 但相关算法都应该按 65536 算啊?先试一试再说吧... 我当前比较忙,等过两天再抽空研究一下这个问题。  详情 回复 发表于 2024-12-19 16:56
希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2024-12-19 16:56:58 | 显示全部楼层
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=132003&ptid=1807][color=#999999]Yang.Lian 发表于 2024-12-19 09:35[/color][/url][/size] 实际时间过去3000秒,软件RTC走时 3014秒,14/3000=0.00466 大约是 0.46% 但是ISP下载以后,实际的偏差往 ...[/quote]

在 port_8051.h 中,

9097bd6c-dd77-40fb-8833-7bf1fa1b0574.png

你把所有 65536 都改成 65535 试一试,

时间就会变慢了,误差就小了。

但相关算法都应该按 65536 算啊?先试一试再说吧...

我当前比较忙,等过两天再抽空研究一下这个问题。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:302
  • 最近打卡:2025-05-01 09:23:14

0

主题

24

回帖

365

积分

中级会员

积分
365
发表于 2024-12-20 13:32:57 | 显示全部楼层
迟老师,问一下,时间片是限制相同优先级任务,安全运行时是限制每个任务运行时间的,是吧?安全运行时起作用,须在syscfg.h中启用才可以,是吧?安全运行时超时阻塞的任务,在什么情况下变成就绪态?

点评

时间片只对相同优先级的任务起作用。 安全运行时是一种安全保护策略,以使防止某任务 意外的(如bug)、无限制的使用处理器,也就是过长时间的就绪。因为一旦出现这种情况,比它优先级的低的任务都将无法运行。 然而  详情 回复 发表于 2024-12-20 15:01
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:30 , Processed in 0.176233 second(s), 121 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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