自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (17)
  • 收藏
  • 关注

原创 linux I2C驱动详解(3)-I2C Core

本节说明下I2C 核心层->i2c_transfer->适配器驱动master_xfer调用栈是 I2C 核心层提供的一个通用函数,用于发起一系列的 I2C 消息传输。adap:指向要使用的 I2C 适配器的指针。msgs:指向i2c_msg结构体数组的指针,每个i2c_msg结构体表示一个 I2C 消息。numi2c_msg数组的元素个数。I2C 核心层在接收到应用层的 I2C 操作请求后,会调用函数。函数通过结构体获取到对应的结构体,然后调用其中的回调函数,最终由适配器驱动的。

2025-04-02 12:10:32 537

原创 linux I2C驱动详解(2)-控制器驱动

int file;// 测试从机地址if (file < 0) { /* 错误处理 */ }if (ioctl(file, I2C_SLAVE, addr) < 0) { /* 错误处理 */ }// 写后读测试// 寄存器地址// 测试数据= 2) { /* 错误处理 */ }= 1) { /* 错误处理 */ }return 0;

2025-04-02 11:30:50 534

原创 linux I2C驱动详解(1)-设备驱动

以下以ICM-426xx传感器芯片驱动为例讲解Linux(openwrt) I2C设备驱动架构及编写方法,涵盖架构设计、硬件连接、设备树、驱动代码、应用测试及编译方法。所有代码均附带注释,并附流程图。+-----------------------+| User Application | (e.g. 通过sysfs或IIO接口读取数据)+-----------------------+| Linux Kernel || - IIO Subsystem |

2025-04-02 11:19:13 646

原创 读写锁(rwlock)

为避免写线程饥饿(长时间等待),多数实现优先处理写请求(即一旦有写请求等待,后续读请求需等待写完成)。在读多场景下,多个读线程需串行执行,导致性能瓶颈。)是一种同步机制,允许多个线程同时读取共享资源,但在写入时要求独占访问。,结合具体场景选择同步机制(如乐观锁、无锁编程等),以最大化系统性能。:同一时间仅允许一个线程获取写锁,且此时所有读锁和写锁均被阻塞。允许读锁升级为写锁(需原子性保证),或写锁降级为读锁。:持续有读线程获取锁,导致写线程无法及时执行。,消除不必要的等待,显著提升吞吐量。

2025-03-27 16:18:55 215

原创 高通 CamX-CHI 架构中的 Pipeline 与 Linux Media 子系统的关系详解

通过这种映射,高通 CamX-CHI 架构能够利用 Linux Media 子系统的灵活性,将硬件资源抽象为可配置的节点,快速构建复杂的相机处理流程(如 HDR、多帧降噪等),同时保持驱动层的模块化和可扩展性。:通过 Media 子系统的 “道路”,CamX 的 “公交线路” 可以灵活规划,适应不同场景(拍照、录像等),同时确保硬件资源(车站)的高效共享。A:统一管理复杂的硬件连接(如多 Sensor、多 ISP),避免驱动层硬编码连接关系,支持动态配置。

2025-03-27 16:15:29 485

原创 Media 子系统 & V4L2

