在Linux驱动中把无法归类的五花八门的设备定义为混杂设备(用miscdevice结构体表述).miscdevice共享一个主设备号MISC_MAJOR(即10),但次设备号不同. 所有的miscdevice设备形成了一个链表,对设备访问时内核根据次设备号查找对应的miscdevice设备,然后调用其file_operations结构中注册的文件操作接口进行操作. miscdevice的API实现在drivers/char/misc.c中. struct miscdevice { int min…
platform是一条虚拟的总线.设备用platform_device表示,驱动用platform_driver进行注册,Linux platform driver机制和传统的device driver机制(通过driver_register进行注册)相比,一个明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动中使用这些资源时通过platform device提供的标准结构进行申请并使用.这样提高了驱动和资源的独立性,并且具有较好的可移植性和安全性(这些标准接口…
使用非阻塞I/O的应用程序通常会使用select()和poll()系统调用查询是否可对设备进行无阻塞的访问,这两个系统调用最终又会引发设备驱动中的poll()函数被执行,所以我们的问题就集中到了如何编写设备驱动中的poll()函数就可以了.先来看看设备驱动中的poll()函数原型: unsigned int (*poll)(struct file *filp, struct poll_table *wait); 这个函数要进行下面两项工作.首先,对可能引起设备文件状态变化的等待队列调用poll_…
在需要创建一个由一系列数据顺序组合而成的/proc虚拟文件或一个较大的/proc虚拟文件时,推荐使用seq_file接口. 数据结构struct seq_fille定义在include/linux/seq_file.h struct seq_file { char *buf;     //seq_file接口使用的缓存页指针 size_t size;   //seq_file接口使用的缓存页大小 size_t from;   //从seq_file中向用户态缓冲区拷贝时相对于buf的偏移地址 s…
/** * Author:hasen * 參考 :<linux设备驱动开发具体解释> * 简单介绍:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:时钟 * Date:2014-11-15 */ 一.内核定时器             1.内核定时器编程             软件意义上的定时器终于依赖硬件定时器来是实现.内核在时钟中断发生后运行检測各定时器是否到期, 到期后的定时器处理函数将作为软中断在底半部运行.实质上,时钟中断处理程序会唤起TIMER_SOFTIR…
Flash存储器 ——>Flash存储器是近几年来发展最快的存储设备,通常也称作闪存.Flash属于EEPROM(电可擦除可编程只读存储器),是一类存取速度很高的存储器. ——>它既有ROM断电可保存数据的特点,又有易于擦写的特点.Flash可以在断电的情况下长期保存信息,因此被广泛的应用在PC机的BIOS和嵌入式系统的存储设备. Linux Flash驱动结构 ——>Linux内核对Flash存储器有很好的支持.内核设计了一个MTD结构支持Flash设备,用户只需要按照MTD的要求设置…
Introduction the naive "scull" 首先.什么是scull? scull (Simple Character Utility for Loading Localities). scull is a char driver that acts on a memory area as though it were a device. 和第一个C程序Hello world一样.他什么都不能干,却能非常好的阐释怎么一步步进阶的去写驱动 blog的最后,我会给出这对于s…
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD的函数,单独做一个添加DVD的函数,如果还要往这个媒体库里添加其他的媒体类,还要再创建另一个添加函数.我们说这样的代码不具备可扩展性.另外,CD和DVD有很多相似之处,它们的成员变量里都有标题,播放时长,评论,等等,我们称这样的程序存在大量的代码复制,代码复制是代码不良的表现.所以我们可以创建一个它…
关于 jQuery Mobile jQuery Mobile是为了填补jQuery在移动设备应用上的一个新项目.它应用了HTML5和CSS3. 主要特性 基于jQuery构建. 采用与jQuery一致的核心和语法,还使用了jQuery UI的代码和模式. 兼容绝大部分手机平台 轻量级的库 模块化构建 HTML5标记驱动的配置 渐进增强原则 响应设计 强大的Ajax导航系统 易用性 支持触摸和鼠标事件 统一的UI组件 强大的主题化框架 基本应用 默认情况下,移动浏览器,会像在大屏幕的Web浏览器那…
lightning对于开发salesforce人员来说并不陌生,即使没有做过lightning开发,这个名字肯定也是耳熟能详.原来的博客基本都是基于classic基于配置以及开发,后期博客会以lightning为主. 那么问题来了,why lightning? lightning针对classic,不管是针对界面上来说还是开发上来说,都有很大的改变.lightning基于sales,service增加了很多很便捷的功能,针对列表视图也增加了kanban 视图,列表,详情页面更加友好,可以基于组件…