历史上的今天
返回首页

历史上的今天

今天是:2025年08月21日(星期四)

正在发生

2021年08月21日 | 1_5.5.5_字符设备驱动程序之查询方式的按键驱动程序_P

2021-08-21 来源:eefocus

目的:按键驱动,通过查询的方式获取按键值。


写出框架:

a.file_operation结构体;

b.入口函数中注册file_operation结构体,出口函数中卸载;

c.给sysfs提供更多的信息,用来给udev自动创建设备节点(创建一个class,在这个class下面创建class device);

硬件操作;

a.看原理图,引脚;

b.看2440的手册;

c.编程:单片机:使用物理地址;驱动:使用虚拟地址;(UA = ioremap(PA, size))

操作:在入口函数做地址映射,在open函数中配置引脚,在read函数中读取引脚状态。


内核态向用户态传数据,使用copy_to_user函数。

test函数中使用read函数进行读取,该函数最终调用内核中注册的second_drv_read函数。

使用./seconddrvtest & 让它在后台运行,然后用top指令查看,可以发现seconddrvtest 对CPU的占用率达到了99%,这是因为我们一直在while(1)中循环,所以CPU一直就在执行这一个进程。

这样做明显是不行的,但是按键的按下经常是不可以预测。使用轮询的方式来查询按键是否按下是很糟糕的做法,正常的做法是在中断中进行判断和操作。

推荐阅读

史海拾趣

BAE Systems公司的发展小趣事

作为一个大型企业,BAE Systems公司不仅关注经济效益,也积极履行社会责任,推动可持续发展。公司注重环境保护和安全生产,严格遵守相关法律法规和行业标准。同时,公司也积极参与社会公益事业,为社区发展和员工福利做出了贡献。此外,公司还注重员工的培训和发展,为员工提供了广阔的职业发展空间和良好的工作环境。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是BAE Systems公司在电子行业发展历程中的一部分,它们展示了公司的成长、创新、合作、应对挑战以及履行社会责任等方面的努力和成果。这些故事也充分说明了BAE Systems公司在电子行业中的重要地位和影响力。

CDI-DIODE公司的发展小趣事

随着市场竞争的加剧,CDI-DIODE公司意识到传统的营销方式已经无法满足市场需求。于是,公司开始尝试新的营销策略,如线上推广、社交媒体营销等。这些创新的营销方式不仅提升了公司的知名度,也增强了与客户的互动和联系,进一步提升了品牌影响力。

DBM REFLEX公司的发展小趣事

在全球环保意识日益增强的今天,DBM REFLEX积极响应可持续发展的号召。公司不仅在生产过程中注重环保和节能,还积极推广绿色产品和技术。同时,DBM REFLEX还积极参与社会公益事业,通过捐款捐物等方式回馈社会。这种对环保和社会责任的关注,使DBM REFLEX在电子行业树立了良好的企业形象。

Barnbrook Systems Limited公司的发展小趣事

随着技术的不断进步,Barnbrook意识到单一的电路板产品已经无法满足市场的多元化需求。于是,公司开始拓展产品线,逐步推出了包括服务器、存储设备以及网络设备在内的一系列电子产品。同时,Barnbrook也积极开拓国内外市场,通过参加国际电子展会、建立销售网络等方式,不断提升品牌知名度和市场份额。

德力康(DLK)公司的发展小趣事

在扩大产品线的同时,DLK公司也积极拓展国内外市场。通过参加各种行业展会、建立营销网络、加强客户服务等方式,DLK公司成功将产品销往全球多个国家和地区。在品牌建设方面,DLK公司注重产品质量和服务质量的提升,积极塑造企业形象和品牌形象。通过多年的努力,DLK已经成为了国内外知名的连接器品牌之一。

ETC1公司的发展小趣事

成谷科技是一家专注于ETC技术在区域市场应用的企业。公司根据不同地区的交通特点和需求,量身定制ETC解决方案,并在当地市场进行深耕细作。通过深入了解当地市场和客户需求,成谷科技成功打造了一系列具有地方特色的ETC应用案例,赢得了当地政府和客户的广泛赞誉。

问答坊 | AI 解惑

DS18B20中文资料

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 温度传感器DS18B20的中文资料,今天刚弄到的  …

查看全部问答>

【alllegro源码】快速设置BRD各层颜色

功能说明:      1、 快速设置BRD各层的颜色,当然颜色是预设好的。为了适应各位的喜好,放送源码可以修改各层颜色。       2、目前最多可设置18层,要再加多层也很简单       3、 ...…

查看全部问答>

LED损坏的原因及LED电路保护的方法

白光LED属于电压敏感型的器件,在实际工作中是以20mA的电流为上限,但往往会由于在使用中的各种原因而造成电流增大,如果不采取保护措施,这种增大的电流超过一定的时间和幅度后LED就会损坏。  造成LED损坏的原因主要有:  ①供电电压的突然升高。 ...…

查看全部问答>

关于DS18B20的提问!

最近的工作需要驱动DS18B20读取温度,在看了DS18B20的文档后第一感觉就是麻烦,由于只用了一根线的原因对于时序的要求极为严格,所以做了3天了都还没采出温度来 很让人恼火!希望各位指点哈! 考虑到我使用的是VRTX平台调试的,而且不怎么熟悉C中 ...…

查看全部问答>

vs2005 c# + wince

   vs2005   c#   +   wince     引入coredll.dll动态库,怎么实现自动拨号及检测断线重拨。…

查看全部问答>

EVC下...

请问, 我在EVC的模拟器(emulator)中显示一个对话框,如果用DoModal(),能正常显示,如果用Create(),对话框要么显示后立刻消失(我试过的一个CPropertySheet),要么根本看不见,ShowWindow()之后也不行,这个是怎么回事?…

查看全部问答>

收到家庭物联网DIY活动的器件了,秀一下

上午11点,接到韵达快递的电话,说有快递到了。就去门口拿。   是从苏州来的快递。   取回来打开一看,是DIY活动的器件。   先给大家分享一下。       把主要部件,一字排开 [ 本帖最后由 exiao ...…

查看全部问答>

AT90can128相关IO

有没有用过at90can128系列处理器的。。。。 没用过这款芯片,所以很多比较简单的都搞不好   比如判断一个引脚的电平高低   啊啊啊啊   困惑啊 求指点~~~~~…

查看全部问答>

试出一块以前买的2440,带10.2寸液晶屏。

板子很新,没怎么用, 具体淘宝YC2440,是带10.2寸液晶套餐的。液晶带驱动电路,800*480分辨率,运行板上带的WINCE,看起来感觉很爽。 配件除了缺个5V电源适配器,其他都在,因为买时花了不少钱,现在单10.2寸液晶屏全新的网上买也得800+,所以暂 ...…

查看全部问答>