维度Media 子系统V4L2 架构定位多媒体框架(基建公司)视频专用模块(视频高速公路)核心组件entitylinksubdev, V4L2 API管理范围视频、音频、传感器等所有多媒体设备仅视频相关设备(摄像头、采集卡)接口类型通用设备图操作(Media Controller)专用视频接口(syscall/ioctl)典型场景多设备链路(Sensor→ISP→Encoder)单设备操作(打开摄像头、捕获数据)V4L2 是 Media 子系统的「视频业务线」,提供视频设备的标准化接口(如。

2025-03-27 16:11:33 838

原创 CAMERA MFHR(Multi-Frame High Dynamic Range)

是一种结合多帧降噪(MFNR)与高动态范围(HDR)的混合成像技术,旨在通过多帧融合提升复杂光照场景下的图像质量。通过以上配置与优化,MFHR可在CamX架构中实现高效的多帧高动态范围成像,显著提升复杂光照场景下的用户体验。Sensor → IFE(实时流) → BPS(离线流) → IPE(后处理) → JPEG编码/显示。:根据像素亮度分配权重(高光区依赖短曝光帧,暗区依赖长曝光帧)。-- 输入节点:接收多帧RAW数据 -->-- 输出节点:传递到IPE -->-- 处理节点:对齐与融合 -->

2025-03-27 13:20:31 832

原创 Camera Offline Stream(相机离线流)

Offline Stream(离线流)是相机数据处理流程中的一种配置,

2025-03-27 13:15:58 381

原创 高通平台camera构架sensor驱动详解

优先阅读。

2025-03-27 11:11:27 899

原创 高通camera架构CamX添加自定义node

(自定义Node的保留标识),硬件Node(如IFE、IPE)使用预定义ID(如IFE=65536)6。:将水印处理封装为独立Node,在Usecase XML中插入到IFE和BPS之间。定义输入/输出端口数量、Buffer格式支持(如RAW、YUV等)。中修改像素数据,需注意字节对齐问题(如YUV420的宽度需为偶数)。:运行降噪算法,输出单帧YUV数据到下游Feature。中添加新Node的构建路径,确保编译时包含该模块1。目录下,可参考现有Node(如。:添加水印功能的Node需在。

2025-03-26 22:49:41 847

转载 Android Camera简单整理(二)-Qcom HAL3 Camx架构学习

CAMIF:摄像头接口?//这里的线程cb是CHISession::ThreadJobCallback,为什么呢?//如果是no sink port。

2025-03-26 18:07:56 6

转载 【Android Camera简单整理(一)-Camera Android架构(高通)】

6 Surface本质上是BufferQueue的使用者和封装者,当CameraServer中App设置来的Surface容器被填满了BufferQueue机制将会通知到应用,此时App中控件取出各自容器中的内容消费掉,Preview控件中的Surface中的内容将通过View提供到SurfaceFlinger中进行合成最终显示出来,即预览;应用层开发者需要做的就是按照AOSP的API规定提供的接口,打开相机,做基本的相机参数的设置,发送request指令,将收到的数据显示在应用界面或保存到存储中.

2025-03-26 18:05:57 21

原创 Android HIDL介绍及使用示例

对于遗留的HIDL代码,Google建议逐步迁移至AIDL,尤其在需要支持Android 11及以上版本时,AIDL已成为官方推荐的标准1。AIDL原本用于Android框架层和应用层通信,现扩展至HAL层,减少了Binder和Passthrough模式的分歧,仅需维护一个运行时环境,降低了调试和优化的复杂度1。通过以上步骤,可实现一个完整的HIDL服务,促进Android框架与硬件的解耦,提升系统可维护性。,开发者可直接在现有接口中添加方法或字段,无需像HIDL那样创建新版本目录,避免了冗余代码1。

2025-03-26 11:49:47 640

原创 android camera详解

Android Camera原理之编译Android Camera原理之camera provider启动Android Camera原理之cameraserver与cameraprovider是怎样联系的Android Camera原理之camera service与camera provider session会话与capture request轮转Android Camera原理之camera HAL底层数据结构与类总结Android Camera原理之camera service类与接口关系。

2025-03-26 01:06:27 898

原创 ANDROID JNI 底层原理详解

JNI(Java Native Interface)即 Java 本地接口,它允许 Java 代码与本地代码(如 C 和 C++)进行交互。在 Android 开发中,JNI 扮演着重要角色,它让 Java 代码(位于 Framework 层)能够调用 NATIVE 层的 C/C++ 代码,以实现高性能计算、访问底层硬件等功能。注册 JNI 方法:将 Java 方法与本地的 C/C++ 函数关联起来。Java 代码调用本地方法:在 Java 代码中调用声明为native的方法。JNI 层查找本地函数。

2025-03-25 21:27:06 898

原创 JNI原理学习

这样JNI就可以访问Java层的代码了。为什么能无中生有一个 ​​native_init()​​​呢,是因为前面加载了一个 ​​libmedia_jni​​​库,这里面肯定封装了这个函数,我们加载进来的动作其实就和 ​​import​​来导包一样,这个成员方法同样的被我导入进来了。首先先判断当前是什么语言,​​_cplusplus​​​就是C++,如果当前语言是C++,JNIEnv就是 ​​_JNIEnv​​​类型,如果是C,就是 ​​JNIInvokeInterface*​​​这个类型。

2025-03-25 21:11:24 380

原创 JNI详解:使用方法

jni全称java native interface,我把它分为三部分,java代表java语言,native代表当前程序运行的本地环境,一般指windows/linux,而这些操作系统都是通过C/C++实现的,所以native通常也指C/C++语言,interface代表java跟native两者之间的通信接口,jni可以实现java和C/C++通信。它是java生态的特征,所以定义在jdk标准当中。

2025-03-25 20:54:01 758

原创 JNI、Binder、NDK 的关系解析(类比 + 场景化说明)

需求:游戏逻辑(C++,NDK)与渲染(另一个 C++ 进程,NDK)高速通信。方案用 NDK 实现 Native Binder 服务(类似 Java 的 AIDL,但全 C++)。通过 JNI 在 Java 层暴露简化接口(可选)。Binder 驱动负责跨进程数据传输(一次内存拷贝,高性能)。四、对比与总结维度JNIBinderNDK作用跨语言(Java ↔ C/C++)跨进程(IPC)支持 Native 开发(C/C++)层级语言边界进程边界开发工具链协作场景。

2025-03-25 18:43:17 632

转载 Android JNI使用全面讲解

在访问或者设置Java属性的时候,首先就要先在本地代码取得代表该Java属性的jfeldID,然后才能在本地代码中进行Java属性操作,同样,需要调用Java端的方法时,也是需要取得代表该方法的jmethodID才能进行Java方法调用。Java中方法的签名。不知道大家有没有了解过,其实Java中每个方法,都有其对应的签名的。本文是一个 NDK/JNI 系列基础到进阶教程,目标是希望观看这篇文章的朋友们能对Android中使用C/C++代码,集成C/C++库有一个比较基本的了解,并且能巧妙的应用到项目中。

2025-03-25 17:48:06 5

原创 windows安装使用QEMU

QEMU也可以使用MSYS2安装。MSYS2使用pacman管理包。然后使用pacman -Syu命令更新包。对于64位Windows 8.1或更高版本(UCRT64): pacman -S mingw-w64-ucrt-x86_64-qemu。对于64位Windows 7或更高版本(MINGW64): pacman -S mingw-w64-x86_64-qemu。Stefan Weil提供了32位和64位Windows的二进制文件和安装程序。一些与QEMU相关的工具可以在单独的包中找到。

2024-07-05 14:43:33 1040

AUTOSAR MCAL ADC porting guide

AUTOSAR MCAL ADC porting guide

2023-07-12

MSDN for VB 6.0安装程序

MSDN VB 6.0 安装程序 中文

2010-02-24

OV7670数据手册

OV7670数据手册OV7670数据手册OV7670数据手册

2010-02-24

用VB和USB通信的一个实例.rar

用VB和USB通信的一个实例!想学VB或者USB通信协议的可以下来参考下,有源码!

2008-11-27

桌面宠物+源码.rar

一个非常经典的VB程序,实现的效果类似QQ宠物,如果你想要有个自己的桌面宠物不仿下载玩玩! PS:有源代码的!

2008-11-27

Visual Basic 语言参考-函数速查 〖2002年第1版〗.chm

Visual Basic 语言参考-函数速查 〖2002年第1版〗,作为VB知识点的复习和巩固不错.

2008-11-27

王国荣VB&API.HLP

王国荣VB&API.HLP,又一API学习的超好教材,推荐作为入门参考之一

2008-11-27

vb api初级入门(菜新).chm

转自VBGOOD网站,LIUCAI大师原创,通俗易懂,是API超级菜鸟学API之最佳BOOK!

2008-11-27

USB接口设计.pdf

清华大学毕业设计论文 ,详细讨论了USB通信传输协议

2008-11-27

protel设计与实例.pdf

protel设计与实例,全面介绍PROTEL99软件使用方法,并配以实例能更好的巩固理论知识

2008-11-18

Protel99入门与提高

本书是Protel基础学习的经典教材,由著名的老虎工作室主编,涵盖了使用Protel制作PCB板的各个过程,内容极其详尽,还有许多Protel献为人知的技巧以及应用

2008-11-18

单片机与家用电器智能化技术.pdf

利用单片机设计简单小电路控制家用电器的详细教程,非常实用有趣的单片机教程,值得一下~~

2008-11-18

嵌入式系统的构建.pdf

嵌入式系统的构建,pdf格式,希望对学嵌入式的有帮助~~

2008-11-18

嵌入式系统的C语言设计.pdf

嵌入式系统的C语言设计,一本嵌入式软件开发者很好的学习教程

2008-11-18

CAN总线资料

CAN总线的一些入门资料

2008-08-04

汇编原理PPT

介绍汇编原理的基本知识

2008-07-23

EEPROM说明书

关于EEPROM :at24cxx的说明书

2008-07-23

空空如也

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

TA关注的人

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