自定义博客皮肤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)
  • 收藏
  • 关注

原创 基于硬件imx6ull的Linux系统SPI分析-2

一般spi设备驱动的发送函数,会定义spi_message和若干个spi_transfer,设置spi_transfer的txbuff/rxbuff,len等,调用spi_message_init函数初始化spi_message,调用spi_message_add_tail把spi_transfer添加到spi_message链表中。一个spi_message是一次数据交换的原子请求,而spi_message由多个spi_transfer结构组成,这些spi_transfer通过一个链表组织在一起。

2025-03-31 10:27:18 482

原创 基于硬件imx6ull的Linux系统SPI分析-1

参考资料:韦东山驱动讲解;正点原子I.MX6U嵌入式Linux驱动开发指南Linux内核:开发板:正点原子imax6ul-ALPHA六轴传感器:icm20608DO(MOSI)SPI主控用来发出数据,SPI从设备用来接收数据DI(MISO)SPI主控用来发出数据,SPI从设备用来接收数据SCKSerial Clock,时钟CSChip Select,芯片选择引脚2.1 传输示例假设主控芯片要传输一个0x56数据给SPI Flash,时序如下:首先CS0。

2025-03-28 23:18:57 587

原创 printk相关说明

挂接proc文件系统后,读取/proc/sys/kernel/printk文件可以得知console_loglevel、default_message_loglevel、minimum_console_loglevel和default_console_loglevel这4个值。② 假设default_message_loglevel的值等于4,如果printk的参数开头没有“<n>”样式的字符,则在printk函数中进一步处理前会自动加上“<4>”;printk函数打印信息是调试内核、驱动的最简单方法。

2025-03-10 21:52:27 919

原创 opencv光流法推测物体的运动

jetson opencv

2024-12-07 20:47:49 958

原创 opencv图片明暗度判断方法

在 OpenCV 中,可以使用 cvtColor 函数来将图像从一种颜色空间转换到另一种颜色空间,包括转换到 LAB 颜色空间。我们可以通过L的亮度分量来初步判断当前摄像头获取的图像颜色偏暗还是偏亮,若是偏暗可以采用补光的方式来增加外部环境的光照亮度。OpenCV 的LAB 颜色空间(也称为 CIELAB)是一种颜色对手的颜色模型,它旨在模仿人类的色彩感知。A: 范围从 -127 到 +127,表示从绿色到红色的变化。B: 范围从 -127 到 +127,表示从蓝色到黄色的变化。

2024-11-18 10:45:55 672 1

原创 systemd学习

linux buildroot systemd

2024-09-18 10:57:41 1110

原创 RS485通讯基本原理

RS485原理

2024-08-27 22:29:00 694

原创 共源级PMOS反向串联电路分析

MOS管 PMOS

2024-08-26 23:03:58 1110

原创 虚拟机上使用Ubuntu1804上编译qt5.12.9部署到jetson nano上

开发qt界面,基于Qt5.12.9,开发环境使用虚拟机加载Ubuntu1804,开发完成后的qt程序最后部署到jetson nano上,使用的通用编译器是gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu。我们可以在Qt下载地址https://download.qt.io/找到https://download.qt.io/archive/qt/5.12/5.12. 9/single/,进入下载页面如下。执行安装指令后,查看安装后的内容。赋予脚本可执行权限。

2024-08-14 19:52:07 905

原创 linux epoll使用说明

Linux 应用编程 epoll

2024-08-13 19:30:33 756 1

原创 jetson nano远程调试说明

jetson nano 远程 调试 xshell nomachine

2024-08-13 17:03:15 1095

原创 Freescale imx6的android lvds屏幕驱动调试

一、概述     1、飞思卡尔 imx6的显示屏驱动架构:    2、目标:    因imx6开发板本身已提供LVDS接口,目标屏幕是LG的LA070WV6,其为RGB接口,imx6和LG屏之间用TW8836芯片来转接,LG屏的主要参数为:分辨率:800*480色彩:32位时钟频率:33.26MHz二移植过程1、首先把屏幕的接口接到开发板

2016-05-05 17:41:22 7960

原创 Freescale imx6 linux platform 驱动模型分析

Freescale imx6 linux platform驱动模型分析一.概述    platform设备和驱动与linux设备模型密切相关。platform在linux设备模型中,其实就是一种虚拟总线没有对应的硬件结构。它的主要作用就是管理系统的外设资源,比如io内存,中断信号线。现在大多数处理器芯片都是soc,如Freescale imx6,它包括处理器内核和系统的外设(l

2016-05-05 16:38:35 2189

转载 linux中class_create和class_register说明

本文介绍linux中class_create和class_register的相关使用方法1 class结构体介绍    内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…)函数来

2016-03-18 11:01:52 888

转载 Linux驱动中,probe函数何时被调用

声明:以下主要内容参考自:关于struct device_driver结构中的probe探测函数的调用http://blog.chinaunix.net/u2/71164/showart.php?id=1361188用SourceInsight跟踪:从driver_register看起,此处我的这里是:int driver_register(struct device_dr

2016-03-18 10:35:05 587

转载 解密module_init

在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(obj-y)。1.在MODULE没有定义这种情况下,module_init定义如下:#definemodule_init(x)        __initcall(x);因为#define

2016-03-18 10:32:28 310

转载 input子系统 KeyPad-Touch上报数据格式与机制

linux drive中input子系统上报信息,调用函数void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value),input子系统最终调用copy_to_user(buffer, event, sizeof(struct input_event))将信息上报给上层,ev

2016-03-18 10:28:43 393

转载 Linux workqueue工作原理

1. 什么是workqueue      Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程.     工作队列(workqueue)是另外一种将工作

2016-03-18 10:27:15 378

转载 高精度定时器(HRTIMER)的原理和实现

上一篇文章,我介绍了传统的低分辨率定时器的实现原理。而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件。内核从2.6.16开始加入了高精度定时器架构。在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点:低分

2016-03-18 10:25:13 1308

转载 如何实例化i2c_client(四法)

一、在板文件进行client的实例化在内核的初始化中(例如在板文件中)定义设备的信息。这种操作的前提是内核编译的时候已经确定有哪些i2c设备和它们的地址,还要知道连接的总线的编号。比如在板文件/arch/arm/mach-XXX/board_XXX.c中可以用类似下面的代码来注册i2c设备的信息。1.  static structi2c_board_info __initdata ui

2016-03-18 10:23:05 1753

空空如也

空空如也

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

TA关注的人

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