YOLObing
发表于 2024-12-11 22:47:48
保持学习状态
zengchang
发表于 2024-12-11 23:57:51
<p>支持开源支持原创</p>
CosyOS
发表于 2024-12-16 22:18:05
<h2>CosyOS-II 最新版 V3.2.0-beta 发布!</h2>
<h3>新版特性:</h3>
<h4>一、新增服务</h4>
<p>1、禁止调度<br />
仅是禁止任务调度,不会关闭系统中断(SysTick、PendSV),仅支持在任务中调用。<br />
禁止调度适用于在任务中,对大段的任务级公共资源和程序过程的保护。<br />
支持嵌套功能(最大嵌套深度255),嵌套使用时,禁止调度与恢复调度必须配对使用。<br />
禁止调度与任务临界区之间可随意互相嵌套,但仅推荐在禁止调度中嵌套任务临界区。<br />
禁止调度:uForbidSchedule;<br />
恢复调度:uResumeSchedule;</p>
<p>2、时间单位转换<br />
把其它单位的时间转换为滴答周期。<br />
毫秒转换为滴答周期,xTick_ms(ms);<br />
秒钟转换为滴答周期,xTick_s(s);<br />
分钟转换为滴答周期,xTick_m(m);<br />
小时转换为滴答周期,xTick_h(h);</p>
<p>3、清除就绪延时<br />
清除当前任务的就绪延时,前提是当前任务已在禁止调度中。<br />
tClearDelay;<br />
iClearDelay;<br />
pClearDelay;</p>
<p>4、切换任务<br />
尝试切换至某任务。<br />
uSwitchTask(task);<br />
iSwitchTask(task);<br />
pSwitchTask(task);</p>
<p>5、禅让任务<br />
自身任务主动禅让CPU使用权给其它相同优先级的任务。<br />
多个相同优先级的任务,通过禅让的方式可实现合作式任务。<br />
uYieldTasking;</p>
<h4>二、删除服务</h4>
<p>删除服务 uTaskSchedule、iTaskSchedule,取而代之的服务是 切换任务。</p>
<h4>三、服务功能调整</h4>
<p>自身任务延时,自身任务延时分为阻塞延时和就绪延时。<br />
阻塞延时:在延时期间,任务会进入阻塞状态,把CPU使用权转让给其它任务。<br />
就绪延时:在延时期间,任务会维持就绪状态,原地等待延时时间到达,不转让CPU使用权。<br />
当在禁止调度中,自动选择为就绪延时,否则选择为阻塞延时。<br />
不支持在临界区中(包括任务临界区和全局临界区)或关闭总中断时调用。</p>
<h4>四、服务更名</h4>
<p>1、飞信信箱的声明和创建;<br />
2、消息队列的声明和创建;<br />
3、更新全局变量副本;</p>
<h4>五、新增文件 ur_eapi.h</h4>
<p>ur_api.h:用户API定义,含注释说明,所有内核服务的API说明均在此文件中,并支持 doxygen。<br />
ur_eapi.h:用户API的补充扩展定义,仅是定义无注释说明,所有内核服务的API说明均在 ur_api.h 中,并支持 doxygen。</p>
<p>doxygen 生成说明书:</p>
<p><img src="data/attachment/forum/202412/16/215346w3lqdyyhylqaal7t.png" alt="d760bb9e090ce5562c6c5c9efc900e2d.png" title="d760bb9e090ce5562c6c5c9efc900e2d.png" /></p>
<p><img src="data/attachment/forum/202412/16/220917vrl7lpil2pklzg35.png" alt="326c8eca-61a2-4e4a-a081-d14c5e696321.png" title="326c8eca-61a2-4e4a-a081-d14c5e696321.png" /></p>
<p><img src="data/attachment/forum/202412/16/220958aww572gw52avaf20.png" alt="d19d1de7-8d73-4444-b7d1-c8a61c4ba78e.png" title="d19d1de7-8d73-4444-b7d1-c8a61c4ba78e.png" /></p>
<h4>六、软件RTC,增加 每半秒信号,方便实现 每半秒钟做一件事。</h4>
<h4>七、全新升级的任务管理器,更加美观大方。</h4>
<p><img src="data/attachment/forum/202412/16/220507inzxttbhtnv82vb0.png" alt="5A40650242EDD4544478111F98613BA3.png" title="5A40650242EDD4544478111F98613BA3.png" /></p>
<h4>稍后将会在顶楼发布新版 工程模板 和 用doxygen生成的API说明书。</h4>
DIY365
发表于 2024-12-17 14:09:11
CosyOS 发表于 2024-12-16 22:18
CosyOS-II 最新版 V3.2.0-beta 发布!
新版特性:
一、新增服务
有用户手册,使用下来更方便了
大锤子
发表于 2024-12-18 10:41:53
<p><img alt="qiang" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/qiang.gif" title="qiang" /></p>
Yang.Lian
发表于 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 秒
CosyOS
发表于 2024-12-18 19:52:18
Yang.Lian 发表于 2024-12-18 10:52
各位老师,
我发现 软件RTC 有点不准啊,
软件RTC是否准确,主要依赖系统时钟;
当然,如果在 任务临界区中 时间过长,接近或超过一个滴答周期,会丢节拍,将导致时间变慢。
内部时钟 误差可能会大一些,产生影响。
用 ISP 下载的时候,可关注一下内部IRC频率,看误差多少?
误差大的话,可反复下载,直到误差很小。
但即使误差很小,温度升高以后,误差会不会变大?
但感觉还是太离谱了,即使IRC有 1/1000 的误差,1000分钟误差也才1分钟。
Yang.Lian
发表于 2024-12-19 09:35:49
CosyOS 发表于 2024-12-18 19:52
软件RTC是否准确,主要依赖系统时钟;
当然,如果在 任务临界区中 时间过长,接近或超过一个滴答周期,会 ...
实际时间过去3000秒,软件RTC走时 3014秒,14/3000=0.00466 大约是 0.46%
但是ISP下载以后,频率调节误差往往是 0.046% 这个数量级
实际时间的误差是 0.46%
频率的误差是 0.046%
这个差距还是有点大的
CosyOS
发表于 2024-12-19 16:56:58
Yang.Lian 发表于 2024-12-19 09:35
实际时间过去3000秒,软件RTC走时 3014秒,14/3000=0.00466 大约是 0.46%
但是ISP下载以后,实际的偏差往 ...
<p>在 port_8051.h 中,</p>
<p><img src="data/attachment/forum/202412/19/165259v8sdo338dxm0ex2z.png" alt="9097bd6c-dd77-40fb-8833-7bf1fa1b0574.png" title="9097bd6c-dd77-40fb-8833-7bf1fa1b0574.png" /></p>
<p>你把所有 65536 都改成 65535 试一试,</p>
<p>时间就会变慢了,误差就小了。</p>
<p>但相关算法都应该按 65536 算啊?先试一试再说吧...</p>
<p>我当前比较忙,等过两天再抽空研究一下这个问题。</p>
stc-xuewei
发表于 2024-12-20 13:32:57
迟老师,问一下,时间片是限制相同优先级任务,安全运行时是限制每个任务运行时间的,是吧?安全运行时起作用,须在syscfg.h中启用才可以,是吧?安全运行时超时阻塞的任务,在什么情况下变成就绪态?