我想在我的应用程序中使用一个看门狗计时器。
我正在使用yocto在msm8953平台上构建系统。
根据.dtsi文件中的兼容字段,在.defconfig文件(即CONFIG_MSM_WATCHDOG_V2 = y)中配置了相应的驱动程序,我将得到以下dmesg:
[ 0.270444] msm_watchdog b017000.qcom,wdt: wdog absent resource not present
[ 0.270845] msm_watchdog b017000.qcom,wdt: MSM Watchdog Initialized但是,在/dev目录中没有创建看门狗节点。
我还将看门狗和WATCHDOG_CORE驱动程序配置为Kconfig文件中的默认配置,但/dev目录中仍然不存在看门狗节点。
编辑1:添加默认值为Y在/驱动器/看门狗/Kconfig
menuconfig看门狗
看门狗计时器支持
默认Y
中频看门狗
配置WATCHDOG_CORE
bool "WatchDog计时器驱动核心“
默认Y
发布于 2018-07-06 05:51:39
我找到了来自这里的代码。我的答案是基于这个代码。
设备驱动程序可以在/dev和/sys上生成节点。所以我们必须同时检查/sys和/dev。
关于/sys上的节点
有许多函数可以在/sys上创建节点。其中一个函数是device_create_file()。在这段代码中,如果调用init_watchdog_work(),调用device_create_file() (看门狗的节点),则将由此代码创建disable。
error = device_create_file(wdog_dd->dev, &dev_attr_disable);您可以在msm看门狗目录中找到disable节点。您可以使用find找到msm看门狗目录。
find /sys -name '*watchdog*'即使您的代码与这不同,您也可以看到device_create_file()在看门狗驱动程序中被调用。因此,您可以像我说的那样找到一个节点。
关于/dev上的节点
通常,您可以使用device_create()在/dev上创建一个节点。如果调用device_create(),则在/dev上创建节点,否则将不创建该节点。
旋转器驱动程序在/dev上创建msm_rotator节点。
#define DRIVER_NAME "msm_rotator"
...
msm_rotator_dev->device = device_create(msm_rotator_dev->class, NULL,
msm_rotator_dev->dev_num, NULL,
DRIVER_NAME);如果在代码中调用了device_create(),则可以在/dev上找到节点。如果函数未被调用,则/dev上没有节点。
https://stackoverflow.com/questions/51184957
复制相似问题