完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
1 我在驱动程序中开启了按键中断 在porbe函数中,使用函数device_init_wakeup( pdev->dev, 1) 2 通过SIMPLE_DEV_PM_OPS注册了key_drv_suspend函数,并在该函数里面通过enable_irq_wake(),使能了可以通过按键来唤醒系统 3 通过SIMPLE_DEV_PM_OPS注册了key_drv_resume函数,并在该函数里面通过disable_irq_wake(),关闭了可以通过按键来唤醒系统 SIMPLE_DEV_PM_OPS(wj_key_pm_ops, key_drv_suspend,key_drv_resume) 4 在driver中 .pm = wj_key_pm_ops 最后加载驱动 5 在应用程序中通过调用echo mem > /sys/power/state让设备进入低功耗状态,但是按下按键,系统没有恢复。 这种情况大概是哪里出现问题了呢 //这个是我的驱动里面的suspend和resume函数 static int key_drv_suspend(struct device * dev, pm_message_t state) { printk("key supendrn"); printk("key_drv_suspend's which_irq[0] is %dn", which_irq[0]); printk("pm_message_t is %xrn", state.event); enable_irq_wake(which_irq[0]);//使能中断唤醒 return 0; } static int key_drv_resume(struct device * dev) { printk("key resumern"); is_dev_sleep_or_run = 2; printk("key_drv_resume key is down: 按下按键, 唤醒设备rn"); disable_irq_wake(which_irq[0]);//关闭中断唤醒 return 0; } //static SIMPLE_DEV_PM_OPS(wj_key_pm_ops, key_drv_suspend, key_drv_resume); static const struct dev_pm_ops wj_key_pm_ops = { .suspend = key_drv_suspend, .resume = key_drv_resume, }; static struct platform_device_id key_drv_ids[] = { {.name = "nuc977-key"},//匹配的名字 {} }; static struct platform_driver key_driver = { .driver = { .name = "nuc977-key", .owner = THIS_MODULE, .pm = wj_key_pm_ops, }, .probe = key_drv_probe, .remove = key_drv_remove, .id_table = key_drv_ids, // .suspend = key_drv_suspend, // .resume = key_drv_resume, }; |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
179浏览 2评论
为什么DSP(数字信号处理)需要Q格式?q31、q15、q7 和 f32 是什么意思呢?
323浏览 2评论
请问NuMicro® Cortex-M0/M4系列可以提供哪些USB器件示例代码?
230浏览 2评论
芯片进入空闲或关机模式后,窗口看门狗定时器 (WWDT) 是否会继续工作呀?
175浏览 2评论
请问Nu-Link 驱动程序可以同时安装在 Keil RVMDK UV4 和 UV5 上吗?
211浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:32 , Processed in 0.678195 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
855
