
linux
文章平均质量分 77
bobuddy
这个作者很懒,什么都没留下…
展开
-
Linux中的文件描述符(FD)
这种情形可能是在调用fork()后出现的(即,进程A、B是父子进程关系),或者当某进程通过UNIX域套接字将一个打开的文件描述符传递给另一个进程时,也会发生。系统为每一个进程维护了一个文件描述符表,该表的值都是从0开始的,所以在不同的进程中你会看到相同的文件描述符,这种情况下相同文件描述符有可能指向同一个文件,也有可能指向不同的文件。此外,进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(1976),换言之,指向同一个文件。转载 2024-11-26 14:32:43 · 1349 阅读 · 0 评论 -
src与inc
总的来说,标准库的src文件夹包含了函数的实现,而inc文件夹包含了函数的声明,让你的代码能够使用这些功能。这样的设计使得标准库的实现和使用分离开来,方便开发者在自己的代码中使用这些功能,而不需要了解标准库的底层实现细节。当你在自己的代码中需要使用标准库的功能时,你需要在代码中包含相应的头文件。src文件夹:这个文件夹通常包含标准库的源代码文件,即标准库函数的实现代码。这些源代码文件在编译时会被编译器链接到你的程序中,使你能够使用标准库提供的功能。inc是include的简称,src是source的简称。原创 2023-11-28 16:09:12 · 2237 阅读 · 0 评论 -
关于内核镜像文件vmlinux-vmlinuz-vmlinux.bin-zimage-bzimage-uImage 之间的差异
linux转载 2023-11-12 22:49:52 · 602 阅读 · 0 评论 -
I2C协议和驱动框架分析(三)
linux转载 2022-10-29 14:04:27 · 446 阅读 · 0 评论 -
I2C协议和驱动框架分析(二)
linux转载 2022-10-29 11:56:55 · 1682 阅读 · 0 评论 -
I2C协议和驱动框架分析(一)
linux转载 2022-10-29 11:36:57 · 790 阅读 · 0 评论 -
defconfig、 .config 、kconfig 与makefile和make menuconfig流程
linux转载 2022-08-29 17:37:53 · 2399 阅读 · 0 评论 -
Linux 驱动挂载顺序分析
linux转载 2022-06-09 09:56:30 · 2701 阅读 · 0 评论 -
Linux内核-menuconfig和kconfig和.config的关系
配置内核的时候,我们会先执行make xxx_defconfig,这个过程,其实就是从arch/arm/configs/下面把xxx_defconfig复制到 linux源码根目录下的.config(/kernel/msm-5.4)。然后你才能make menuconfig。menuconfig就是一个Linux下的软件,他只提供接口。当你执行make menuconfig的时候,首先,这家伙会先去各个目录下寻找Kconfig文件,并且解析Kconfig的格式导入到这个软件上作为菜单索引转载 2022-03-11 17:30:16 · 331 阅读 · 0 评论 -
linux 内核镜像格式
linux转载 2022-03-11 15:33:33 · 878 阅读 · 0 评论 -
linux 内核中断机制
linux转载 2022-03-09 12:01:18 · 724 阅读 · 0 评论 -
bootloader 与 uboot的区别
bootloader转载 2022-01-12 14:46:44 · 1082 阅读 · 0 评论 -
I2C时序波形图
对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置。今天,我们就随便聊聊这个I2C协议。I2C协议中最重要的一点是I2C地址。这个地址有7位和10位两种形式。7位能够表示127个地址,而在实际使用中基本上不会挂载如此多的设置,所以很多设备的地址都采用7位,所以本文接下来的说明都是基于此。I2C还有一个很重要的概念,就是“主—从”。对于从设备来说,它是啥都不干的,更不会自动发送数据;而主设备,则是起到控制作用,一切都是从它开始。除了GND以外转载 2022-01-07 11:32:37 · 22366 阅读 · 3 评论 -
深入学习Linux摄像头(一)v4l2应用编程
camera转载 2021-12-31 18:40:14 · 14472 阅读 · 0 评论 -
三星平台fimc驱动详解
camera转载 2021-12-31 17:43:49 · 851 阅读 · 0 评论 -
android camera V4L2 FIMC
camera转载 2021-12-30 15:50:30 · 552 阅读 · 0 评论 -
sysfs方式访问gpio
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入。文件IO方式操作GPIO,使用到了4个函数open、close、read、write。首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Dr.转载 2021-12-25 18:34:53 · 443 阅读 · 0 评论 -
bash与source等特点和区别
熟悉Linux的朋友常使用·bash·、·sh·、·source·、·.·,但却并非每位朋友都知道其中的区别1、source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无执行权限”注:该命令通常用命令“.”来替代。如:source .bash_profile. .bash_profile两者等效。source(或点)命令通常用于重新执行刚修改的初始化文档。source命令(从 C Shel...转载 2021-12-25 11:42:19 · 3785 阅读 · 0 评论 -
什么是交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系转载 2021-12-25 11:25:13 · 481 阅读 · 0 评论 -
linux 串口设备节点/dev/tty*
主要是:/dev/tty、/dev/ttyn、/dev/ttySn、/dev/ttyUSB*区别。1、/dev/tty 当前控制终端Terminal2、/dev/ttyn 和 /dev/console (虚拟)控制台终端3、/dev/ttySn(一般为/dev/ttyS0) 串行端口终端,接串口线使用的端口设备4、/dev...原创 2021-12-24 20:19:36 · 3265 阅读 · 0 评论 -
Android驱动开发:应用层读写GPIO
文用于简单总结近期调试应用层读写gpio。应用层操作gpio的主要思路:编写驱动->驱动编译进内核->创建设备节点,赋予读写权限->应用层以文件读写的方式对设备节点进行读写操作。需要修改的地方:1.内核设备树里面增加gpio节点/ { gpio_usb_otg_host { compatible = "qcom,usb_otg_host"; qcom,gpio_otg_host = <&msm_gpio 0 0>;...转载 2021-12-24 16:57:17 · 1697 阅读 · 0 评论 -
Linux 内核编译步骤及配置详解
linux 系统体系结构:linux kernel体系结构:arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RING0级别最高,这样linux用户代码运行在RING3下,内核运行在RING0,这样系统本身就得到了充分的保护用户空间(用户模式)转到内核空间(系统模式)方法:·系统调用·硬件中断linux kernel 体系结构:虚拟文件系统VFS:VFS(虚拟文件系统)隐藏各种文件系统的具体细节,为文件操作提供统一的接口二.Linux内核转载 2021-12-24 16:28:37 · 5623 阅读 · 0 评论 -
ubuntu16.04通过网络访问windows共享文件夹
SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通一. 从Ubuntu Desktop访问Windows下samba共享文件夹1. 安装sambawindows的共享文件夹貌似是用的 SMB 协议,所以先给ubuntu装上SMB:apt-get install smbapt-get install smbclient2. 修改配置装好之后,据说ubuntu默认的协议比较旧,连不上,所以改一下配置:sudo ge.转载 2021-12-24 15:54:27 · 864 阅读 · 0 评论 -
Linux内核驱动之GPIO子系统(一)GPIO的使用
一概述Linux内核中gpio是最简单,最常用的资源(和interrupt,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用的二内核中gpio的使用1测试gpio端口是否合法intgpio_is_valid(int...转载 2021-12-24 11:45:43 · 2895 阅读 · 0 评论 -
Linux GPIO的操作
linux内核提供了一套在用户态配置GPIO的接口,在/sys/class/gpio/目录下可以发现其中包含有两个文件export、unexport和若干gpiochipN类型文件夹。export :用于将指定编号的引脚导出,作为GPIO使用unexport :用于将导出的GPIO删除掉gpiochipN:当前芯片中包含的GPIO控制器GPIO使用方法添加设备接口GPIO167输入:echo 167 > export可以发现,目录下出现了gpio...转载 2021-12-24 11:26:23 · 3437 阅读 · 0 评论 -
linux下对/sys/class/gpio中的gpio的控制
在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式。首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers —> GPIO Support —> /sys/class/gpio/… (sysfs interface)。/sys/class/g...转载 2021-12-24 11:11:02 · 1873 阅读 · 0 评论 -
inux电源管理-Linux regulator framework概述
前言1. 什么是regulator?regulator翻译为"调节器",分为voltage regulator(电压调节器)和current(电流调节器)。一般电源管理芯片(Power Management IC)中会包含一个甚至多个regulator。2. regulator有什么作用?通常的作用是给电子设备供电。大多数regulator可以启用(enable)和禁用(disable)其输出,同时也可以控制其输出电压(voltage)和电流(current)。从上图可以看.转载 2021-12-16 20:19:37 · 997 阅读 · 0 评论 -
Linux驱动之 pinctrl和GPIO子系统
pinctrl 主要是用来进行pin脚的初始化2、Linux pinctrl 子系统提供的功能是什么 (1) 管理系统中所有可以控制的pin, 在系统初始化的时候,枚举所有可以控制的pin,并标识这些pin枚举所有可用的pin 脚 ,于是每个引脚就有的唯一的 ID (num) ,这个ID 很关键,对于以后的操作。 (2) 管理这些pin的复用(Multiplexing)。 对于SOC来说,其引脚除了配置成普通的GPIO之外,若干个引脚还可组成一个pin group,形成特定的功能。 (.转载 2021-12-13 17:42:49 · 4048 阅读 · 0 评论 -
Linux内核设备树DTS
DTS转载 2021-12-07 21:01:20 · 2284 阅读 · 0 评论 -
linux 查看主次设备号
linux原创 2021-12-06 16:17:28 · 4537 阅读 · 0 评论 -
make file 文件
make files (mk)转载 2021-12-01 17:03:16 · 448 阅读 · 0 评论 -
端口号--PID号--进程名互查
1.由端口号查询PID号首先myeclipse报错的时候会提示:“8009端口被占用”,那么你不得不依据此端口去查看该端口下运行的哪些进程使用命令来查看当前系统下所运行的所有端口情况: sudo netstat -antup注意:请在sudo的权限下查看,不然有部分的pid是查看不到的,我曾经就是因为没用使用root权限而绕了很多。2. 用PID查询端口号若你在知道进程PID的情况下,如何查看该PID的进程情况呢?使用命令:sudo netstat -antup|grep PID原创 2021-08-25 12:02:28 · 592 阅读 · 0 评论 -
PID 进程
Linux中的程序和进程,PID和PPID首先说下程序和进程:程序是一个静态的,就是磁盘中的一个文件。而进程是一个动态的程序执行后运行的状态(程序是被操作系统加载到内存中)就是一个进程。1.PID(process ID): PID是程序被操作系统加载到内存成为进程后动态分配的资源。 每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。2、PPID(parent process ID):PPID是程序的父进程号。3、PID和PPID都是非零的整数。原创 2021-08-25 11:06:11 · 6993 阅读 · 0 评论 -
linux source 命令
source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。注:该命令通常用命令".”来替代。使用范例:1、source filename2、. filename#(中间有空格)source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。source = ....原创 2021-08-21 17:40:42 · 180 阅读 · 0 评论 -
RAS 和 NDIS 拨号模式
1.RAS 是利用虚拟的调制解调器来拨号,是2G 3G时候使用的拨号方式.RAS是典型的拨号实现,需要利用Windows mobile的PPP协议栈实现连接配置和建立 rndis,Remote Network Driver Interface Specification,既是RemoteNDIS,既是远程网络驱动接口规范。基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。2.NDIS 是利用虚拟的网卡来拨号,..原创 2021-07-07 16:39:51 · 1990 阅读 · 0 评论 -
USB中CDC-ECM
USB中典型类及子类: 以前接触过UVC,今天接触了CDC-ECM原理上是一样的,定义一套标准协议主从机都遵守了就不需要额外的驱动程序。 简单翻译(其实用Google的多一些)一下usbcdc11的第3.8.2关于CDC-ECM的章节。3.8.2 Ethernet Networking Control Model 以太网控制模型是用在主从设备间的以太网帧数据的交换。通信类接口用于配置和管理以太网程序,程序中包含的“以太网控制模型”子类码是通信...转载 2021-07-07 14:15:52 · 951 阅读 · 0 评论 -
Linux-git使用
一、git的使用1.git简介如果你用Word写过毕业论文,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。更要命的是,转载 2021-07-01 14:24:37 · 952 阅读 · 0 评论 -
linux patch 命令小结
说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。实验的基本步骤。我打算是建立一个级联目录./x/xx/xxx/,在xxx目录下建立两个不同的文件xxx1,xxx2。然后在xxx目录下用diff命令,建立一个补丁文件xxx.patch,在xx目录下建立一个补丁文件xx.patch,在x目录下建立一个补丁文件x.pa.转载 2021-06-16 20:43:05 · 944 阅读 · 0 评论 -
linux patch 命令小结
说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。实验的基本步骤。我打算是建立一个级联目录./x/xx/xxx/,在xxx目录下建立两个不同的文件xxx1,xxx2。然后在xxx目录下用diff命令,建立一个补丁文件xxx.patch,在xx目录下建立一个补丁文件xx.patch,在x目录下建立一个补丁文件x.pa.转载 2021-06-16 16:44:10 · 941 阅读 · 0 评论 -
Linux-- rmdir 命令
前 言JRedu 今天我们来介绍第五个命令:rmdir。 命令英文原意:remove emptydirectories 命令用途: rmdir:删除空目录,非空的目录不能删除 本章内容将详细介绍Android事件的具体处理及常见事件。1命令格式rmdir[options]DIRECTORY2命令参数-p:递归删除,删除目录之前是否删除父目录,如果父目录为空的话就删除-v:删除目录时,显示删除信息--help:显示此帮...转载 2021-06-16 15:22:07 · 14153 阅读 · 0 评论