自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(565)
  • 收藏
  • 关注

原创 第五章复习

for遍历循环和while无限循环中,使用continue不会影响else分支的执行。,与range()内置函数的逗号区分,都是包前不包后。序列的索引和切片操作都是通过。序列名[index]

2023-12-20 16:14:06 419

原创 JJJ:组合数据类型2

字典类型是根据一个信息查找到另一个信息的方式构成了’键值对‘,他表示索引用的键和对应的值构成的对应关系。字典中的元素是无序的,底层使用了hash:第一个添加到字典中的元素,在内存中不一定是第一个。键必须是不可变序列:字符串、整数、浮点、元组 可以作为键,列表不可以做为字典的键。只能存储不可变数据类型:可以存储字符串、整数、浮点数、元组,不能存储列表、字典。2、使用内置函数dict()创建字典。与列表、字典一样,式可变数据类型。3、使用映射函数创建字典。无序的、不重复的元素序列。与数学中集合的概念一致。

2023-12-19 17:32:18 895

原创 JJJ:组合数据类型1

列表、元组、集合、字典这四个又被称为Python中的组合数据类型。索引分为:正向递增索引、反向递减索引。每个值都对应一个整数的编号,叫做。一个用于存储多个值的连续空间。关注一下步长作为负数的情况。列表、元组、(有序序列)集合、字典(无序序列)访问序列元素的一种方法。可以用于所有的序列类型。

2023-12-17 11:27:30 925

原创 JJJ:python学习笔记2

range(n,m)函数,Python内置函数,产生一个[n,m)的整数序列,包含n不包含m。要同时满足多个条件:and。2、无限循环结构while。c中的switch加强版。1、遍历循环结构for。

2023-12-14 20:51:59 1025

原创 修改dump_stack打印级别方法

新增KERN_ERR。

2023-12-05 17:40:08 78

原创 JJJ:python学习笔记1

没有编译的过程源码和输入得到输出静态语言:编译型脚本语言:解释型又叫做胶水语言。

2023-11-15 23:52:23 454

原创 JJJ:PCI / PCIE 的一些术语和概念

2、非转发事务(Non-Forwarded Transactions):非转发事务是指从一个PCIe设备传输到直接连接在同一个根端点上的另一个PCIe设备的事务。1、转发事务(Forwarded Transactions):转发事务是指从一个PCIe设备传输到另一个PCIe设备的事务。在PCIe(Peripheral Component Interconnect Express)总线中,存在两种类型的事务:转发事务和非转发事务。非转发事务可以直接在根端点上进行处理,无需经过PCIe交换机或桥接器的转发。

2023-11-07 23:48:06 564

原创 JJJ:添加开机自启动项

然后回弹出一个新的窗口,把截图软件的快捷方式放里头。这样snipaste就能开机自启动了。发现没有snipaste可以设置。2、win + r, 输入。4、再次打开任务管理器的启动栏。右键已启用,可以禁用。

2023-10-01 11:11:55 192

原创 SE0、J、K 、Chirp J、Chirp K

设备在接收到Chirp J信号后,会回复主机发送Chirp K信号作为响应。设备的回复Chirp K信号表明设备能够正确地响应主机的存在,并表示设备已准备好进行进一步的通信和初始化。Chirp J信号的具体序列取决于USB协议和设备的规范,通常由几个J状态信号组成,以确保设备能够正确检测到主机的存在。在 K 状态下,数据线 D+ 保持在低电平(0V),而数据线 D- 保持在高电平(Vcc)。SE0、J、K 、Chirp J、Chirp K 是 USB 总线上常见的信号状态,用于表示不同的电平和信号类型。

2023-09-18 11:37:48 1324

原创 Linux usb子系统(二):USB设备驱动usb-skeleton.c

Linux usb子系统(二):USB设备驱动usb-skeleton.c

2023-08-28 16:09:11 162

原创 xHci-PCI驱动设计

xHci-PCI驱动设计

2023-08-26 15:50:01 257

原创 gic驱动

gic驱动

2023-08-17 22:34:24 156

原创 read、write等系统调用

用户态的read、write等系统调用,陷入内核态,会首先调用到 SyS_read、SyS_write函数。

2023-07-24 23:41:38 213

原创 关于might_sleep的一点说明---CONFIG_DEBUG_ATOMIC_SLEEP【转】

