在Linux的ARM平台上的驱动设计需要遵循一个基本的模式,也就是说在你的驱动设计里面除了有些是关于你的硬件知识,但是有些东西是设计这个驱动的几个必须的模块:

1、内核驱动的加载函数(必须的)

static int  _ _init initialization_function(void)

{

………………………..

}

module_init(initialization_function);但是在2.6的内核中可以用requset_module(module_name)或者request_module(“char-major-%d-%d”,MAJOR(dev),MINOR(dev));

2、内核驱动卸载模块(必须的)

static void _ _exit cleanup_function(void)

{

……………………………

}

module_exit(cleanup_function);

3、内核模块参数(可以选择的)

在这一点上要说清楚,我们可以在加载驱动的时候给我们的驱动传一些参数,这个参数可是单个的也可以说数组,具体的可以按照实际情况。

static char *student_name =”xmphoenix!”;

static int num=9;

module_param(num,int,S_IRUGO);

module_param(student_name,char *p,S_IRUGO);

这样在内核加载的时候就传进去了两个参数,如果你是在命令行加载该驱动的话,那么你可以在命令行后加入该参数的名称=xxx,类似的模式来加载你传入的参数

4、模块许可声明(必须的)

在这个部分由于Linux的版权的问题,你需要在你的驱动模块里面添加一些声明,其实这个模块什么很大的实际意义,对于的编程没有任何的影响,但是必须加上去

5、模块导出符号(可以选择的)

具体的什么意思,不是很清楚也没有用到过,但是估计就是把内核的符号表导出来,可以让其他的模块使用罢了

6、模块的声明与描述

在这个模块主要是描述你些的这个驱动的一些基本信息,版本…….等一系列的信息,具体的参见一般的说明书就可以。

驱动设计ARM(6410)-按键驱动0基础知识点相关推荐

  1. 领域驱动设计-什么是领域驱动设计和怎么使用它

    这篇文章讨论领域驱动设计(DDD),DDD是建立在面向对象分析设计上开发软件的一种方法. 通过这篇文章我们解释什么是领域驱动设计,在现代开发周期中如何实现,使用DDD的优点和缺点. 什么是领域 定义D ...

  2. 转行做美工设计有没有前途?0基础怎么学好美工设计?

    本文由:"学设计上兔课网"原创,图片素材来自网络,仅供学习分享 转行做美工设计有没有前途?0基础怎么学好美工设计?随着电商时代的快速发展,美工的前景越来与越被看好,因此导致很多人加 ...

  3. App 图标设计 - 圆角透明效果(0 基础使用 PS)

    App 图标设计 - 圆角透明效果(0 基础使用 PS) 方法: 如果你有些基础,就不必看图文教程了: 1.使用圆角矩形工具选中,设置圆角尺寸[例如:1024*1024 px(圆角:160 px)] ...

  4. Linux总线驱动设计(1)-总线设备驱动模型

    1.总线模型概述 随着技术的不断进步,系统的拓扑结构也越来越复杂,对热插拔,跨平台移植性的要求也越来越高,2.4内核已经难以满足这些需求.为适应这种形势的需要,从Linux 2.6内核开始提供了全新的 ...

  5. 4412驱动-sixth_drv 同步互斥按键驱动

    并发-信号量 阻塞与非阻塞 1. 原子操作 原子操作指的是在执行过程中不会被别的代码路径所中断的操作. 常用原子操作函数举例: atomic_t v = ATOMIC_INIT(0);     //定 ...

  6. 字符设备驱动笔记——中断方式按键驱动之linux异常处理结构(四)

    1.中断方式获取按键值单片机: 1)按键按下 2)cup发生中断,跳转到异常向量入口执行 3)b 函数a.保存被中断的现场b.执行中断处理函数c.恢复 linux: 1)trap_init()函数构造 ...

  7. 字符设备驱动笔记——中断方式按键驱动之linux中断处理结构(五)

    一.单片机下的中断处理1)分辨是哪一个中断2)调用处理函数3)清中断 二.linux下的中断处理1)/arch/arm/kernel/irq.c asmlinkage void __exception ...

  8. 零基础学ui设计教学教你从0基础建立设计规范

    从一开始的立项到现在落地上线,可以说是从零开始进行APP全部细节的梳理并且规定规范,这一路走过来还是能总结出很多心得,本文将分为3个部分,阐述如何从0到1建立设计规范. 目录: 一.如何确定内容,规范 ...

  9. swift3.0 基础知识点

    // //  ViewController.swift //  swift_01 // //  Created by weiphone on 16/8/26. //  Copyright © 2016 ...

  10. linux按键驱动设计(V3S开发板)

    1.前言 本文描述了基于全志V3S开发板的按键驱动程序和测试应用程序的设计流程. 本次设计系统内核是基于linux3.4. 2.设计流程概述 本次设计的步骤是: 步骤一.编写一个driver_butt ...

最新文章

  1. MySQL数据库备份命令
  2. 掘金小册Jenkins大纲准备
  3. Google Code Jam 2014 总结
  4. python的原则_python 类的使用原则
  5. Python-OpenCV 笔记5 -- 几何变换(Geometric Transformations)
  6. BroadcastReceive之ip拨号
  7. 手机网站开发相关介绍
  8. oracle11g临时表,oracle11G的临时表空间
  9. mysql根据外键多条件查询_MySQL练习-主外键多表查询
  10. storm中分组策略Field Grouping简单总结笔记
  11. 【数智化案例展】深农集团——守护深圳“菜篮子”,腾讯安全携手深农集团保供稳价格...
  12. java jad_Java反编译工具 jad安装及使用的指南
  13. Python Pandas库教程
  14. 通过CSS美化Web页面
  15. 记一次失败的 ThoughtWorks 面试经历
  16. 一篇文章入门Python
  17. 监督学习、无监督学习、半监督学习和强化学习
  18. 【51单片机】 ULN2003模块 驱动步进电机(5线)正反转 代码以及接线图(简单教学,一看就会)
  19. 【PicGo】解决picgo+github图床上传的各种问题
  20. CSS 学习成长笔记(1)

热门文章

  1. 通过JS制作一个简易数码时钟
  2. 【对讲机的那点事】维修对讲机你会拆卸电路板上的集成电路块吗?
  3. 一个正在被API驱动的互联网时代
  4. 入侵本地Mac OS X方针与技巧
  5. 技术支持诈骗手段翻新:借勒索软件类锁屏界面恐吓用户
  6. JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
  7. centos查找未挂载磁盘格式化并挂载
  8. 一种自动(半自动)学习的算法(验证码识别)
  9. 学以致用:让visualstudio爱上sublime
  10. poj 1511 Invitation Cards spfa比基础题难一些!!练练手挺好