Atomthreads关于STM8S低功耗的思考

Atomthreads在STM8S低功耗设计中面临挑战,HALT模式可能导致定时器不准和唤醒时间不确定。文章讨论了HALT模式的限制,以及试图利用AWU来设置唤醒时间的局限性。提出了类似Linux中的variable tick timer概念,以适应低功耗需求,允许系统在适当时候暂停心跳时钟,从而实现更有效的节能。
摘要由CSDN通过智能技术生成

Atomthreads像众多操作系统一样,在没有任务调度是会调用idle

static void atomIdleThread (uint32_t param)
{
    /* Compiler warning  */
    param = param;

    /* Loop forever */
    while (1)
    {
        /** \todo Provide user idle hooks*/
    }
}

atomthreadsatomIdleThread()是以线程的形式存在,也就是最低优先级线程。作者默认没有填写这个函数。

uint8_t atomOSInit (void *idle_thread_stack_top, uint32_t idle_thread_stack_size)
{
    uint8_t status;

    /* Initialise data */
    curr_tcb = NULL;
    tcbReadyQ = NULL;
    atomOSStarted = FALSE;

    /* Create the idle thread */
    status = atomThreadCreate(&idle_tcb,
                 IDLE_THREAD_PRIORITY,
                 atomIdleThread,
                 0,
                 idle_thread_stack_top,
                 idle_thread_stack_size);

    /* Return status */
    return (status);

}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值