2015-10-14 183 views
0

就面临着使用硬件看门狗GPIO的有趣的案例。我生成用于通过使用GPIO看门狗外部系统控制5HZ信号(曲折)。为了保持运行,我每隔30秒将一些数据写入/ dev/watchdog1文件。我们的配置是60秒看门狗后信号将停止。所以,一切都很好,但系统速度很慢,用户应用程序只有在启动后约40秒后才准备好。但看门狗驱动程序在5秒后已准备就绪。对于整个系统,这个信号必须在启动后尽快出现。硬件看门狗GPIO ...自动运行

所以,我希望一旦探测器func被调用,看门狗驱动程序就会运行gpio信号,然后我们有约60秒的时间从用户应用程序(开始写入smth到/ dev/watchdog1)进行控制。

问题是:更改看门狗驱动程序直接从探针func运行它是好主意吗?或者,也许有什么诀窍直接从驱动程序运行gpio watchdog至少一次?或者,也许有此问题的另一个解决方案...

附:我用CONFIG_GPIO_WATCHDOG

回答

0

我过去在引导加载程序服务监视解决类似的问题。

我们使用的U-Boot,有看门狗钩在其源极(特别是其内核的uImage减压源)。这意味着当内核映像解压缩时,我们可以挂钩一些额外的代码来为看门狗提供服务,当时内核和驱动程序都没有加载。

它有点比你的问题是问不同的做法。我们没有尽可能早地使用内核驱动程序来维护看门狗,而是尽可能晚地使用引导装载程序来为看门狗提供服务。这为看门狗司机加载和接管事件提供了足够的时间间隔。