惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
WordPress大学
WordPress大学
IT之家
IT之家
G
Google Developers Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
Engineering at Meta
Engineering at Meta
Martin Fowler
Martin Fowler
V
V2EX
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
V
Visual Studio Blog
有赞技术团队
有赞技术团队
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网

Raspberry Pi

树莓派受内存暴涨多次涨价,如今 5B 8GB 款上逼千元,还值得买吗? 客户给了一台树莓派的板子,没给用户名密码,打算让在板子上做程序开发,希望各位大佬指点 1000 捡了个香橙派 5pro 16g+256 emmc 年底清年假,准备带个树莓派去“闭关”十来天,求推荐好玩的 Edge AI 项目/硬件周边 树莓派模块购买 树莓派 4/5 现在价格值得入吗? 树莓派香橙派等的可直接烧录到 TF 卡启动的 IMG 文件怎么制作的 树莓派 Raspberry Pi 4B TVS 瞬态抑制二极管击穿更换求助 求推荐一个树莓派系统 现在树莓派的玩法都有什么 嵌入式场景大家喜欢在与下位机交互的时候用什么协议 求推荐树莓派型号,主要用途: Linux 下载机、跑一些 Python 脚本 请问树莓派做 nas 有什么好用的系统? 树莓派能带的动大容量硬盘柜吗 树莓派 5 16GB 已经发布了,大家有什么好的应用方向吗? 把树莓派当主路由,无线网速很慢,可能是什么原因呢? 开发版代替主机用于大屏数据展示可行吗? 办公室大屏的主机用开发版替代有朋友实际落地吗? 树莓派 5 外接移动硬盘遇到一个奇怪的问题 树莓派对比迷你主机有什么优势场景吗 树莓派 4B 挂了 raspberry pi 的 imager,烧录系统没改变的问题 有比树莓派更好的选择么? 树莓派+USB 的 4g 无线上网卡很不稳定 3B+wifi 断连 卖 3 个树莓派回血 最近树莓派价格回落了? 树莓派户外太阳能供电解决方案 树莓派如何保证 usb 供电能稳定达到 5V 1A 树莓派 5 开始有货了,有没推荐在哪购买?
GPIO 和中断问题
huangya · 2023-07-31 · via Raspberry Pi

我想使用基于 GPIO 的按钮。假设按下输入低电平,松开是高电平。硬件有做抖动消除(树莓派可能没有,但是应该不影响我这个比较宽泛的问题的讨论)。在写驱动的时候,脑海里浮现了一个奇怪的问题。

正常流程:

按键 ->硬件抖动消除 -> 中断产生,cpu 收到中断 ->中断处理程序读取 GPIO 的值(高还是低电平)判断按键的动作是什么,读到的值是 0 ,然后做相应的处理

但是我不知道是否在理论上存在这样一种可能:

按键 ->硬件抖动消除 -> 中断产生,cpu 收到中断 ->键被快速释放(假设理论上有个足够快的按键工具可以快速释放) -> 硬件抖动消除 ->由第一次中断引起的中断处理程序读取 GPIO 的值,读到的值是 1 。与正常流程不一样。

其实这个问题的本质我感觉是 GPIO 没有硬件 cache 来存储数据(也就是每次中断对应的 GPIO 值),后来的中断可能在理论上覆盖前面的值。但是像其他设备,比如网卡就有 cache 会存储数据,虽然 cache 的容量是有限制的,但是至少可以保证前几次中断来的数据不会被覆盖。cache 满了的时候,会丢弃后面的数据。请问这样理解对吗?

另外,正常流程中,读取 GPIO 值在中断的 top half 里面读比较好呢,还是在 bottom half 里面读也可以?是不是在 bottom half 里面读也无所谓,因为 GPIO 按键是个慢中断,在实践上没有我后面所说的 GPIO 值被后来的中断覆盖的问题。