嵌入式折腾了如此之久,今天终于有幸的点亮了第一个LED——故记录之

在Linux下,驱动可以分为三大类,字符设备,块设备,和网络接口。

这次完成LED驱动的就是的字符类设备(character device),对它的读写,就像普通文件一样,以字节为单位的进行读写。这样就可以通过Linux下的标准函数 open、close、read、write等这些来调用了。

Linux之于驱动,相当于一个插槽,驱动在linux下是*.ko的文件,可以通过insmod,和rmmod随意的加载和卸载。
当我们用insmo命令,加载一个模块的时候,我们可以通过

lsmod
或者
cat /proc/devices

来查看我们所加载的模块(module),会发现其名称后面的有数字,我们称之为主设备号。这是加载驱动后,系统给分配的版本号。

Linux下,得益于其强大的VFS设计,这样就有了 万物皆文件的性质。所以,我们的驱动所对应的设备,也是文件。
我们可以通过

mknod /dev/xxx c 111 0

这样一条命令创建一个节点(node)。
然后,我们就可以通过其提供的标准文件函数,来控制我们的设备了。

驱动基础知识就到这里了,后面讲详细的完成一个led驱动的设计

Linux驱动入门基础基础知识相关推荐

  1. Linux驱动入门(四)非阻塞方式实现按键驱动

    Linux驱动入门系列 Linux驱动入门(一)字符设备驱动基础 Linux驱动入门(二)操作硬件 Linux驱动入门(三)Led驱动 Linux驱动入门(四)非阻塞方式实现按键驱动 Linux驱动入 ...

  2. linux系统怎样写单片机程序,单片机知识是Linux驱动开发的基础之一以及如何学单片机...

    这是arm裸机1期加强版第1课第2.3节课程的wiki文字版. 为什么没前途也要学习单片机? 因为它是个很好的入口. 学习单片机可以让我们抛开复杂的软件结构,先掌握硬件操作,如:看原理图.芯片手册.写 ...

  3. Linux Capabilities 入门教程--基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  4. Linux新手入门之基础命令操作

    Linux新手入门 1.Linux基本介绍 1.1.简介 Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux 是一套免 ...

  5. Linux驱动设计——硬件基础

    Linux 驱动设计之硬件基础 0.开篇说明 本片内容主要来源于宋宝华老师<Linux设备驱动开发> 1.处理器 目前主流的通用处理器(GPP)多采用SoC(片上系统)的芯片设计方法,集成 ...

  6. 从单片机到ARM Linux驱动——Linux驱动入门篇

    大一到大二这段时间里学习过单片机的相关知识,对单片机有一定的认识和了解.如果要深究其原理可能还差了一些火候.知道如何编写程序来点量一个LED灯,改一改官方提供的例程来实现一些功能做一些小东西,对IIC ...

  7. Linux驱动入门篇(一):Hello, world

    学习Linux驱动有半年的时间了,但是临近毕业,由于各种事务的耽误,很多东西遗忘,现在写此博客以记录重新学习的历程. 首先,自然是从最简单的内核模块,Hello, world开始啦. 1 #inclu ...

  8. 【嵌入式Linux驱动入门】二、上手Hello驱动,了解驱动开发流程

      我们知道他们在说谎,他们也知道他们在说谎,他们知道我们知道他们在说谎,我们也知道他们知道我们知道他们在说谎,但是他们依然在说谎. 文章目录 一.Linux驱动分类 二.Linux驱动初探 三.He ...

  9. Linux驱动入门学习(三):I2C架构全面理解

    I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. ...

最新文章

  1. 五款漂亮的 GNOME 3.4 主题-PPA
  2. 将本地的MS SQL Server数据导入到远程服务器上
  3. linux shell 获取字符串最后一个字符 去掉字符串最后一个字符 去掉末尾一个字符 去掉末尾两个字符
  4. python3 队列 queue
  5. jQuery 事件
  6. java 包权限_Java基础(十二)之包和权限访问
  7. 秒杀多线程第三篇 原子操作 Interlocked系列函数
  8. [翻译]在 .NET Core 中的并发编程
  9. HDOJ1028-Ignatius and the Princess III(整数划分)
  10. .net 任务调度 mysql_C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件...
  11. 大数据的分析手段有哪几种
  12. python opencv人脸解锁_教你使用python+Opencv完成人脸解锁
  13. 本地测试微信公众号推送模板
  14. NXP与STM32单片机程序架构
  15. 数据库-表的定义与操作
  16. PHP实现时间轴函数(个性化时间)
  17. 369亿估值的AI市场下,中国AI学习者的野心与实力
  18. 【多模态】多模态特征融合策略——门控多模态融合方法
  19. Windows Postman中文版
  20. 2017年原生广告程序化购买将成为新趋势

热门文章

  1. mysql入门简历_MySQL(一)简介与入门
  2. oracle带输出参数存储,oracle带输入输出参数存储过程(包括sql分页功能)
  3. C语言学习之函数调用递归问题,有5个学生坐在一起,问第5个学生多少岁?
  4. html下拉框换行,HTML列表框换行文本
  5. linux 改用户组密码,Linux用户和组的操作(八) 修改用户密码 passwd
  6. c 将数字数组转成字符串_C+|用指针指向字符串字面量、字符数组及字符指针数组...
  7. 将IDEA工程代码提交到Github
  8. WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
  9. 在过滤器中设置一个应用范围内的路径
  10. 透明度百分比换算十六进制