自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 slab分配器

介绍slab分配器的一些概念与关联

2024-09-12 14:16:14 952

原创 insmod后发生了什么

内核模块加载过程

2024-08-22 20:02:22 332

原创 open 函数到底做了什么

当我们使用 open 函数,打开设备文件时,会根据该设备的文件的设备号找到相应的设备结构体,从而得到了操作该设备的方法。也就是说如果我们要添加一个新设备的话,我们需要提供一个设备号,一个设备结构体以及操作该设备的方法(file_operations 结构体)。

2024-05-06 21:24:53 1098

原创 set_task_state()底层原理

介绍set_task_state(),mb()以及内存屏障。

2024-03-28 14:54:30 609

原创 搭建linux2.6内核调试环境时,cpu自动跳转到asm volatile(“sti; hlt“ : : :“memory“)问题

调试的时候遇到了个错误,在GDB中的反应是,输入下面这句话后,会直接跳转到一句内敛会变得代码处,查看所属函数,为idle_task,该函数是cpu没有线程可以调度时自动触发的,但是我都还没打段点,他就直接跳转过来一直死循环了,查阅得知,cpu初始化过程中出现错误时也会跳转到此。2.在创建gdb的默认启动命令的地方,文章写入的 > /root/.gdbinit有待商榷,建议去看一下该文件的作用,再去自己撰写,可以通过cat来查看文件内容。错误已经很明显了,ttyS0端口连不上。

2024-03-23 19:21:19 354

原创 驱动程序中的copy_from_user

copy_from_user本质上也只是做了相关判断和校验,保证不会出现相关异常而已。

2024-03-21 19:48:50 563 1

原创 RCU(Read-Copy Update)原理

RCU(Read-Copy Update),顾名思义就是读-拷贝修改,是数据同步的一种方式,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。

2024-03-20 16:12:00 1471 1

原创 自旋锁(Spinlock)的底层实现原理

源码参考自鸿蒙内核 v26.08的自旋锁实现源码。

2024-03-20 15:28:07 1823 1

原创 linux中断模块

操作系统是中断驱动的,首先,操作系统是个死循环。其实,这个死循环本身做不了什么大事,仅仅是保证操作系统能够周而复始地运行下去,而运行的目的是为了等候某些事情发生。

2024-03-08 14:13:09 1836 1

原创 在兆易的板子上移植TOF400C-VL53L1X

在兆易的板子上移植TOF400C-VL53L1X

2024-03-06 23:49:28 750 1

原创 文件系统中的inode与文件描述符

inode用于描述文件存储相关信息,文件结构用于描述“文件打开”后,文件读写偏移量等信息。文件与 inode一一对应,一个文件仅有一个 inode,一个 inode 仅对应一个文件。一个文件可以被多次打开,因此一个inode 可以有多个文件结构,多个文件结构可以对应同一个 inode。

2024-03-02 16:47:20 1424

原创 MBR(Main Boot Record)及保护模式

在实模式里段中存储的是段基地址,而保护模式中的段基地址已经在段描述符中被描述,所以保护模式中的段中存放的是选择子,可以理解为是一个索引值,用此索引值在段描述符表中索引相应的段描述符,这样,便在段描述符中得到了内存段的起始地址和段界限值等相关信息。是告诉编译器以新的数字作为后面数据的地址的起始值,它本身没改变数据本身在文件中的地址(相对于文件开头的偏移),vstart 只是按照开发人员的意愿安排新的起始地址,不再以文件开头。(2)用户程序所引用的地址都是指向真实的物理地址,也就是说逻辑地址等于物理地址;

2023-12-29 14:00:02 882 1

原创 BIOS启动流程

按 DOS 1.0 要求的最小内存 32KB 来说,MBR 希望给其他程序尽可能多的预留空间,这样也是为了保护自己,免得过早被覆盖。MBR 本身只有 512 字节,但还要为其所用的栈分配点空间,所以其实际所用的内存空间要大于 512 字节,估计 1KB 内存够用了。如果此扇区末尾的两个字节分别是魔数 0x55 和 0xaa,BIOS 便认为此扇区中确实存在可执行的程序(即主引导记录MBR),便加载到物理地址 0x7c00,随后跳转到此地址,继续执行。在开机的一瞬间,即接电的一瞬间,CPU。

2023-12-27 13:38:24 506 1

原创 在用NEON处理输入数据时,剩余数据不足以填满一个NEON寄存器时的处理

在为Neon编码时,一个常见的情况是处理输入数据,该数据不是矢量寄存器中通道数的精确倍数

2023-12-07 16:25:14 465 1

原创 PDAF(相位对焦)

介绍了pdaf的原理、算法实现、分类、标定

2023-08-22 16:23:59 9155 3

原创 有关NEON并行加速优化的两个实例

本次neon优化针对两处循环重复性的工作进行并行加速处理

2023-06-02 14:58:12 3395

空空如也

空空如也

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

TA关注的人

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