腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
linux驱动个人学习
专栏作者
举报
698
文章
1311856
阅读量
179
订阅数
订阅专栏
申请加入专栏
全部文章
编程算法
linux
其他
kernel
android
缓存
内核
数据结构
内存
c++
node.js
单片机
打包
进程
arm
api
http
系统
存储
java
硬件开发
数据
tcp/ip
程序
host
c 语言
腾讯云测试服务
proc
函数
接口
ide
struct
usb
数据库
容器
编译
git
unix
网站
数据分析
core
driver
指针
shell
二叉树
系统架构
device
io
sys
性能
c#
xml
汇编语言
文件存储
网络安全
bit
cpu
init
磁盘
内存管理
调试
线程
javascript
sql
命令行工具
面向对象编程
gcc
任务调度
clock
max
操作系统
队列
对象
工具
管理
架构
配置
异常
主机
go
makefile
github
容器镜像服务
云函数
云推荐引擎
人工智能
electron
开源
flash
windows
https
nat
迁移
back
count
data
int
interface
monitor
panel
pid
set
state
task
工作
排序
前端
事件
统计
文件系统
硬件
ios
python
bash
css
html
嵌入式
access
jar
搜索引擎
消息队列 CMQ 版
检测工具
serverless
爬虫
opencv
udp
kvm
大数据
安全
kafka
sdk
action
add
buffer
byte
class
config
controller
display
dto
fifo
gpio
input
iso
ld
limit
lock
malloc
overlay
pixel
root
shared
spi
status
trace
video
变量
编码
定时器
服务
后端
基础
链表
连接
设计
实践
数组
索引
同步
效率
协议
优化
字符串
负载均衡
官方文档
php
actionscript
.net
scala
jquery ui
jquery
ajax
android studio
listview
composer
memcached
vba
ubuntu
bash 指令
solaris
深度学习
批量计算
访问管理
NAT 网关
SSL 证书
文字识别
视频处理
图像处理
数据备份
vr 视频解决方案
数据安全
游戏
分布式
黑客
jvm
ssh
正则表达式
gui
asp
ftp
jenkins
iis
socket编程
ntp
小程序
机器人
物联网
虚拟化
小程序·云开发
amp
app
arm64
assert
bat
block
bluetooth
bootloader
button
channel
char
children
default
detect
dp
dpi
dt
dynamic
elf
equals
error
expression
file
filter
google
gpt
header
i2c
include
instance
jni
libc
load
loading
local
ls
map
matplotlib
message
migrate
mips
mmap
module
mutex
output
parent
path
point
port
profile
provider
qemu
report
route
samsung
save
screen
selection
self
semaphore
stack
static
stderr
summary
super
swap
target
text
tools
transfer
translation
transparent
trim
txt
widget
width
x86
备份
编程
编译器
测试
程序设计
多线程
二进制
翻译
高性能
加密解密
监控
蓝牙
命令行
内存泄漏
日志
软件
软件架构
软件开发
手机
树莓派
算法
网络
芯片
虚拟机
压缩
异常处理
语法
源码
原型
状态机
嵌入式系统
搜索文章
搜索
搜索
关闭
CPU调速器schedutil原理分析
编程算法
如果我们的能源是无限制的,那可能也不需要做现在这样复杂的电源管理控制,尤其是在嵌入式设备如手机上,在追求极致性能的同时,还要追求续航时间,二者是一对相互约束的矛盾体,需要软硬件紧密配合以满足用户越发苛刻的性能和功耗的需求。
233333
2023-03-08
3.8K
0
加载内核模块-Unknown symbol错误分析
编程算法
打包
/proc/kallsyms会显示内核中所有的符号,但是这些符号不是都能被其他模块引用的(绝大多数都不能),能被导出的是符号的类型是大写的那些(例如T,U)。
233333
2023-03-08
2.6K
0
systemtap从入门到放弃(二)
编程算法
上一篇《systemtap从入门到放弃(一)》我们知道了什么是systemtap,以及如何书写简单的systemtap脚本。本篇承接上文,介绍systemtap的安装和简易场景应用,通过几个小例子掌握systemtap在内核开发调试中的简单使用。
233333
2023-01-05
944
0
systemtap从入门到放弃(一)
编程算法
打包
内核开发从业者,都知道一个代码调试"大杀器":printk !除此之外大家依据自己的习惯,还经常用一些诸如kdump这类的复杂工具。对于systemtap,有人可能熟悉有人可能没听过,本文从入门层次简介systemtap的原理和安装使用,分为两篇,本篇主要介绍原理和脚本语法。文章冗长,多处包含"劝退"功能,下面跟我一起"从入门到放弃" 吧 -_-
233333
2023-01-01
635
0
USB总线-Linux内核USB3.0设备控制器复合设备之legacy方式分析(八)
编程算法
在usb gadget configfs引入到内核之前,内核都使用硬编码的方式实现复合设备,无法在用户空间动态修改和绑定不同的function驱动,若要修改,则需要修改内核代码,重新编码,非常不方便。目前这部分代码在被放到drivers/usb/gadget/legacy/目录下。被编译成内核模块时,名称以g开头,如音频设备g_audio.ko、串口设备g_serial.ko、CDC设备及大容量存储设备g_multi.ko。USB gadget configfs和legacy相比只是实现复合设备的形式不同而已,设备的功能最终还是要通过function驱动实现。下面以音频复合设备为例,分析g_audio驱动的工作过程。
233333
2023-01-01
3.7K
0
USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析(七)
编程算法
kernel
数据结构
configfs是基于ram的文件系统,与sysfs的功能有所不同。sysfs是基于文件系统的kernel对象视图,虽然某些属性允许用户读写,但对象是在kernel中创建、注册、销毁,由kernel控制其生命周期。而configfs是一个基于文件系统的内核对象管理器(或称为config_items),config_items在用户空间通过mkdir显式的创建,使用rmdir销毁,在mkdir之后会出现对应的属性,可以在用户空间对这些属性进行读写,与sysfs不同的是,这些对象的生命周期完全由用户空间控制,kernel只需要响应用户空间的操作即可。configfs和sysfs两者可以共存,但不能相互取代。
233333
2023-01-01
9.4K
0
USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)
http
c 语言
单片机
编程算法
UDC驱动的接口都定义在drivers/usb/gadget/udc/core.c文件中。USB Function驱动通过调用这些接口匹配及访问USB设备控制器,而底层USB控制器驱动要实现这些接口定义的功能。下面分析一下主要的UDC驱动接口调用流程。
233333
2022-12-31
8.4K
0
USB总线-Linux内核USB3.0设备控制器之dwc3 gadget驱动初始化过程分析(五)
http
数据结构
编程算法
USB设备控制器(UDC)驱动的框图如下图所示,由三部分组成。第一部分是UDC驱动核心层,在drivers/usb/gadget/udc/core.c文件中实现,该层是一个兼容层,将USB Function驱动和具体的USB gadget驱动隔离开,抽象了统一的接口和数据结构,向USB Function驱动提供了统一且稳定的接口,同时完成USB Function驱动和USB gadget驱动的匹配。第二部分是gadget driver层,负责驱动硬件工作,和具体的USB设备控制器硬件相关,dwc3的gadget driver驱动在drivers/usb/dwc3/gadget.c文件中实现。第三部分是USB设备控制器硬件。
233333
2022-12-18
4.9K
0
USB总线-Linux内核USB3.0设备控制器驱动框架分析(四)
数据结构
api
c 语言
面向对象编程
编程算法
如下图所示,USB控制器可以呈现出两种不同的状态。USB控制器作为Host时,称为USB主机控制器,使用USB主机控制器驱动。USB控制器作为Device时,称为USB设备控制器,使用UDC(usb device controller)驱动。本节只分析USB控制器作为Device时的驱动框架。
233333
2022-12-13
9.3K
0
USB总线-Linux内核USB3.0控制器初始化代码分析(三)
数据结构
编程算法
RK33999使用synopsys dwc3的USB3.0控制器IP。早期的初始化需要在两个模块中进行,一个在rockchip官方提供的驱动中初始化,位于drivers/usb/dwc3/dwc3-rockchip.c文件中,主要初始化和CPU紧密相关的内容,如时钟、复位、电源、extcon(用于USB模式切换),另一个在synopsys提供的驱动中初始化,位于drivers/usb/dwc3/core.c文件中,这部分和USB3.0控制器密切相关,如USB3.0控制器内部寄存器地址、USB3.0的PHY、中断等。只有两个模块都初始化完毕,USB3.0控制器才能正常工作。本节只分析USB驱动早期初始化部分。
233333
2022-12-09
5.8K
0
HugePages(大内存页)实现完全解析
编程算法
在《一文读懂 HugePages的原理》一文中介绍了 HugePages(大内存页)的原理和使用,现在我们来分析一下 Linux 内核是怎么实现 HugePages 分配的。
233333
2022-10-30
456
0
一文读懂 HugePages(大内存页)的原理
编程算法
linux
在介绍 HugePages 之前,我们先来回顾一下 Linux 下 虚拟内存 与 物理内存 之间的关系。
233333
2022-10-30
447
0
CMake file命令参数GLOB和GLOB_RECURSE
打包
正则表达式
编程算法
WRITE选项将会写一条消息到名为filename的文件中。如果文件已经存在,该命令会覆盖已有的文件;如果文件不存在,它将创建该文件。
233333
2022-10-04
3.1K
0
linux usb端点
编程算法
bash
端点在实际的USB通讯过程种的具体作用与含义十分重要,但是有些难以理解,自己整理一些知识作为备忘。
233333
2022-10-04
9.8K
0
linux性能工具--ftrace框架
编程算法
kernel
Ringbuffer是trace32框架的一个基础,所有的trace原始数据都是通过Ring Buffer记录的,其主要有以下几个作用:
233333
2022-09-28
880
0
深入理解Android系统资源异常之文件描述符异常篇
javascript
编程算法
android
api
本文的目标是帮助大家深入理解Android系统资源异常之文件描述符异常,对于文件描述符异常的通用检测机制,当前包括fdtrack和fdsan两种机制展开剖析。
233333
2022-07-12
1.9K
0
BPF简介
编程算法
linux
ide
api
java
BPF,及伯克利包过滤器Berkeley Packet Filter,最初构想提出于 1992 年,其目的是为了提供一种过滤包的方法,并且要避免从内核空间到用户空间的无用的数据包复制行为。它最初是由从用户空间注入到内核的一个简单的字节码构成,它在那个位置利用一个校验器进行检查 —— 以避免内核崩溃或者安全问题 —— 并附着到一个套接字上,接着在每个接收到的包上运行。几年后它被移植到 Linux 上,并且应用于一小部分应用程序上(例如,tcpdump)。其简化的语言以及存在于内核中的即时编译器(JIT),使 BPF 成为一个性能卓越的工具。
233333
2022-05-10
1.4K
0
文件系统预读
编程算法
缓存
所谓预读,是指文件系统为应用程序一次读出比预期更多的文件内容并缓存在page cache中,这样下一次读请求到来时部分页面直接从page cache读取即可。当然,这个细节对应用程序透明,应用程序可能的感觉唯一就是下次读的速度会更快,当然这是好事。
233333
2022-05-10
748
0
perf火炬图
数据结构
编程算法
让我们从 perf 命令(performance 的缩写)讲起, 它是 Linux 系统原生提供的性能分析工具, 会返回 CPU 正在执行的函数名以及调用栈(stack)
233333
2022-05-10
616
0
CPU 绑定
编程算法
缓存
现在大家使用的基本上都是多核cpu,一般是4核的。平时应用程序在运行时都是由操作系统管理的。操作系统对应用进程进行调度,使其在不同的核上轮番运行。
233333
2022-05-10
1.2K
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档