神农鼎
发表于 2024-2-9 10:18:09
380091044
发表于 2024-2-10 08:21:45
神农鼎 发表于 2024-2-9 09:40
龙年新春捷报:
STC8H2K32U-45MHz-LQFP32/TSSOP28 的 USB 型 MCU 已开始制造光罩流程中
RMB1.3 的 USB, STC ...
2024年STC事业飞黄腾达,生意兴隆!
380091044
发表于 2024-2-10 08:22:19
神农鼎 发表于 2024-2-9 10:18
新年好龙年大吉!
380091044
发表于 2024-2-10 08:39:15
老师:新年好,给你拜个年!我突然想到一个问题,想请教一下,系统自身创建了一个空闲任务,并设它为最低优先级,当系统没有任务任务就绪时,则运行这个任务,让CPU“有事可干”。,系统空闲时,让他进入低功耗、休息不好吗?省电,为啥非要给他找一个无关紧要事,让它跑呢?
CosyOS
发表于 2024-2-10 15:26:06
本帖最后由 CosyOS 于 2024-2-10 15:53 编辑
380091044 发表于 2024-2-10 08:39
老师:新年好,给你拜个年!我突然想到一个问题,想请教一下,系统自身创建了一个空闲任务,并设它为最低优 ...
新年好!
CosyOS的系统空闲任务是有机会进入低功耗的。
uCreateTask(Sysidle, 0, MCUCFG_STACKSIZE_SYSIDLE, 0, 0)
{
// 1:如果启用了“安全运行时”,会编译下方代码。如果有任务进入超时状态,将在此清除超时信号,并在任务调度时恢复任务为就绪状态。
#if SYSCFG_SAFERUNTIME == __ENABLED__
if(true){
s_tid_t i;
for(i = 1; i < OS_TASKTOTAL + 1; i++){
s_sign_timeout = 0;
}
}
#endif
// 2:如果启用了软件RTC,会编译下方代码。如果“年”发生变化,将会重新计算2月为几天?
#if SYSCFG_SOFTRTC == __ENABLED__
if(true){
static s_u8_t year = 0xFF;
if(year != s_rtc){
year = s_rtc;
s_month2day = year ? ((year & 3) ? 28 : 29) : ((sDefCentury & 3) ? 28 : 29);
}
}
#endif
// 3:如果启用了空闲钩子,将会被调用,执行用户的代码。
#if SYSCFG_IDLEHOOK == __ENABLED__
idle_hook();
#endif
// 4:进入低功耗(STC为:PCON |= 0x01;Arm为:__WFI();)
mSys_Idle;
uEndTasking;
}
一、如果启用了“安全运行时”,进入低功耗模式的机率会显著降低,否则会时常进入低功耗模式。
二、如果三个系统配置项均禁用,那么只有进入低功耗 / 退出低功耗 的循环往复。
三、用户也可自行调整低功耗模式的等级(在MCU配置头文件中修改或直接修改 mSys_Idle),但必须支持中断唤醒。
380091044
发表于 2024-2-10 16:51:44
CosyOS 发表于 2024-2-10 15:26
新年好!
CosyOS的系统空闲任务是有机会进入低功耗的。
感谢老师指点,
success
发表于 2024-2-12 09:18:29
好像提供的示例里面不见有用户任务的声明及创建似的?只有
uStartTask(Starter, OS_STATUS_READY);
uStartTask(Sysidle, OS_STATUS_READY);
好像这两个不像是用户任务似的?
哪位请指导一下,谢谢?
success
发表于 2024-2-12 09:19:26
uStartTask(Starter, OS_STATUS_READY);
uStartTask(Sysidle, OS_STATUS_READY);
请问这两个是否系统级任务?就是必须创建的?
CosyOS
发表于 2024-2-12 17:17:54
success 发表于 2024-2-12 09:19
uStartTask(Starter, OS_STATUS_READY);
uStartTask(Sysidle, OS_STATUS_READY);
请问这两个是否系统级任务 ...
这两个是系统任务,由系统自动创建并启动。
测试程序中都有用户任务创建的示例。
success
发表于 2024-2-16 15:39:35
CosyOS 发表于 2024-2-12 17:17
这两个是系统任务,由系统自动创建并启动。
测试程序中都有用户任务创建的示例。 ...
您好,我打开的就是测试程序呀?