TechBlog
首页分类标签搜索关于
← 返回标签列表
加载中...

© 2025 TechBlog. All rights reserved.

#标签

共 73 篇文章
20251129-详细解析Linux的mmap内存映射

20251129-详细解析Linux的mmap内存映射

在传统的readwrite内核态:内核把数据从磁盘读到内核高速缓存(PageCache)。拷贝:内核把数据从PageCache**拷贝**到用户进程的缓冲区(UserBuffer)。修改:用户在UserBuffer修改数据。拷贝:用户把数据拷贝回内核。内核态:内核把数据刷回磁盘。关键词:内核->PageCache(页缓存)->用户缓存并修改->PageCache(页缓存)->内核缓存->磁盘mmap模型:mmap请求内核:“请把这个文件直接‘投影’到我的虚拟内存里。

时间:12/21/2025

Linux-内核三大核心结构体详解驱动开发视角

Linux-内核三大核心结构体详解驱动开发视角

编写字符设备驱动demo时,就是通过初始化file_operations、关联inode与cdev、利用file的private_data传递设备信息,实现read/write/mmap等功能。——相当于文件/设备的“身份证”,存储的是“文件/设备是什么、属于谁、对应什么资源”等固定信息,与“文件是否被打开”无关(一个文件/设备只有一个inode,不管被打开多少次)。//设备号(主设备号+次设备号,仅设备文件有效)//文件/设备类型+权限(核心!

时间:12/16/2025

AD7616驱动开发-FPGA

AD7616驱动开发-FPGA

【FPGAAD7616驱动编写】https://www.bilibili.com/video/BV1LDWyz8EnX?

时间:12/16/2025

rk3588驱动开发第一章Uboot使用

rk3588驱动开发第一章Uboot使用

芯片上电后需要运行bootloader程序bld初始化DDR等外设将linux内核从flash拷贝到DDR中然后启动linuxuboot是一个逻辑代码可以看做为一个综合的裸机例程有半导体厂商提供给芯片厂商运维uboot使用将板子的UART和电脑连接设置波特率为1500000复位后ctrl+c进入(这是瑞星微特有的)

时间:12/15/2025

C核心特性精讲从C语言痛点出发,掌握现代C编程精髓超详细

C核心特性精讲从C语言痛点出发,掌握现代C编程精髓超详细

本文深入探讨了从C语言转向C++的必要性,重点分析了C语言在大型项目管理中的核心痛点,并展示了C++如何通过命名空间(namespace)机制优雅解决这些问题。文章首先指出C语言在命名冲突、指针管理、函数设计等方面的不足,然后详细讲解了C++命名空间的多种应用方式,包括基本命名空间、嵌套命名空间、匿名命名空间和命名空间别名,并通过丰富的代码示例演示了它们在工程实践中的应用。命名空间为C++提供了模块化组织能力,有效解决了标识符冲突问题,是构建大型软件系统的重要基础特性。

时间:12/15/2025

Linux驱动开发Linux-Debugfs-虚拟文件系统深度解析与实战指南

Linux驱动开发Linux-Debugfs-虚拟文件系统深度解析与实战指南

LinuxDebugfs是一个专为内核调试设计的虚拟文件系统,提供简单灵活的内核数据导出机制。它位于/sys/kernel/debug,允许开发者无需复杂API即可导出内核变量和调试信息,相比Procfs/Sysfs具有更低的使用门槛和更自由的格式支持。本文详细介绍了Debugfs的核心特性、挂载方法、API使用以及实战案例,包括如何创建调试目录、导出可读写变量等。作为内核开发者的"游乐场",Debugfs不保证接口稳定性,但为内核调试提供了极大便利。

时间:12/03/2025

GSV1011-富利威-HDMI芯片选型

GSV1011-富利威-HDMI芯片选型

GSV1011是GSCoolink(基石)HDMI1.4收发器(BGA144,10×10mm),支持4K@30Hz、HDCP1.4,可在RX/TX/环出间切换,带LVDS/TTL双向总线与音频提取/嵌入、ARC、CSC、下变换,适合采集卡、矩阵、切换器、监视器等;需4K@60Hz/HDCP2.2可换GSV2011(同封装)。

时间:11/28/2025

Altium免费资源,支持及帮助中心

Altium免费资源,支持及帮助中心