关于might_sleep的一点说明—CONFIG_DEBUG_ATOMIC_SLEEP【转】

2023-05-04 11:37:06 235 1

原创 LINUX内核网络数据包发送(一)

LINUX内核网络数据包发送(一)

2023-04-28 11:52:57 156

原创 Linux设备驱动程序 之 per-cpu变量

Linux设备驱动程序 之 per-cpu变量

2023-04-26 11:40:06 100

原创 JJJ-USB技术浅析

1

2023-04-25 09:55:56 92

原创 JJJ linux内核中常见的asmlinkage是什么?

gcc编译器在汇编过程中调用c语言函数时传递参数有两种方法:一种是通过堆栈,另一种是通过寄存器。缺省时采用寄存器,假如你要在你的汇编过程中调用c语言函数,并且想通过堆栈传递参数,你定义的c函数时要在函数前加上宏asmlinkage。,那么调用函数的时候参数不是通过栈传递,而是直接放到寄存器里,被调用函数直接从寄存器取参数。函数定义前加宏asmlinkage ,表示这些函数通过堆栈而不是通过寄存器传递参数。是关键字,是gcc的C语言扩展,regparm(0)表示不从寄存器传递参数。

2023-04-16 14:37:00 153

原创 JJJ-3 gic_of_init 和 imx_gpc_init

【代码】JJJ-3 gic_of_init 和 imx_gpc_init。

2023-04-16 11:05:59 2019

原创 for_each_matching_node的展开分析

