自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于中断线程和内核线程抢占自旋锁的情况

如果所有中断都集中在一个核心上处理(例如,所有外设中断都发送到核心 0),那么该核心上的 ISR 执行可能会长时间占用该核心的 CPU,导致该核心的其他任务(比如用户线程)无法执行。现象,具体解释为中断线程具有更高优先级,会抢占内核线程1执行,那么在中断线程2里永远无法获得自旋锁(因为已经锁被线程1占用了)。2、第二种方法,将线程一绑定在其他核上,比如核2,核1被中断占用不会影响核2上线程1的调度,等线程一释放完自旋锁后,中断获取到自旋锁继续执行。分析这两种情况,会带来哪些问题,怎么进行改进。

2025-04-03 11:45:07 110

原创 schedule()

如果没有一个运行任务,则进行负载均衡,选择下一个任务的调度方法一般是根据剩余的时间片counter和优先权priority来选择。禁用抢占 → 获取调度队列 → 任务状态更新 → 选择下一个任务 → 上下文切换 → 恢复调度状态。更新当前任务的状态,确保任务的调度状态正确。主要用来关闭抢占,防止在调度过程中被中断或抢占,确保调度逻辑的。从当前 CPU 的调度队列中选择下一个可运行任务。重新获取内核锁、恢复抢占、检查是否有新的调度请求。将任务移出可调度队列。如果没有任务切换,则释放调度队列锁。

2025-03-23 22:07:30 380

原创 处理器相关寄存器和出入栈规则(异常中断&函数跳转)

几年前学习异常中断和函数跳转的汇编的时候可能是一起学的,记忆模糊了。导致前几天有人问我函数跳转时,我把异常中断的情况答出来了,说明基础知识如果工作中用不到,还是得自己常常温习。2.将PC-4写入LR寄存器(为什么存PC-4参考ARM3级流水线,其实PC现在是PC+8的位置)4.将中断标志位置1,即禁止中断,防止中断嵌套;1、先把局部变量和指针参数保存到R0-R7,如果参数数量超过八个则超出的部分会被压入栈中。1.将LR寄存器的值-4或者-8存入PC。7、PC=LR 开始执行跳转前的下一条指令。

2025-03-23 11:49:46 292

原创 dma_alloc 和普通的kmalloc有什么区别?

今天被面试官问住了,他说在 Linux 设备驱动中,和普通的内存分配(如。

2025-03-06 23:01:22 145

原创 PCIe 设备端驱动详解(dma buffer映射)

最后我想直接使用bar映射后的空间开辟dma buffer应该也是可行的,这样减少了配置ATMU寄存器的步骤,但是要注意:1、内存对齐:DMA 操作通常要求内存是对齐的,因此你需要确保所分配的内存区域满足设备的对齐要求。另外,许多PowerPC处理器使用ATMU寄存器进行存储器域到PCI总线域,以及PCI总线域到存储器域的地址映射。PCIe HOST主桥是一个很特别的桥片,其主要功能是隔离存储器系统的存储器域和处理器系统的PCI总线域,管理PCI总线域,并完成处理器与PCI设备间的数据交换。

2025-02-24 22:10:27 450

空空如也

空空如也

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

TA关注的人

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