AltiumDesigner中有一个专门帮助用户使用软件KnowledgeCenter的面板(下图),上半部分显示当前帮助的主题,工具栏按钮,选择的对像,面板等等,下半部分是文件库导航区域。􀁺在homepage的左侧的DEMOcenter是一个用来观看软件新功能和怎样使用软件的短小视频,无论何新出一些新特性的版本,新的视频都会被创建,给用户去认识产品的新功能。Altium的网站(www.altium.com)包括很多关于软件的产品和服务的信息,同时还包括技术信息和服务模块。

时间:11/27/2025

linux-驱动开发相关

linux-驱动开发相关

linux驱动程序相关笔记

时间:11/27/2025

Linux驱动开发笔记二十SPI-ICM20608驱动0.96寸OLED驱动

Linux驱动开发笔记二十SPI-ICM20608驱动0.96寸OLED驱动

这部分只做了解即可,一般都由原厂提供。驱动开发的重点还是在SPI设备驱动SPI驱动框架和I2C类似,都分主机控制器驱动和设备驱动。SPI主机驱动就是SOC的SPI控制器驱动,类似I2C驱动里面的适配器驱动。spi_master的定义如下。因为太长了,有删减,只保留了重要的部分。*除非为负数(==动态分配),否则bus_num完全由板级决定。*例子:某个SoC有三个SPI控制器,编号012,而某块板子的原理图可能使用SPI2,*软件通常会为该控制器设置bus_num=2*/

时间:11/27/2025

正点原子imx6ull移植lvgl-v8.3及触摸屏调试

正点原子imx6ull移植lvgl-v8.3及触摸屏调试

摘要:本文详细介绍了在正点原子imx6ull开发板上移植LVGL8.3的完整过程。硬件采用ALPHAI.MX6ULL开发板和7寸RGBTFTLCD屏幕,软件环境需预先配置framebuffer和触摸驱动。移植步骤包括:1)获取LVGL源码并组织目录结构;2)修改Makefile适配交叉编译工具链;3)配置lv_drv_conf.h启用FBDEV和EVDEV;4)调整lv_conf.h内存管理参数。重点调试了触摸功能,通过分析input事件类型(特别是EV_ABS),最终解决了触摸状态检测问题。

时间:11/22/2025

Rockchip-RK3588-ISP-详细调试流程

Rockchip-RK3588-ISP-详细调试流程

本文档针对瑞芯微RK3588芯片的ISP30模块,提供从前期准备、环境搭建到核心参数调试、优化排错的全流程指南。RK3588搭载的ISP30模块具备高性能图像处理能力,调试需结合硬件特性与专用工具链,重点关注3A算法(自动曝光AE、自动白平衡AWB、自动对焦AF)、图像质量标定及实时性优化三大核心目标。

时间:11/20/2025

嵌入式Linux驱动开发全流程工具协作核心概念拆解从入门到理解

嵌入式Linux驱动开发全流程工具协作核心概念拆解从入门到理解

本文将以“嵌入式Linux驱动项目”为核心主线,串联Kbuild、交叉编译器、GDB等关键工具的协作流程,同时拆解Unix、Linux、GNU等核心概念,用类比+实操案例的方式深入浅出讲解,帮你构建完整的知识体系。

时间:11/08/2025

鸿蒙HDF框架源码分析

鸿蒙HDF框架源码分析

HDF框架在鸿蒙系统中的重要性是不言而喻的,特别是在做驱动开发,那么一定要好好了解,才能更好的利用鸿蒙的特性,这篇文章主要从Openharmony源码角度,分析HDF框架的来龙去脉

时间:10/30/2025

Linux-驱动开发入门LCD-驱动与内核机制详解

Linux-驱动开发入门LCD-驱动与内核机制详解

本文介绍了Linux LCD驱动开发的基本流程与内核机制。内容包括framebuffer框架、内核空间与用户空间交互原理、设备驱动的file_operations结构、内存分配方式(kmalloc/vmalloc/dma_alloc_coherent)、内核链表管理等核心知识。详细讲解了LCD驱动初始化、背光控制、调色板设置等关键开发步骤,并提供了相关代码示例。文章还重点说明了用户空间与内核空间数据交互的安全方法,以及驱动卸载时的资源释放注意事项。适合Linux驱动开发初学者建立整体知识框架。

时间:10/03/2025

Linux-驱动开发与内核通信机制超详细教程

Linux-驱动开发与内核通信机制超详细教程

