Heng30的博客
搜索 分类 关于 订阅

如何使用Zig编译器来构建C语言项目?

最近在学Zig,发现它是一门很不错的语言,有很多现代语言的特性。而且能够和C语言很好的融合。zig编译器也是一个很好的C语言编译器,能够很好的组织项目,无论是纯C语言项目...

在Linux驱动中如何获取platform_device的资源?

struct platform_device是用于描述硬件信息的驱动,其他驱动可以通过名称和它进行匹配。一旦匹配成功后,可以通过它来获取硬件的信息。下面的例子就演示了如何进行驱动匹配和获取硬件信息...

Linux驱动如何创建platform_device?

struct platform_device 是Linux内核中用于表示平台设备的重要数据结构,它是Linux设备模型的一部分,特别用于那些不通过传统总线(如 PCI、USB 等)连接的设备...

Linux用户态如何使用i2c?

在用户态访问i2c从设备也是比较常用的功能。下面的例子就实现了如何读取和设置i2c从设备的GPIO引脚...

Linux驱动如何创建sysfs class接口?

Linux的sysfs是一种虚拟文件系统,用于将内核对象、属性和关系导出到用户空间,方便用户和管理员查看和配置内核及硬件信息。sysfs通常挂载在/sys目录下...

如何使用Linux misc设备驱动注册机制?

在Linux内核中,miscdevice是一种用于简化字符设备驱动注册的机制。它适用于那些不需要主设备号的简单设备驱动。miscdevice使用一个固定的主设备号(10)...

Linux驱动使用I2C通信协议

很好奇I2C设备是如何与驱动进行匹配的吧?一般是通过设备树文件来描述I2C从设备的信息,例如名称和地址等。驱动通过和名称与从设备进行匹配...

如何通过设备树访问raspi3b的i2c设备

i2c是嵌入式开发的常用协议,下面我们学习通过Linux驱动来读写i2c设备的数据。通过设备树来获取i2c的信息,使用Linux内核的i2c子系统提供的接口来控制读写数据...

Linux驱动如何在proc目录创建文件?

proc文件系统并不是真正存在于磁盘上的文件系统,而是由 Linux 内核动态创建的,用于提供一种访问内核数据结构和运行时系统信息的接口。它通常挂载在/proc目录下...

如何给Linux驱动实现fasync信号通知函数?

如果给Linux驱动实现fasync函数,那么驱动就能够通过信号机制异步通知客户端程序。这个方法一般比较少用,但我们也要熟悉这种方法。下面就给大家带来一个完整的例子...

如何进行Linux驱动调试-dump_stack?

dump_stack() 是 Linux 内核中一个关键的调试函数,用于在系统发生异常(如内核panic、oops或死锁)时打印当前线程的调用堆栈信息...

简单介绍Linux proc文件系统

proc文件系统是一个由内核动态生成的虚拟文件系统,挂载在/proc目录下。它不占用物理存储空间,而是通过内存实时反映系统和进程的运行状态...

CPU性能瓶颈分析

人在家中睡,锅从手机来。某天深夜接到几十条夺命短信,床头的手机不停地振动。你妈的,谁他妈在深夜不停发短息。匆忙拿起床头的手机,刺眼的屏幕亮瞎了程序员的狗眼。一阵恍惚后,定眼一看,坏事了...

Linux内核调试-CPU总结

这里总结了Linux CPU相关的调试工具。包含性能指标和常用功能图表,可以通过图表很方便的找到对应的工具...

如何使用i2c-tools调试设备

在进行嵌入式Linux开发的过程中,经常需要和i2c设备打交道。所以需要获取i2c设备的状态,进行读写操作。在开源的世界里,当然有大神已经为我们写好了对应的工具:i2c-tools...

Linux中的access_ok函数到底是什么?

access_ok函数用于验证用户空间指针在内核空间中是否有效且可访问。这是一项重要的安全检查,确保内核不会无意中访问无效或恶意的用户空间内存,否则可能导致安全漏洞、崩溃或未定义行为...

Linux中的Buffer和Cache有什么区别?

在编程的时候,经常听见buffercache,很多时候我们都不区分它们。但在操作系统中,它们是完全不同的两个概念。下面我带大家来看看它们两个到底是什么多西...

如何使用bpftrace跟踪调试内核?

bpftrace是一个基于eBPF(扩展的伯克利包过滤器)的高级跟踪工具,用于动态追踪Linux系统的行为和性能。它允许用户通过简单的脚本语言编写跟踪程序,实时监控内核和用户空间的活动...

如何使用bcc跟踪调试内核?

BCC(BPF Compiler Collection)是一个用于创建高效内核跟踪和操作的工具包,基于 eBPF(extended Berkeley Packet Filter)技术。eBPF允许用户在不修改内核源代码或加载内核模块的情况下,安全地运行自定义代码...

如何使用trace-cmd跟踪调试内核?

trace-cmd是一个用于控制Linux内核跟踪工具ftrace的命令行工具。ftraceLinux内核内置的跟踪框架,能够帮助开发者调试和分析内核行为。trace-cmd简化了ftrace的使用,提供了更友好的接口来配置、启动、停止和查看跟踪数据...

如何使用ftrace跟踪调试内核?

ftraceLinux内核中的一种跟踪工具,用于分析和调试内核行为。它通过在内核函数中插入钩子来捕获函数调用、返回及其他事件,帮助开发者了解内核的执行流程和性能瓶颈...

如何实现一个最小的C程序?

最为一名无聊的程序员,总会在无聊的时候想深入了解程序启动的流程。大多数程序都是从main函数开始写代码的,就会给人一种错觉:程序执行的第一行代码应该是main函数...

如何为Cpp实现Result类型?

因为C++中存在不同的错误处理方式,导致不同的库选择不同的错误方式。或一个库中存在多种不同的错误处理方式。使得整个C++库生态乱七八糟,开发体验极其不好...

如何为C语言实现Lamdba表达式?

程序开发中,对变量进行合适命名是一件麻烦的事情。所以很多编程语言提供了Lamdba匿名函数。可是C语言作为早期的编程语言,并不支持Lamdba表达式...

如何在Linux上安装PyTorch?

AI是当下最热门的话题之一。而且大部分的AI相关框架都是使用python进行开发。正所谓万事开头难,第一步当然是搭建python开发环境...

上一页 1 / 1 下一页