
Linux设备驱动程序第三版学习
zuijinzhao
这个作者很懒,什么都没留下…
展开
-
Cortex-A7 MPCore 简介与处理器运行模型
Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的,Cortex-A15 作为大核负责高性能运算,比如玩游戏啥的,Cortex-A7 负责普通应用,因为 Cortex-A7 省电。Cortex-A7 本身性能也不弱,不要看它叫做 Cortex-A7 但是它可是比 Cortex-A8 性能要强大,而且更省电。ARM 官网对于C...转载 2019-11-27 19:15:03 · 2687 阅读 · 0 评论 -
Linux设备驱动程序第三版学习(2)-字符设备驱动程序源码分析(续) .
前段时间一直在搞GPS导航系统的应用软件,最近告一段落,继续捡起linux设备驱动,啃之!上次记录了模块初始化代码的学习,今次看看卸载模块的代码。01.void scull_cleanup_module(void) 02. 03.{ 04. 05. int i; 06. 07. dev_t devno = MKDEV(scull_majo转载 2012-09-13 20:42:31 · 680 阅读 · 0 评论 -
Linux设备驱动程序第三版学习(5)- 高级字符驱动程序操作 - ioctl .
第六章:高级字符驱动程序操作这章有以下几个部分主要内容:1) 学习实现ioctl系统调用,它是用于设备控制的公共接口2) 掌握如何使进程休眠(并唤醒)3) poll/select4) 异步通知5) 定位设备6) 设备文件的访问控制以下为第1部分, ioctl的学习。定义(摘自百度百科): ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。转载 2012-09-13 20:54:30 · 515 阅读 · 0 评论 -
Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作(续1) - 进程休眠 .
第六章:高级字符驱动程序操作(续1)以下是第2部分:掌握如何使进程休眠(并唤醒)分为4个小的部分(都是通过分析源码的形式,必要时加以总结):1、进程休眠的细节2、进程唤醒的细节3、scullpipe中read的实现4、scullpipe中write的实现1、 进程休眠的细节 Linux内核中最简单的休眠方式就是称为wait_event的宏(以及它的几个变种转载 2012-09-14 16:29:09 · 696 阅读 · 0 评论 -
Linux设备驱动程序第三版学习(1)-字符设备驱动程序源码分析
一、insmod模块时调用module_init(scull_init_module),就来看一下这个函数: int scull_init_module(void)二、int scull_init_module(void) { int result, i; //声明两个整形变量 result,i dev_t dev = 0; //声明一个dev_t类型的对象dev,转载 2012-09-13 19:33:57 · 521 阅读 · 0 评论 -
Linux设备驱动程序第三版学习(3)- 调试 .
开始书中第四章的学习:调试技术。主要有三种调试方式:打印、查询和监视。一、说说打印方式: 1)主要使用printk这个内核方法来进行。 2)printk方法可以附加日志级别:KERN_EMERG、KERN_ALERT、KERN_CRIT、KERN_ERR、KERN_WARNINT、KERN_NOTICE、KERN_INFO、KERN_DEBUG。 默认的级别在我现在转载 2012-09-13 20:47:26 · 402 阅读 · 0 评论 -
Linux设备驱动程序第三版学习(4)- 并发和竟态 .
第五章学习:并发和竟态其实可以拿上“公共厕所”来做一个比喻,就是那种在大街上只有一个隔间的小型公厕。更容易理解并发、竟态和信号量。把“临界区”理解为“公共厕所”(临界区:在任意给定的时刻,代码只能被一个线程执行。/ 公共厕所:在任意给定的时刻,厕所只能被一个人使用。),“公共厕所”的来源是“并发”的(很多人可以一起去上厕所),假设A同学已经进去了,如果厕所什么标记都没有(没有信号量),那么转载 2012-09-13 20:49:01 · 439 阅读 · 0 评论 -
u-boot2012.04.01移植到mini2440
软件平台: Windows XP, Ubuntu硬件平台: mini2440软件: Source Insight、u-boot.2012.04.01 (官方下载源码)一、uboot 启动分析 1.set the cpu to SVC32 mode(start.S) 2.turn off the watchdog 3.mask all IRQs by setting al转载 2015-11-06 13:13:39 · 931 阅读 · 0 评论 -
uboot中的数据结构、内存分配
1.uboot中的数据结构u-boot的主要功能是用于引导OS的,但是本身也提供许多强大的功能,可以通过输入命令行来完成许多操作。所以它本身也是一个很完备的系统。u-boot的大部分操作都是围绕它自身的数据结构,这些数据结构是通用的,但是不同的板子初始化这些数据就不一样了。所以u-boot的通用代码是依赖于这些重要的数据结构的。这里说的数据结构其实就是一些全局变量。1)gd全...转载 2019-07-25 19:44:07 · 386 阅读 · 0 评论