转自https://blog.csdn.net/qq_20405005/article/details/77967358

前一阵子在做dying gasp功能测试,过程中恰好测试到了Linux的响应速度,特来分享一下。

这里的dying gasp是用GPIO(input mode)实现的,在DC掉电的时候,此GPIO会立即被拉低, 而系统的3.3V电压还能维持10ms左右时间,这样在这个时间里便可以做些通知功能告诉外面的设备。

GPIO信号侦测用interrupt方式实现,为了量测方便,在 中断服务程序(isr) 函数里面,对一个LED (gpio output) 进行拉高,用示波器量测发现,GPIO 拉低/LED 拉高之间的间隔只有 10us,这个数据好像还不错。这里面要经历:关中断、保护CPU寄存器、进入中断服务程序、执行LED操作。

一般对类似button功能的GPIO信号侦测,如果没有特别时间要求,会在中断服务程序里面再调用一个schedule_work来实现,这需要任务切换的,一般一个任务切换都需要几十个ms,所以在dying gasp的需求里面是不能满足的。

之后,我在中断服务程序里面,又加了一个发包功能,通过ethernet发出一个数据包,也可以正常工作。

相关文章:

  • 2021-07-27
  • 2021-07-12
  • 2022-12-23
  • 2022-01-16
  • 2021-09-13
  • 2022-12-23
  • 2021-07-25
  • 2021-12-15
猜你喜欢
  • 2022-01-20
  • 2021-07-19
  • 2021-06-29
  • 2021-06-01
  • 2021-11-19
  • 2021-11-25
  • 2021-07-14
相关资源
相似解决方案