Linux设备驱动程序
江南3708
好好学习,天天向上。
展开
-
hello.ko---linux设备驱动程序
Hello World 模块#include #Include static int __init hello_init(void){printk("This is my first driver module-hello.ko\n");printk("Hello World\n");return 0;}static void __exit he原创 2017-11-20 15:44:20 · 344 阅读 · 0 评论 -
linux内核中的GPIO系统之(1):软件框架
一、前言作为一个工作多年的系统工程师,免不了做两件事情:培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生,一般在开始的时候总是分配一些非常简单的任务,例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO或者IO ports的章节都是比较简单的,非常适合刚入行的工程师。虽然GPIO子系统相关的硬件比较简单,没有复杂的协议,不过,对于软件抽象转载 2018-01-01 19:12:14 · 460 阅读 · 0 评论 -
linux内核中的GPIO系统之(2):pin control subsystem
一、前言在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况:(1)启动一个新的项目后,需要根据硬件平台的设定进行pin control相关的编码。例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态。此外,由于SOC的引脚是可以复用的,因此在各个具体的driver中,也可能会对引脚进行的配置。这些工作都是比较繁琐转载 2018-01-01 19:15:35 · 449 阅读 · 0 评论 -
Linux内核中的GPIO系统之(3):pin controller driver代码分析
一、前言对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括:(1)pin multiplexing。基于ARM core的嵌入式处理器一般会提转载 2018-01-01 19:17:52 · 580 阅读 · 0 评论 -
linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
1. 前言本站之前的三篇文章[1][2][3]介绍了pin controller(对应的pin controller subsystem)、gpio controller(对应的GPIO subsystem)有关的基本概念,包括pin multiplexing、pin configuration等等。本文将基于这些文章,单纯地从pin controller driver的角度(屏蔽掉p转载 2018-01-01 19:22:03 · 2313 阅读 · 1 评论 -
工作队列(workqueue) create_workqueue/schedule_work/queue_work
项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机。郁闷的是,运行时总报错“Scheduling while atomic”,网上搜了一下:"Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spinlock-p...转载 2019-03-22 18:36:01 · 2031 阅读 · 0 评论