在工作中,截图工具是必不可少的。尽管qq和微信自带截图功能,但它们需要粘贴后才能保存,而且每次使用都需要登录软件,这显然不够便捷。
Windows10系统自带的截图工具可以通过快捷键Win + Shift + S来使用,虽然可以保存截图,但却无法进行标注,限制了其使用场景。
今天我要向大家推荐一款集所有优点于一身的截图神器——Snipaste。这款工具不仅可以直接保存截图,还支持标注功能,并且无需登录即可使用,深受同事们的喜爱。
Snipaste的官网地址是:
https://www.php.cn/link/181571ac9869dc652878903429ff5465

你可以直接从左侧下载Windows桌面版本。下载后无需安装,解压即可使用。

Snipaste的截图快捷键为F1,贴图快捷键为F3。使用效果如下:

如图所示,Snipaste的功能非常全面。最近我正在研究Linux电源管理子系统,结合之前对中断子系统的研究,可以更好地理解中断是如何唤醒系统的。
中断唤醒系统的功能非常常见,比如手机的电源键每次按下都会使手机进入睡眠状态或唤醒手机。
代码语言:JavaScript 代码运行次数:0
运行 复制static irqreturn_t smcdef_event_handler(int irq, void *private){
/* do something you want, like report input events through input subsystem */
return IRQ_HANDLED;
}
static int smcdef_suspend(struct device *dev){
enable_irq_wake(irq);
}
static int smcdef_resume(struct device *dev){
disable_irq_wake(irq);
}
static int smcdef_probe(struct i2c_client client,
const struct i2c_device_id id){
/ ... /
request_thread_irq(irq,
smcdef_event_handler,
NULL,
IRQF_TRIGGER_FALLING,
"smcdef",
pdata);
return 0;
}
static int smcdef_remove(struct i2c_client *client){
return 0;
}
static const struct of_device_id smcdef_dt_ids[] = {
{.compatible = "wowo,smcdef" },
{ }
};
MODULE_DEVICE_TABLE(of, smcdef_dt_ids);
static SIMPLE_DEV_PM_OPS(smcdef_pm_ops, smcdef_suspend, smcdef_resume);
//注册
static struct i2c_driver smcdef_driver = {
.driver = {
.name = "smcdef",
.of_match_table = of_match_ptr(smcdef_dt_ids),
.pm = &smcdef_pm_ops,
},
.probe = smcdef_probe,
.remove = smcdef_remove,
};
module_i2c_driver(smcdef_driver);
MODULE_AUTHOR("smcdef");
MODULE_DESCRIPTION("IRQ test");
MODULE_LICENSE("GPL");
这段代码我会研究透彻后再为大家详细讲解。










