网易首页 > 网易号 > 正文 申请入驻

基于RK3568的内部定时器应用示例

0
分享至

1.内部定时器介绍

内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于kernel/linux/timer.h和kernel/timer.c文件中。

被调度的函数肯定是异步执行的,它类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:

a. 没有current指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。

b. 不能执行休眠(或可能引起休眠的函数)和调度。

c. 任何被访问的数据结构都应该针对并发访问进行保护,以防止竞争条件。

内核定时器的调度函数运行过一次后就不会再被运行了(相当于自动注销),但可以通过在被调度的函数中重新调度自己来周期运行。

在SMP系统中,调度函数总是在注册它的同一CPU上运行,以尽可能获得缓存的局域性。

2.驱动示例代码

RK3568蜂鸣器定时鸣叫:

#include

#include

#include

#include

#include

#defineGPIO_PIN 15 //替换为你的GPIO引脚

staticstruct timer_list timer;

intgpio_status = 1;

//定时器中断处理函数

staticvoid timer_callback(struct timer_list *t) {

gpio_set_value(GPIO_PIN ,gpio_status);

gpio_status = ! gpio_status;

mod_timer(&timer, jiffies +msecs_to_jiffies(1000)); // 1秒后再次触发定时器

staticint __init mymodule_init(void) {

int ret;

//请求GPIO

ret = gpio_request(GPIO_PIN,"my_gpio");

if (ret) {

printk("无法请求GPIO %d\n",GPIO_PIN);

return ret;

//配置GPIO引脚为输出

gpio_direction_output(GPIO_PIN, 0);

//初始化定时器

timer_setup(&timer, timer_callback, 0);

mod_timer(&timer, jiffies +msecs_to_jiffies(2000)); // 2秒后触发定时器

return 0;

staticvoid __exit mymodule_exit(void) {

//删除定时器

del_timer_sync(&timer);

//释放GPIO

gpio_free(GPIO_PIN);

module_init(mymodule_init);

module_exit(mymodule_exit);

MODULE_LICENSE("GPL");

MODULE_AUTHOR("zou");

MODULE_DESCRIPTION("SampleGPIO and Timer Interrupt Kernel Module");

3.内部定时器验证

将驱动编译成模块并insmod(加载)模块后,等待2秒后蜂鸣器开始以1s时间间隔鸣叫。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
史上首个!单核突破4000分的量产CPU问世

史上首个!单核突破4000分的量产CPU问世

芯东西
2024-11-04 17:06:34
男性开始衰老时,一般会有“1臭2大2小”,若没有,恭喜还算年轻

男性开始衰老时,一般会有“1臭2大2小”,若没有,恭喜还算年轻

蜉蝣说
2024-11-01 20:21:50
快船球员抱怨哈登软 泰伦卢:关键时刻拒投消极比赛 给机会不中用

快船球员抱怨哈登软 泰伦卢:关键时刻拒投消极比赛 给机会不中用

篮球话题团
2024-11-04 12:01:52
“他极度亲中,或担当中美关键对话者”,可前提是…

“他极度亲中,或担当中美关键对话者”,可前提是…

观察者网
2024-11-04 14:06:09
轰-20比歼-20更能令西方紧张?美媒首次承认,美军已经被反超!

轰-20比歼-20更能令西方紧张?美媒首次承认,美军已经被反超!

纾瑶
2024-11-04 20:40:45
我53岁开始躺平,5年换了3个圈子后才明白:有钱没钱,自己玩才好

我53岁开始躺平,5年换了3个圈子后才明白:有钱没钱,自己玩才好

十指说情
2024-11-04 17:32:16
回顾:河北一家惨遭灭门,4名女子体内有同一人DNA,牵出两代恩仇

回顾:河北一家惨遭灭门,4名女子体内有同一人DNA,牵出两代恩仇

历来都很现实
2024-10-08 00:12:04
36岁张继科新店开业阵仗大,本人脸色好憔悴,景甜刚做3个手术!

36岁张继科新店开业阵仗大,本人脸色好憔悴,景甜刚做3个手术!

古希腊掌管月桂的神
2024-11-04 14:54:57
合肥部分道路即将临时管制

合肥部分道路即将临时管制

鲁中晨报
2024-11-04 19:45:02
“台湾永远不会是中国的一部分!”话音未落,一人当众给她一巴掌

“台湾永远不会是中国的一部分!”话音未落,一人当众给她一巴掌

诗经往史
2024-10-03 11:30:02
太尴尬!提词器似乎出现问题,哈里斯反复重复一句话,现场喊翻页

太尴尬!提词器似乎出现问题,哈里斯反复重复一句话,现场喊翻页

看晓天下事
2024-11-03 11:38:44
这是左小青什么时候的照片?美到让人移不开眼

这是左小青什么时候的照片?美到让人移不开眼

视点历史
2024-10-05 00:50:03
总决赛首胜!郑钦文飞吻庆祝:喜提249万+3大突破,出线在望

总决赛首胜!郑钦文飞吻庆祝:喜提249万+3大突破,出线在望

叶青足球世界
2024-11-04 23:12:56
关于尼姑的特殊问题,你知道吗?

关于尼姑的特殊问题,你知道吗?

农村玲子
2024-10-24 11:28:50
妈呀这是章泽天?变化也太大了!哪儿还是那个柔弱的奶茶妹妹?

妈呀这是章泽天?变化也太大了!哪儿还是那个柔弱的奶茶妹妹?

西瓜爱娱娱
2024-09-25 11:50:33
终于引起公愤了, 老百姓的声音, 还要继续无视吗?

终于引起公愤了, 老百姓的声音, 还要继续无视吗?

猫小狸同学
2024-10-16 11:25:02
湖人自媒体吐槽:范德比尔特还活着吗?随后被后者拉黑

湖人自媒体吐槽:范德比尔特还活着吗?随后被后者拉黑

直播吧
2024-11-05 07:19:22
开季1胜6负!美媒发问:雄鹿应该换帅吗?

开季1胜6负!美媒发问:雄鹿应该换帅吗?

直播吧
2024-11-05 10:30:38
“这个问题的决定权在中国不在美国”

“这个问题的决定权在中国不在美国”

观察者网
2024-11-04 18:32:13
秘鲁南部发生4.8级地震

秘鲁南部发生4.8级地震

财联社
2024-11-04 06:06:05
2024-11-05 10:42:44
武汉万象奥科
武汉万象奥科
工业物联网系统级解决方案
141文章数 0关注度
往期回顾 全部

科技要闻

硅谷2024最疯狂投资:押注下一任美国总统

头条要闻

女子失联12天没吃没喝在通风井获救 濒死之际出现幻觉

头条要闻

女子失联12天没吃没喝在通风井获救 濒死之际出现幻觉

体育要闻

一个想改变中国足球的日本人

娱乐要闻

UP主影视飓风Tim官宣离婚,老粉天塌了

财经要闻

特朗普无牌可打

汽车要闻

轴距增加60mm还配副驾屏 一汽-大众探岳L正式下线

态度原创

游戏
教育
本地
房产
公开课

11月上旬XGP新增公布:《合金弹头战略版》等7款

教育要闻

树上有12只鸟,飞走8只,飞来6只,树上少了几只?

本地新闻

云游中国|我与这座城市 合得来 不怕肥

房产要闻

刺激!大批豪宅疯狂入市,海口住宅风向彻底变了!

公开课

AI如何揭开大自然和宇宙的奥秘

无障碍浏览 进入关怀版