自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(431)
  • 资源 (35)
  • 收藏
  • 关注

原创 一些好用的工具

1. Linux各个版本在线查看Linux source code (v5.16) - Bootlin

2022-01-14 14:41:03 466

原创 Linux kernel框架分析目录

Linux框架分析目录

2022-01-09 11:58:07 829

原创 Linux内核4.14版本——ccf时钟子系统(7)——如何编写一个clock驱动

定义分配一个 struct clk_onecell_data 结构体,里面是该硬件支持的所有的struct clk的集合。后面供 of_clk_add_provider使用。该结构体里面有struct clk_ops,和Fixed rategateDividerMuxcomposite六类时钟有关系,适配就行。(1)

2024-11-30 15:30:55 712

原创 Linux内核4.14版本——ccf时钟子系统(6)——DTS相关的API

再回到第2章DTS相关的介绍,clock driver使用一个DTS node描述一个clock provider,而clock consumer则会使用类似“clocks = , ;”的形式引用,clock framework会自行把这些抽象的数字转换成实际的struct clk结构,怎么做的呢?肯定离不开clock provider的帮助。

2024-11-30 15:28:24 963

原创 Linux内核4.14版本——ccf时钟子系统(5)——通用API

clk_core_prepare 函数用于准备时钟源。,由clk_get、devm_clk_get、clk_get_sys、of_clk_get、of_clk_get_by_name、of_clk_get_from_provider等接口负责实现,这里以clk_get为例,分析其实现过程(位于drivers/clk/clkdev.c中)。最终调用__of_clk_get-->__of_clk_get_from_provider,__of_clk_get_from_provider函数我们后面介绍。

2024-11-30 15:05:46 738

原创 Linux内核4.14版本——ccf时钟子系统(4)——各类时钟的注册API

从前文中我们知道,ccf根据不同时钟的特点,clock framework 将 clock 分为六类,Linux 内核将上面六类设备特点抽象出不同的结构图,我们看一下这些类的注册函数。结合上文介绍的API接口,和这些接口在kernel中的调用关系,得到如下的函数调用关系图。从图上看,clk_register是所有register接口的共同实现,负责将clock注册到kernel,并返回代表该clock的struct clk指针。

2024-11-30 14:55:59 1002

原创 Linux内核4.14版本——ccf时钟子系统(3)——ccf一些核心结构体

在后续的clk_set_rate接口中,会再次使用该flag,如果置位,则会在设置rate时,传递到parent clock,因此parent clock的rate可能会重设。(2)strutc clk_hw包含一个重要的结构体成员const struct clk_init_data *init,里面包含了注册进入内核的时钟的具体操作方法,struct clk_init_data 包含一个重要成员clk_ops,里面就是时钟设备的具体操作方法函数。,判断clock是否已经prepared。

2024-11-30 14:49:11 887

原创 Linux内核4.14版本——ccf时钟子系统(2)——DTS配置

上文已经介绍了一些provider和consumer的DTS,本文具体介绍一下。

2024-11-30 14:43:13 921

原创 Linux内核4.14版本——ccf时钟子系统(1)——简介

(3) clk_get_rate/clk_set_rate/clk_round_rate,clock频率的获取和设置,其中clk_set_rate可能会不成功(例如没有对应的分频比),此时会返回错误。那么问题来了,clocks关键字中,样式的字段是怎么来的?(5) of_clk_get、of_clk_get_by_name、of_clk_get_from_provider,device tree相关的接口,直接从相应的DTS node中,以index、name等为索引,获取clock.

2024-11-30 14:29:27 1153

原创 Linux 4.14 —— 内核定时器hrtimer的使用

hrtimer

2024-04-24 09:40:21 915

原创 Linux内核4.14版本——drm框架分析(16)——drm_atomic_commit之atomic_commit

drm

2024-03-12 14:38:43 1982

原创 Linux内核4.14版本——drm框架分析(15)——drm_atomic_commit之drm_atomic_check_only

drm

2024-03-12 14:38:26 1352

原创 GD25LQ256D后16M访问问题

测试发现,GD25LQ256D 在使用GD25LQ256D的时候发现,使用B7指令将flash切换到4字节地址后,如果访问的区间跨过了16M的界限,则读到的数据还是前16M的。0xC8,0x1A,0x61,0xD9都是对的,但0xff,0xff,0xff,0xff却是存储在0x00000000地址内的数据,如图1.如果直接访问后16M地址,则结果是正常的,如图2所示。GD25LQ256D,GD25LQ256C就是这样的设计,16M循环。GD25LQ256E不是。

2024-01-02 11:13:37 578

原创 Linux内核4.14版本——drm框架分析(13)——DRM_IOCTL_MODE_SETPLANE(drm_mode_setplane)

