各位我写了一个内核模块,运行结果与我想的不太一样:
理论结果:gpio拉高1秒,gpio拉低1秒,这样循环进行;
实际结果:gpio拉高拉低切换时间不固定,有时1s,有时好几秒以上才切换。
实现过程:
模块初始化了两个工作队列,work_on, work_off; 两个工作队列分别注册的回调函数未led_on, led_off;
模块加载后,工作队列work_on;会操作gpio拉高,然后调用schedule_delayed_work(&work_off, msecs_to_jiffies(1000));
在工作队列work_off中,会操作gpio拉低操作,然后调用schedule_delayed_work(&work_on, msecs_to_jiffies(1000));
有哪位有时间可以试试,如果有知道原因的,请教一下。