嵌入式
liujun3512159
这个作者很懒,什么都没留下…
展开
-
嵌入式开发中,有些引脚设置参数的理解
/* 水平方向的时间参数 * bit[25:19]: HBPD, VSYNC之后再过多长时间才能发出第1行数据 * LCD手册 thb=38 * HBPD=37 * bit[18:8]: 多少列, 320, 所以HOZVAL=320-1=319 * bit[7:0] : HFPD, 发出最后一行里最后一个象素数据之后,再过多长时间才发出HSYNC * LCD手册th...原创 2022-04-01 08:50:57 · 2254 阅读 · 0 评论 -
LCD显示原理和驱动方式介绍
转载 2022-03-23 08:39:01 · 1076 阅读 · 0 评论 -
linux驱动之input子系统及分层/分离设计思想
本人对linux一直都比较感兴趣,苦于工作一直没有机会好好的深入了解,作为工作将近8年的工程师来说实在也是件憾事,不过还好,手头还算宽裕,买了不少开发板,不过大部分都是上灰阶段……真是暴殄天物啊……业余时间也只是断断续续的学习下,还未系统性的去钻研,很多知识点还未形成一个完整的知识体系,所以最近开始做些深入的学习;先讲讲linux驱动:linux驱动之前分为字符驱动、块驱动、网络设备驱动,如果只是简单的写驱动的话其实和裸机的单板驱动没太大区别,大部分工作还是设置寄存器,然后添加驱动的转载 2022-03-23 08:06:36 · 160 阅读 · 0 评论 -
wawzzll累了休息时不要忘了 时间永远在和你赛跑003分层分离驱动驱动程序分层分离概念_总线驱动设备模型
一、 分层分离概念分离:把硬件相关的东西抽取出来;把相对稳定的软件部分抽取出来。分层:左右两边分别向上注册自己的东西,input.c向上提供统一给app操作的接口。每一层都专注与自己的事情。二、 总线驱动设备模型在(gpio_keys.c)的入口函数里注册了平台driver看看这个注册平台driver里做了什么再看看这个总线里面有什么如果名字相同就会调用probe函数如果这个probe函数想要被调用,那么左边的device就应该有一个同名的平台device,来搜索一下无法在别的文件中搜索转载 2022-03-22 21:39:58 · 83 阅读 · 0 评论 -
《韦东山Linux视频驱动第2期》学习总结之第13课(输入子系统)
内核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而PS/2鼠标驱动程序是设备驱动程序。事件驱动程序是标准的,对所有的输入类都是可用的,所以要实现的是设备驱动程序而不是事件驱动程序。设备驱动程序可以利用一转载 2022-03-20 23:05:29 · 278 阅读 · 0 评论 -
[Linux 基础] -- 韦东山第二期视频 input输入子系统总结
概述: 输入子系统有三个核心结构体:input_dev, input_handle, input_handler:input_dev 表示一个输入设备,包含输入设备的一些相关信息;input_handler 表示对输入事件的具体处理,它为输入设备的功能实现了一个接口;input_handle 用来连接输入设备和输入事件。 输入子系统的主要任务就是把这三个结构体连接在一起。在input_register_device 与 input_register_handler 两个注册函...转载 2022-03-20 22:09:55 · 285 阅读 · 0 评论 -
wait_event_interruptible()和wait_up_interruptible()
休眠所谓休眠就是让出CPU 然后并不返回wait_event_interruptible(wq, condition)condition = 0 ///休眠condition = 1 ///唤醒wait_event_interruptible()和wait_up_interruptible()wait_event_interruptible(wq, condition)用wake_up_interruptible()唤醒后,wait_event_interruptible(wq,..转载 2022-03-20 21:55:26 · 239 阅读 · 0 评论 -
Linux驱动之定时器(mod_timer)
文章摘自一下几位网友。非常感谢他们。http://blog.sina.com.cn/s/blog_57330c3401011cq3.htmlLinux的内核中定义了一个定时器的结构: #include<linux/timer.h>struct timer_list { struct list_head list; unsigned long expires; //定时器到期时间 unsigned long data; //作为参数被转载 2022-03-20 21:42:59 · 1150 阅读 · 0 评论 -
linux驱动的异步通知(kill_fasync,fasync)---- 驱动程序向应用程序发送信号
应用程序#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <poll.h>#include <signal.h>#include <sys/types.h>#include <unistd.h>#include <fcntl.h>/* fifth..转载 2022-03-17 22:15:14 · 387 阅读 · 0 评论 -
Linux异步通知 fasync
要弄明白这个问题,我们得从最基本的原理开始。我们知道,驱动程序运行在内核 空间中,应用程序运行在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时 候,我们希望通知用户程序设备已经ok,用户程序可以读取了,这样应用程序就不需要一直查询该设备 的状态,从而节约了资源,这就是异步通知。好,那下一个问题就来了,这个过程如何实现呢?简单,两方面的工作。一 驱动方面:1. 在设备抽象的数据结构中增加一个struct fasync_struct的指针2. 实现设备操作中的fasy转载 2022-03-17 08:45:10 · 430 阅读 · 0 评论 -
WDS1期第12课 字符设备驱动 7 async异步通知用户空间 驱动代码的kill_fasync函数通知用户的signal函数 fcntl
前面的query interrupt poll都需要用户程序去主动去读或查询。async异步通知—可以由驱动程序主动去通知用户程序中断的到来。信号也可以通知TASK_INTERRUPTIBLE的进程,SIGKILL可以杀掉任何进程,就是传说中的信号9,无法阻挡无法被应用覆盖的终极杀器。列出所有信号:kill -l1. test进程间发信号后台运行该用户进程后,通过kill -USR1 PID,kill -10 PID传递参数,kill -9 PID 杀掉进程。#include &.转载 2022-03-17 00:19:53 · 238 阅读 · 0 评论 -
韦东山:Linux驱动基石之POLL机制
1.适用场景在前面引入中断时,我们曾经举过一个例子:妈妈怎么知道卧室里小孩醒了? ① 时不时进房间看一下:查询方式 简单,但是累 ② 进去房间陪小孩一起睡觉,小孩醒了会吵醒她:休眠-唤醒 不累,但是妈妈干不了活了 ③ 妈妈要干很多活,但是可以陪小孩睡一会,定个闹钟:poll方式 要浪费点时间,但是可以继续干活。 妈妈要么是被小孩吵醒,要么是被闹钟吵醒。 ④ 妈妈在客厅干活,小孩醒了他会自己走出房门告诉妈妈:异步通知 妈妈、小孩互不耽误使用休眠-唤醒的方式等待某个事件发生时,有一个缺.转载 2022-03-16 22:27:13 · 812 阅读 · 0 评论 -
poll机制实现中断程序
韦东山的嵌入式forth_drv.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/uaccess.h>#include <asm/irq原创 2022-03-15 23:52:38 · 1121 阅读 · 0 评论 -
中断驱动程序
韦东山的视频中讲解,记录一下,看看人家怎么写驱动的third_dev.c 文件#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/uaccess.h>原创 2022-03-15 22:37:21 · 215 阅读 · 0 评论 -
Camera 面试总结
常见的面试问题:1.描述一下调试平台的ISP处理模块的流程;2.说一下AWB,AE,HDR,LTM的算法原理 ?3.高,中,低频的噪点怎么区分,说一个常用去噪模块的原理 ;4.描述一下gamma的使用场景,及影响;5.RGB,YUV数据格式;6.怎么评价手机拍摄的图像质量的优劣;7.描述一下调试过程中遇到的比较多的最难调试的问题;8.调试当中,当遇到I2C不通时,你的处理想法是什么?9.当图像点不亮时,你的处理思路是什么?10.说一下调试这么长时间以来,最重要的,最关注的点是什么?11转载 2022-03-14 23:28:29 · 802 阅读 · 2 评论 -
嵌入式,韦东山的那本书 里,GPBDAT &=~(1<<5)是什么意思,特别是这个&符号是干嘛用的
GPBDAT &=~(1<<5)就是GPBDAT=GPBDAT &(~(1<<5))也就是GPBDAT=GPBDAT & 011111B(他的意思是GPBDAT 的其他位不动,只把Bit 5设置位0)即:GPBDAT=GPBDAT & 0x1f&是“与”的意思&=运算与符号。其他位不变,bit5赋值为0...原创 2022-03-14 22:29:22 · 948 阅读 · 0 评论 -
嵌入式开发 设置清除
有个面试题,用程序实现下面的功能给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变#define BIT3 (0x1 << 3)static int a;void set_bit3(void){ a |= BIT3;}void clear_bit3(void){ a &= ~BIT3;}其实一开始我不是很懂这段代码,于是百度了下,然后综合各家的解释,集合我自己的理解比方说...原创 2022-03-13 23:28:28 · 272 阅读 · 0 评论