logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux Kthread的使用示例

在Linux内核中,kthread(内核线程)用于创建运行在内核空间的后台线程,常用于驱动开发中执行异步任务(如轮询设备状态、数据处理等)。

#驱动开发
Linux IIO ADC 驱动简介

本文详细介绍了Linux IIO框架下ADC驱动开发的完整流程。主要内容包括:1)IIO设备核心结构iio_dev的初始化和私有数据管理;2)通道定义iio_chan_spec的配置方法;3)关键操作函数集iio_info的实现;4)触发缓冲模式的实现机制;5)设备树绑定规范;6)高级特性如DMA支持、并发控制等注意事项。文章通过代码示例详细解析了ADC驱动从硬件操作到内核接口的完整实现路径,为开

#linux
linux kernel CONFIG_KCMP解析

Linux内核5.12+新增的CONFIG_KCMP选项用于独立启用kcmp()系统调用,允许用户态安全比对两个进程是否共享内核资源(如文件描述符、内存等)。该功能主要服务于容器热迁移、调试和安全审计场景,通过比较内核对象地址判断资源共享情况。系统调用需PTRACE权限,支持7种资源比对类型。5.12版本前该功能依赖CONFIG_CHECKPOINT_RESTORE,现作为独立选项存在。主流发行版

#linux#运维#服务器
SVN 分支管理最佳实践 & SVN 与 Git 命令对照表

本文系统介绍了SVN分支管理的最佳实践以及与Git的对比。主要内容包括:1. SVN标准目录结构(trunk/branches/tags)及其职责,推荐采用模块化布局;2. 分支策略(特性分支、缺陷修复分支、发布分支等)和生命周期管理(创建、同步、合并、删除);3. 合并关键技巧(自动跟踪、版本范围控制、反向合并、预演验证);4. 标签管理规范(只读原则、命名规则、流片必打tag);5. 芯片设计

#svn#git
UART 协议与 YMODEM 协议解析

摘要: UART是一种异步串行通信协议,采用起始位+数据位(LSB先发)+停止位结构,通过约定波特率实现数据传输,支持全双工通信,常用配置如"1152008N1"。YMODEM是构建在UART之上的文件传输协议,专为嵌入式固件升级设计,通过CRC校验、序号确认和ACK/NAK重传机制保障可靠性。其传输流程分为起始帧(携带文件名/大小)、数据帧(128/1024字节分包)和结束帧

芯片设计与验证团队偏好 SVN 而非 Git 的原因

摘要: 芯片行业偏好SVN而非Git的主要原因在于项目特性与工具设计的匹配度。芯片设计涉及大量二进制大文件(如GDSII、IP核等),Git处理这类文件效率低且仓库易膨胀;SVN支持部分检出和文件锁定,更适合模块化协作与不可合并文件的管理。此外,SVN集中式架构和目录级权限更符合芯片企业严格的IP安全管控需求,线性版本号也更利于流片追溯。尽管Git在RTL代码管理中逐渐应用,但混合方案(Git+S

SV中关联数组(Associative Array)的用法

SystemVerilog中的关联数组是一种灵活的数据结构,支持任意类型作为键(如整数、字符串或类句柄)来存储键值对。它只分配实际使用的内存,适合稀疏存储和字典应用。关键特性包括动态增长、内置方法(exists/delete/num等)和高效内存管理。与定宽/动态数组不同,关联数组无需预定义大小,且遍历顺序不确定。典型应用包括学生成绩管理、稀疏内存模型和对象属性追踪。使用时需注意读取未定义键返回默

SV主要关键词详解

SystemVerilog关键词分类详解(150字摘要) 本文系统分类解析SystemVerilog核心关键词,涵盖7大功能模块:1.基础数据类型(logic/bit等12种);2.硬件结构描述(module/interface等5类);3.过程控制(always_comb/always_ff等6种);4.并发编程(fork-join三态);5.面向对象(class/virtual等8个);6.随

#fpga开发
基于4.14 kernel ARM V7 单核cpu swi功能的验证方法

本文详细介绍了ARMv7单核CPU在Linux4.14内核下验证SWI(软件中断)功能的方案。验证目标包括系统调用触发、参数传递、异常处理等核心功能。提供了三种互补验证方法:用户空间系统调用测试、内核空间SWI处理跟踪和动态调试分析。方案涵盖硬件环境搭建(ARMv7开发板)、软件工具配置(gcc工具链、内核调试选项)以及具体测试步骤。关键验证点包括SWI入口正确性、系统调用号传递、参数处理和异常响

#arm开发
MAIR_EL1 简介

摘要:MAIR_EL1是ARMv8架构的关键内存管理寄存器,采用索引机制高效定义内存属性。该64位寄存器划分为8个8位字段(Attr0-7),通过页表项的AttrIndx(4:2位)选择对应属性。支持设备内存(0b0000dd00)和普通内存(0booooiiii)两类编码,前者控制外设访问行为,后者定义缓存策略。Linux内核预定义了典型配置,如MT_DEVICE_nGnRnE(0x00)和MT

    共 16 条
  • 1
  • 2
  • 请选择