for_each_of_allnodes_from(from, np) {// 从from开始遍历设备树节点,此循环会遍历所有设备树节点,但是一旦当前结点找到了匹配的matches,那就直接退出循环了。// 传入一个node设备树节点,让它与给定的一组的matches匹配,返回其中最合适的matches。Might be null at the end of the tree */ //返回兄弟结点。//有子节点优先返回子节点。//第一个自然是根结点。// 就是从from开始遍历设备树节点。

2023-04-14 01:48:08 593

原创 JJJ - linux reset framework

struct reset_controller_dev 类型。基于 “arch/arm/mach-imx/src.c”看reset_controller_register。关于ARRAY_SIZE这个宏,参考。在函数 imx_src_init中。

2023-04-12 01:39:07 243

原创 JJJ-2 init_IRQ

看 imx_init_revision_from_anatop。看 mxc_set_arch_type。看 mxc_set_cpu_type。看imx_gpc_check_dt。看imx6ul_init_irq。

2023-04-11 00:28:15 413

原创 JJJ-1 early_irq_init

先看看first_online_node,定义在include/linux/nodemask.h,为0。

2023-04-05 03:04:01 300

原创 JJJ-0 irq的2个初始化函数

内核启动初始化过程中,关于irq有这两个初始化函数。

2023-04-05 01:57:18 92

原创 JJJ-Linux file read

其中i_bdev是一个指向struct block_device的指针,而struct block_device嵌套在struct bdev_inode之内(可以通过struct block_device的地址得到外面struct bdev_inode的地址)。没有找到,从而调用page_cache_sync_readahead(对于read ahead被完全禁止的情况,ra->ra_pages=0,所以这个函数什么都不做直接返回),然后再调用find_get_page;

2023-04-03 11:17:15 346

原创 JJJ--linux irq

由start_kernel找到init_IRQ(arch/arm/kernel/irq.c),到irqchip_init(drivers/irqchip/irqchip.c),到of_irq_init(__irqchip_of_table) drivers/of/irq.c。没有no_map和Radix_Tree_map这两种方式(irq_domain_add_nomap 和 irq_domain_add_tree)

2023-03-27 00:58:08 6888

原创 file_operations结构体详细分析

file_operations结构体详细分析

2023-03-25 11:50:21 127

原创 可信 专业级科一

有快慢指针法:比如判断链表是否存在环,递增数组去除多于元素,去除数组中指定值的元素。需要考察首尾对应位置的,都可以用双指针。

2023-01-22 14:33:28 2290 2

原创 JJJ:grep合集

grep命令用法解析

2022-09-18 10:35:40 338

原创 JJJ:linux内核设计与实现 笔记

111

2022-07-21 00:16:54 490

原创 JJJ:linux网络子系统内核分析

linux网络子系统内核分析

2022-05-05 23:10:55 329

原创 JJJ:leetcode 刷题心得

2. 两数相加(中等)一开始是想用2个int或者long,甚至long long来存储两个链表中的数,然而均不能满足用例,就算是long long,也存在超范围的用例。因此只能使用加法,来一个一个对链表节点所表示的数值进行相加。在循环过程中,每对节点加起来得到的和之后,在进行创建新节点,来存放这个和。做到有需要的时候再创建节点,不需要的时候不创建节点。另外通过设置前后指针来达到两个目的:1、确定头节点。2、完成链表节点的链接关系,即前一个节点的next成员的赋值。另外创建新节点的条件:不仅仅是a链

2022-05-04 01:40:36 668

转载 JJJ: Netlink通信机制的基础概念

Netlink套接字是:实现 用户进程 与 内核进程通信 的一种进程间通信(IPC) ,也是 网络应用程序 与 内核 通信的最常用的接口。linux特有的一种特殊的 socket,目前在Linux 内核中使用netlink 进行应用与内核通信的应用很多。比如:路由 daemon(NETLINK_ROUTE)用户态 socket 协议(NETLINK_USERSOCK)netfilter 子系统(NETLINK_NETFILTER)内核事件向用户态通知(NETLINK_KOBJECT_UE

2022-05-03 15:18:39 157

原创 JJJ:linux内核传参、解析流程

文章目录1 module_param_cb1.1 待解析内容:1.2 涉及到的相关定义:1.3 涉及到的通用定义1.4 基于1.1的展开流程2 module_param3、推荐(详细的参数解析流程)1 module_param_cb1.1 待解析内容:// block/genhd.cmodule_param_cb(events_dfl_poll_msecs, &disk_events_dfl_poll_msecs_param_ops, &disk_events_d

2022-05-02 13:50:54 657

原创 JJJ:pd充电协议

PD充电协议介绍- 想要一统天下的USB-C sponsored

2022-04-08 21:20:01 362

原创 JJJ:dp & dp1.2 & dp1.4

dp接口:全称为DisplayPort。是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。该接口主要用于视频源与显示器等设备的连接。支持携带视频、音频、USB和其他形式的数据。dp1.2和dp1.4的区别输出的分辨率(分辨率越高,显示越清晰)传输带宽(传输速率)价格显示技术(dp1.4更先进)...

2022-04-08 20:54:46 993

原创 JJJ:printk_ratelimit() 函数

内核版本:2.6.38此函数的功能是:限制在一定时间间隔内的打印次数。printk_ratelimit()include/linux/printk.h#define printk_ratelimit() __printk_ratelimit(__func__)__printk_ratelimit(__func__)kernel/printk.c/* * printk rate limiting, lifted from the networking subsystem. * * Thi

2022-04-04 15:45:04 874

原创 2,python简单使用

在ubuntushell环境下,执行python3,进入python操作界面,如下图下面执行一些简单的数学操作:加减乘除分别是:+ - * /乘方是: **如下图:python也可以在一行支持更加复杂的数学运算。退出python环境,调用 exit() 或者 ctrl+d,如下图...

2022-04-03 23:08:19 608

原创 JJJ:配置ubuntu虚拟机网络

文章目录1、首先查看主机网络相关的信息2、设置虚拟机3、原配置1、首先查看主机网络相关的信息可以看到:ipv4的ip,子网掩码,网关。三个关键信息。下面在设置虚拟机网络的时候要参考这三条信息。2、设置虚拟机虚拟机 -> 设置 -> 网络适配器,选择桥接模式,如下图:我一开始选的nat模式,发现:主机ping虚拟机能通;虚拟机ping主机不通。选了桥接模式后发现:问题解决。虚拟机的ip所在的网段要和主机的网段保持一致。子网掩码和网关地址,均保证和1中主机相关信息一致。3、

2022-03-28 15:57:51 1522 1

原创 usbnet_probe

1、驱动流程: 2、明确probe函数的功能:probe有usb core 经枚举过程,匹配 id_table ,识别到驱动,并调用probe来初始化一些信息。如 dev->driver_info = info 只是取得注册时的一些信息,用于一些比较特殊的设备,如bind 与收发与普通的网卡不同时,增加或减少一些配置。主要做了: skb_queue_head_init (&dev->rxq);skb_queue_head_init (&dev->t

2022-01-21 16:37:55 534

空空如也

空空如也

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

TA关注的人

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