drm

2023-09-13 16:55:40 1083

原创 Linux内核4.14版本——drm框架分析(12)——DRM_IOCTL_MODE_SETCRTC(drm_mode_setcrtc)

drm

2023-09-13 16:55:20 1733 1

原创 Linux内核4.14版本——drm框架分析(14)——Atomic KMS 架构(struct drm_atomic_state)

drm

2023-09-13 16:53:55 1478

原创 Linux内核4.14版本——drm框架分析(11)——DRM_IOCTL_MODE_ADDFB2(drm_mode_addfb2)

书接上回,使用drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, &create)接口创建了一块内存放在了gem cma的对象里。gem obj创建之后需要与一块drm_framebuffer进行绑定使用,因为最终刷图使用的是fb。使用下面接口会创建drm_framebuffer并与上节创建的gem obj进行绑定。目前使用较多的就是drm_mode_addfb2接口,该接口完成了下面的功能。

2023-09-13 16:50:58 1201

原创 Linux内核4.14版本——drm框架分析(10)——DRM_IOCTL_MODE_CREATE_DUMB(drm_mode_create_dumb_ioctl)

drm

2023-09-13 16:47:46 929

原创 Linux内核4.14版本——drm框架分析(9)——DRM_IOCTL_MODE_GETCONNECTOR(drm_mode_getconnector)

drm

2023-06-20 10:53:42 2769

原创 Linux内核4.14版本——drm框架分析(8)——DRM_IOCTL_MODE_GETRESOURCES(drm_mode_getresources)

drm

2023-06-20 10:45:10 749

原创 Linux内核4.14版本——drm框架分析(7)——用户态和内核态间的交互

drm框架

2023-06-20 10:34:16 1400

原创 Linux内核4.14版本——drm框架分析(6)——实例注册drm device/ encoder/crtc/plane/connector等

drm框架

2023-06-08 14:12:51 1669

原创 Linux内核4.14版本——drm框架分析(5)——plane分析

drm框架分析 plane

2023-03-04 19:33:38 2274

原创 Linux内核4.14版本——drm框架分析(4)——crtc分析

drm框架分析 crtc分析

2023-03-04 19:00:59 3437

原创 Linux内核4.14版本——drm框架分析(3)——encoder分析

drm框架 encoder分析

2023-03-04 18:34:19 1759

原创 Linux内核4.14版本——drm框架分析(2)——connector分析

drm connector分析

2023-03-04 17:47:58 3131

原创 Linux内核4.14版本——drm框架分析(1)——drm简介

drm框架分析

2023-03-03 20:49:13 7681

转载 Linux图形显示系统之DRM

drm简介

2023-02-27 15:13:18 3458 1

原创 Linux内核4.14版本——alsa框架分析(18)——app调用分析

Linux内核4.14版本——alsa框架app调用分析

2022-11-09 15:50:50 528

原创 Linux内核4.14版本——I2C子系统(5)_I2C死锁相关

I2C死锁的Linux分析

2022-11-09 15:10:45 1608 1

原创 Linux内核4.14版本——I2C子系统(4)_I2C示例(i2c-designware-platdrv.c和at24.c)

i2c-designware-platdrv.c简单分析

2022-11-09 14:54:48 1644 2

原创 Linux内核4.14版本——I2C子系统(3)_I2C device (consumer)

I2C 框架分析

2022-11-09 14:51:14 787

原创 Linux内核4.14版本——I2C子系统(2)_I2C control (provider)

I2C框架分析

2022-11-09 14:44:37 965 1

原创 alsa-lib和alsa-utils移植

alsa-lib和alsa-utils编译

2022-09-02 10:31:57 2325 1

原创 Linux内核4.14版本——alsa框架分析阅读顺序

alsa框架分析阅读顺序

2022-07-11 09:34:16 2027

原创 Linux内核4.14版本——alsa框架分析(19)——DAPM(10)——dapm事件机制(dapm event)

前面的六篇文章,我们已经讨论了dapm关于动态电源管理的有关知识,包括widget的创建和初始化,widget之间的连接以及widget的上下电顺序等等。本章我们准备讨论dapm框架中的另一个机制:事件机制。通过dapm事件机制,widget可以对它所关心的dapm事件做出反应,这种机制对于扩充widget的能力非常有用,例如,对于那些位于codec之外的widget,好像喇叭功放、外部的前置放大器等等,由于不是使用codec内部的寄存器进行电源控制,我们就必须利用dapm的事件机制,获得相应的......

2022-07-10 18:38:10 1060

原创 Linux内核4.14版本——alsa框架分析(18)——DAPM(9)——精髓所在,牵一发而动全身