本文详细介绍了Linux驱动开发的核心概念与通信机制。主要内容包括:内核空间与用户空间的隔离原理及其重要性;六种常见的内核与用户空间通信方式(如copy_from_user、proc文件系统、mmap等);字符设备驱动的开发框架,重点讲解file_operations结构和设备注册方法;设备号管理、内存映射技术及硬件寄存器访问方法;同时涵盖了进程状态、线程类型、僵尸进程处理等操作系统基础知识,并提供了实用的调试技巧。通过本教程,读者可以掌握Linux字符设备驱动的基本开发流程和关键实现技术。

时间:09/30/2025

Linux-Linux标准块设备驱动详解从原理到实现

Linux-Linux标准块设备驱动详解从原理到实现

本文深入解析了Linux块设备驱动的核心架构与实现原理。文章系统介绍了块设备的基本特性,详细剖析了`block_device_operations`、`gendisk`、`request_queue`和`bio`等关键数据结构,阐述了驱动注册、I/O请求处理的完整流程。重点讲解了现代多队列(blk-mq)架构下的请求处理机制,并通过一个完整的基于内存的RAM磁盘驱动示例,演示了从设备号分配、磁盘对象初始化到请求处理的全过程。

时间:09/04/2025

imx6ull-驱动开发篇42Linux-I2C-驱动框架简介

imx6ull-驱动开发篇42Linux-I2C-驱动框架简介

Linux内核将I2C驱动分为总线驱动和设备驱动两部分。总线驱动负责SOC的I2C控制器操作,核心数据结构为i2c_adapter和i2c_algorithm,其中i2c_algorithm定义了传输方法。设备驱动则针对具体I2C设备,核心结构为i2c_client和i2c_driver,通过i2c_add_driver注册驱动。

时间:08/26/2025

Linux-无线网络驱动开发-之-子系统源码框架nl80211cfg80211mac80211

Linux-无线网络驱动开发-之-子系统源码框架nl80211cfg80211mac80211

即MAC(Media Access Control ) Layer Management Entity,它管理物理层MAC状态机,负责 认证、关联、扫描、省电模式 等。

时间:06/22/2025

深入解析音频编解码器Audio-CODEC硬件接口与驱动开发

深入解析音频编解码器Audio-CODEC硬件接口与驱动开发

音频编解码器(Audio CODEC)是音频处理系统中的核心组件,负责,广泛应用于等设备。本篇文章将从和等方面,深入讲解如何正确理解和使用音频编解码器。

时间:03/17/2025

Linux驱动开发-pinctrl-和-gpio-子系统并发和竞争内核定时器

Linux驱动开发-pinctrl-和-gpio-子系统并发和竞争内核定时器

②中断可以用,因为中断不能休眠。信号量就相当于设置一个变量,初始值,我进行这个操作时,这个变量会设置为另一个值,其他线程或者内核看到这个变量不是初始值,不会在外面一直等待,而是去执行其他操作,等我执行完这个操作后,会将这个变量变回初始值,然后通知线程和内核来执行这个操作,适合锁持有时间较长的情况。执行这一步,不被其他线程或者内核影响,相当于我在执行这个操作时候,让一个标准位置0,其他线程或者内核想执行这个操作,一看这个标志位为0,就执行不了,等到这个操作被我执行完后,把标志位置1,从而其他可以去执行。

时间:03/16/2025

Linux驱动开发进阶-文件系统

Linux驱动开发进阶-文件系统

Linux驱动开发进阶 - 文件系统

时间:03/16/2025

Linux驱动开发实战六设备树升级插件设备树点灯

Linux驱动开发实战六设备树升级插件设备树点灯

插件设备树极大地提高了Linux嵌入式系统的灵活性和可扩展性。通过允许动态修改硬件描述,它使得系统能够适应更广泛的使用场景,特别是在需要热插拔和动态配置的应用中。掌握插件设备树的开发,将使您的嵌入式Linux系统开发能力更上一层楼。

时间:03/16/2025

Linux驱动开发和FreeRTOS路线总体规划

Linux驱动开发和FreeRTOS路线总体规划

通过以上结构化学习,开发者可系统掌握Linux与FreeRTOS的核心技术,应对从嵌入式控制到复杂系统开发的多样化需求。:防止低优先级任务持有锁时阻塞高优先级任务。

时间:03/16/2025

上一页
1234
下一页第 1 / 4 页