linux
文章平均质量分 92
kevin@1024
少壮不努力,老了还得做IT.
展开
-
linux驱动最新面试题(面试题整理,含答案)
linux驱动面试题2018(面试题整理,含答案)版权声明:本文为博主原创文章,未经博主允许不得转载。转载请标明原址:https://blog.csdn.net/kai_zone/article/details/82021233 前言: 这篇文章主要是对linux驱动面试题一个整理跟总结,参考了很多网上的资料,基本涵盖linux驱动相关面试内容。我把他们大概的分为三部...原创 2018-09-06 08:09:46 · 51498 阅读 · 4 评论 -
Linux signal、sigaction的使用总结
一、什么是信号信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。比如kill、程序异常crash、段错误等。但它们还可以作为进程间通信或修改行为的一种方式,明确地由一个进程发送给另一个进程。一个信号的产生叫生成,接收到一个信号叫捕获。二、信号的种类信号的名称是在头文件signal.h中定义的,信号都以SIG开头,常用的信号并不多,常用的信号如下:更多的信号类型可在kernel目录下搜...原创 2021-11-04 22:38:26 · 1339 阅读 · 0 评论 -
汇编常用语句及实例
序言: 文章主要内容包括了一些基本汇编语句的含义和一些实例,通过这篇文章可以实现读懂和写出一般的汇编代码,有时候面试的时候用上,也会让面试官眼前一亮哟。1. 汇编的时候会把伪指令提换成如:nop 换成:mov r0, r02.流程图如下:程序如下:area RESET, code,rea...原创 2018-09-04 14:50:50 · 8818 阅读 · 1 评论 -
LCD屏参:手把手教你配置LCD屏参(proch值)
LCD屏参(proch值)解释和计算Linux内核的lcd控制器使用clcd_panel结构体表示一个LCD屏的硬件参数: /* include/linux/fb.h */ struct fb_videomode { const char *name; /* optional */ u32 refresh; /* optional */ u32 xres; ...原创 2018-05-16 19:06:04 · 28674 阅读 · 0 评论 -
SPI、I2C和UART三种串行总线协议的区别
SPI、I2C跟UART三种串行总线协议的区别:(如果想了解SPI和I2C更多详细内容,可看 SPI总线(一):基本原理篇,SPI总线(二):驱动分析篇,SPI总线(三):驱动实例,i2c总线(基本原理),普通IO模拟i2c总线,简单i2c设备驱动实例系列文章)第一个,区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);...转载 2016-11-23 11:25:17 · 21546 阅读 · 2 评论 -
linux系统组成及结构
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。1. linux内核 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Lin...原创 2018-05-24 22:29:17 · 48450 阅读 · 4 评论 -
安卓bootloader:三分钟让你彻底理解uboot的启动与功能
1. Bootloader简介 系统上电后,需要一段程序来进行初始化:关闭看门狗,改变系统时钟,初始化存储控制器,将更多的代码复制到内存中等。它就是bootloader。 bootloader的实现非常依赖具体硬件,在嵌入式系统中,硬件配置千差万别,即使是相同的CPU,它的外设(比如flash)也可能不同,所以不可能有一个bootloader支持所有的CPU,所...原创 2018-05-24 21:28:49 · 31988 阅读 · 2 评论 -
Linux下动态库的编译及使用示例
1、动态库的编译下面通过一个例子来介绍如何生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test_a.c、 test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。//so_test.h:#include "stdio.h"void test_a();void test_b();void test_c();...原创 2019-08-07 16:50:21 · 1656 阅读 · 0 评论 -
Camera结构原理
一.Camera的成像原理 景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了第一层“LENS” CAMERA的成像关键在于SENSOR,为...原创 2019-08-27 18:24:05 · 2631 阅读 · 0 评论 -
Linux 互斥机制
一、需要了解的概念知识概念1:临界区(1)维基百科对临界区的定义: 在同步的程序设计中,临界区段(Critical section)指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。 当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,...转载 2018-05-26 22:50:15 · 655 阅读 · 0 评论 -
linux进程管理
进程结构 进程在内核的源代码中以结构体表示,篇幅很长,在此列举一小段关键代码,可以发现是个双向链表,具体的可以在内核目录下找一个叫“sched.h”的头文件。 struct task_struct { struct task_struct *real_parent; /* real parent process */ struct task_st...转载 2018-05-26 20:58:19 · 547 阅读 · 0 评论 -
普通IO模拟i2c总线
相关文章: 一 . i2c总线协议 二. 普通IO模拟i2c总线 三. 简单i2c设备驱动实例 下面简单的单片机程序,理解之后会让你对I2c总线有更深的认识,思路1.向EEPROM中通过I2C总线写入一个字节2.通过I2C总线读出写入...原创 2017-09-19 10:52:48 · 4346 阅读 · 1 评论 -
i2c总线(基本原理)
相关文章: 一 . i2c总线协议 二. 普通IO模拟i2c总线 三. 简单i2c设备驱动实例 i2c总线协议1.I2C协议 2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(...原创 2017-09-19 10:15:17 · 7085 阅读 · 0 评论 -
SPI总线(一):基本原理篇
相关文章: SPI总线(二):驱动分析篇 SPI总线(三):驱动实例1、什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。2、SPI优点支持全双工通信通信简单数据...原创 2017-09-20 11:18:56 · 27829 阅读 · 2 评论 -
SPI总线(二):驱动分析篇
相关文章: SPI总线(一):基本原理篇 SPI总线(二):驱动分析篇 SPI总线(三):驱动实例1 Linux SPI驱动总体架构 linux内核中,SPI的驱动架构可以分为如下三个层次:SPI 核心层、SPI控制器驱动层和SPI设备驱动层。 L...原创 2017-09-20 15:22:50 · 4367 阅读 · 0 评论 -
SPI总线(三):驱动实例
相关文章: SPI总线(一):基本原理篇 SPI总线(二):驱动分析篇平台:firefly-rk3399详细配置参照:http://www.t-firefly.com/doc/product/info/id/92.html#SPI.E5.B7.A5.E4.BD.9C.E6.96.B9.E5.BC.8F/*...原创 2017-09-20 17:28:06 · 3022 阅读 · 1 评论 -
EXPORT_SYMBOL,extern关键字在linux中的使用
linux的“/proc/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:EXPORT_SYMBOL(符号名); EXPORT_SYMBOL_GPL(符号名) 导出的符号可以被其他模块使用,不过使用之前一定要声明一下。EXPORT_SYMBOL_GPL()只适用于包含GPL许可权的模块。代码演...原创 2017-09-21 10:57:54 · 2340 阅读 · 0 评论 -
简单i2c设备驱动实例
相关文章: 一 . i2c总线协议 二. 普通IO模拟i2c总线 三. 简单i2c设备驱动实例平台: msm8916OS:安卓5.1usb4604在设备上作用是切换设备为主从模式。 设备树文件如下: microchip@2d { compa...原创 2017-09-19 14:18:30 · 4452 阅读 · 0 评论 -
linux内核剖析-信号量
信号量什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能转载 2018-01-11 15:09:34 · 518 阅读 · 0 评论 -
linux设备驱动框架
一.Linux设备分类字符设备: 以字节为单位读写的设备。块设备 : 以块为单位(效率最高)读写的设备。网络设备 : 用于网络通讯设备。字符设备: 字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序 来实现这种特性。字符设备驱动程序通常至少要实现open、close、read和write的系统调 用。字符终端(/dev/console)和串口(...原创 2018-05-26 11:32:00 · 30475 阅读 · 5 评论 -
(安卓)linux常用驱动
Kernel: 3.10.49平台:RK3399要求:提供一个节点,可以控制GPIO的输出状态。下面代码实现了创建节点sys/class/dev_class/gpio1a7 当执行echo 0 > sys/class/dev_class/gpio1a7 GPIO1_A7 拉低当执行echo 1 > sys/class/dev_class/gpio1a原创 2017-09-05 16:22:35 · 628 阅读 · 0 评论