设计dapm的主要目的之一,就是希望声卡上的各种部件的电源按需分配,需要的就上电,不需要的就下电,使得整个音频系统总是处于最小的耗电状态,最主要的就是,这一切对用户空间的应用程序是透明的,也就是说,用户空间的应用程序无需关心那个部件何时需要电源,它只要按需要设定好音频路径,播放音频数据,暂停或停止,dapm框架会根据音频路径,完美地对各种部件的电源进行控制,而且精确地按某种顺序进行,防止上下电过程中产生不必要的pop-pop声。这就是本章我们需要讨论的内容。统计widget连接至端点widg......

2022-07-10 18:34:10 1044

原创 Linux内核4.14版本——alsa框架分析(17)——DAPM(8)——DAPM的使用过程

DAPM的使用过程

2022-07-10 18:26:19 914

原创 Linux内核4.14版本——alsa框架分析(16)——DAPM(7)——图解kconrtol/widget/route/path构造过程

图解kconrtol/widget/route/path构造过程

2022-07-10 18:15:56 842

原创 Linux内核4.14版本——alsa框架分析(15)——DAPM(6)——建立widget之间的连接关系

目录1. 创建widget:snd_soc_dapm_new_controls2. 为widget建立dapm kcontrol2.1 snd_soc_dapm_new_widgets函数 2.2 dapm mixer kcontrol2.3 dapm mux kcontrol2.4 dapm pga kcontrol2.5 dapm_create_or_share_mixmux_kcontrol函数3. 为widget建立连接关系 前面我们主要着重于codec、platform、machi

2022-07-10 18:05:16 1047

【控制位】M1卡控制字算法程序.zip

【控制位】M1卡控制字算法程序

2021-01-27

Mifare.zip

MIFARE Classic 1K、MIFARE Classic 4K、M0、M1、M3、S50、S70卡片协议

2021-01-19

ISO14443A_中国金融集成电路(IC)卡非接触式规范.doc

ISO14443A_中国金融集成电路(IC)卡非接触式规范

2020-12-22

eMMC协议官方文档

eMMC 内部是把NAND Flash芯片 、Device Controller芯片封装在一块。Flash控制器负责管理内存,并且提供标准接口,使得EMMC能够自动调整主机与从机的工作方式,没有位数限制,不需要处理其他繁杂的NAND Flash兼容性和管理问题,同时,控制器是其卡的应用和多媒体总线之间的联系介质,它能在应用程序总线和标准多媒体总线之前完成协议转换。他的通信基于先进的10个信号总线,通信协议被定义为这个标准的一部分,简称多媒体模式。

2020-12-07

x264-snapshot-20060707-2245.tar.bz2

x264源码x264-snapshot-20060707-2245.ta

2020-08-09

RTSP协议中文版_111.zip

RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。

2020-05-27

ZigBee协议栈说明书(中文版).pdf

ZigBee

2017-05-26

Java核心技术卷1_有目录.pdf

Java核心技术卷1_有目录.pdf 还有卷1

2017-05-25

Java核心技术卷2_有目录.pdf

Java核心技术卷2_有目录.pdf 还有卷一

2017-05-25

Android底层开发技术实战详解.pdf

Android底层开发技术实战详解.pdf

2017-05-23

Android深度探索 卷2 系统应用源代码分析与ROM定制_李宁.pdf

有目录哦

2017-05-23

Android底层驱动分析和移植_高金昌.pdf

有目录哦

2017-05-23

深入理解Android_卷3_张大伟.pdf

有目录

2017-05-23

Android系统源代码情景分析_罗升阳.pdf

有目录

2017-05-23

深入理解Android内核设计思想.pdf

深入理解Android内核设计思想.pdf

2017-05-23

Android深度探索 卷1 HAL与驱动开发_李宁.pdf

Android深度探索 卷1 HAL与驱动开发_李宁.pdf

2017-05-22

疯狂Android讲义 第3版有目录.pdf

疯狂Android讲义 第3版有目录.pdf

2017-05-22

Java编程思想 第4版有目录.pdf

Java编程思想 第4版有目录.pdf

2017-05-22

Android深度探索 卷2 系统应用源代码分析与ROM定制_李宁.part1

共5部分,有目录

2017-04-22

Android深度探索 卷1 HAL与驱动开发_李宁.part1

共4部分

2017-04-22

深入理解Android_卷2_邓凡平.pdf

卷I、II、III都有哦

2017-04-22

Android框架揭秘_李白.pdf

2017-04-22

Android框架揭秘.pdf

2017-04-19

深入理解Android_卷1_邓凡平.pdf 有目录

深入理解Android_卷1_邓凡平.pdf 有目录,,,

2017-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除