Notas de uso do temporizador

Chamada de função de interrupção do timer INIT_DELAYED_WORK

Defina variáveis ​​globais:

 #ifdef TPD_ESD_PROTECT
#define TPD_ESD_CHECK_CIRCLE       2000
static struct delayed_work gsl_esd_check_work;
static struct workqueue_struct *gsl_esd_check_workqueue = NULL;
 #endif

Inicialize:

#ifdef TPD_ESD_PROTECT
INIT_DELAYED_WORK(&gsl_esd_check_work, gsl_esd_check_func);
    gsl_esd_check_workqueue = create_workqueue("gsl_esd_check");
#endif

Ativar o tempo:

 queue_delayed_work(gsl_esd_check_workqueue, &gsl_esd_check_work, TPD_ESD_CHECK_CIRCLE);

Tempo próximo:

 cancel_delayed_work_sync(&gsl_esd_check_work);

Interromper a função:

static void gsl_esd_check_func(struct work *work)
{
*************************************************
}

Resumo e exemplos de temporizadores do kernel do Linux e filas de trabalho

https://www.jianshu.com/p/a3ad64ddbd89
é muito detalhado e completo

66 artigos originais publicados · Gosto 112 · Visitas: 470.000+

Acho que você gosta

Origin blog.csdn.net/qq_44710568/article/details/105572948
Recomendado
Clasificación