编程
文章平均质量分 51
yubuyun
我想买辆车
展开
-
韦东山视频第三期makefile文件分析
objs:=a.o b.o test:(objs)gcc−otest(objs) gcc -o test ^ dep_files:=(foreachf,(foreach f,(objs),.(f).d)depfiles:=(f).d) dep_files:=(wildcard $(dep_files))ifneq ((depfiles),)include(dep_files),)原创 2015-07-02 23:19:16 · 1327 阅读 · 0 评论 -
IIC驱动分析
1.I2C驱动框架:(1).应用程序APP:open,read,write(2).IIC设备驱动程序:drv_open,drv_read,drv_write。知道数据的含义。(3).IIC总线驱动程序:识别设备、提供读写函数、知道如何收发数据。原创 2015-09-27 13:00:49 · 360 阅读 · 0 评论 -
虚拟摄像头vivi驱动分析
虚拟摄像头vivi驱动分析:1.通过分析xawtv这个应用程序所涉及的系统调用来间接分析vivi的驱动程序。我们用运行时显示的信息作为切入点:strace -o xawtv.log xawtv 将运行xawtv后的打印信息保存入xawtv.log中,并且自动运行xawtv。2.xawtv的几大函数:1.v4l2_open2.v4l2_read_atrr/v4l2_write_att原创 2015-09-29 14:56:12 · 1242 阅读 · 0 评论 -
几种进程间的通信方式
# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共原创 2015-10-16 22:33:14 · 350 阅读 · 0 评论 -
大端模式和小端模式
端模式分为:小端字节序和大端字节序,也就是字节在内存中的顺序。 小端字节序:低字节存于内存低地址;高字节存于内存高地址。如一个long型数据0x12345678 0x0029f458 0x78 0x0029f459 0x56 0x0029f45a 0x34 0x0029f45b 0x12原创 2015-10-16 22:02:06 · 294 阅读 · 0 评论 -
ubuntu以串口方式打印信息
设置ubuntu让它从串口0输出printk信息:1.打开ubuntu在点击启动虚拟机之前,先点击下面的Edit virtual machine settings选项。然后在新界面中add->serial port->next->output to file->finish即可。然后启动虚拟机。2.在命令行中操作:vi /etc/default/grub。对这个文件进行修改一处为:GRUB原创 2015-10-01 14:55:36 · 3643 阅读 · 0 评论 -
UVC设备驱动之描述符分析
1.一般的USB设备有设备描述符、配置描述符、接口描述符、端点描述符四种描述符。特定的USB设备还有它自己独特的描述符。2.驱动程序中先判断id_tables数组,查看插入的这个USB设备是否可以用当前这个驱动程序来驱动。在UVC驱动中这个数组定义为:static struct usb_device_id myuvc_ids[] = {/* Generic USB Video Clas原创 2015-10-01 14:53:02 · 2276 阅读 · 0 评论 -
USB摄像头驱动分析
写一个USB摄像头驱动程序:怎么写摄像头驱动程序:1.分配video_device结构体:video_device_alloc函数2.设置 .fops .ioctl_ops(里面需要设置11项) 如果要用内核提供的缓冲区操作函数,还需要构造一个videobuf_queue_ops结构体。3.注册:video_register_device函数 怎么写USB摄像头驱动程序:原创 2015-09-29 17:43:26 · 1259 阅读 · 1 评论 -
从0写USB摄像头驱动程序
从0写USB摄像头驱动程序1.构造一个usb_driver结构体.id_table.probe1.分配video_device结构体2.设置3.注册2.下面具体分析probe函数中的内容:定义:static struct video_device *myuvc_vdev;myuvc_vdev=video_device_alloc();注册:video_reg原创 2015-10-01 14:58:41 · 3011 阅读 · 0 评论 -
在LCD上显示USB摄像头图像
1.摄像头读取数据,放在缓冲区videobuf中,格式有YUV,MJPEG,RGB等。然后再进行转换成LCD所支持的RGB格式。除此之外还需要进行数据的缩放,以适合各种格式的分辨率,最后将数据写入framebuffer。这样LCD控制器将会framebuffer中的数据显示到LCD上。2.先构造一个videodeivce结构体,成员有表示格式的iPixelFormat成员,表示大小的iWidt原创 2015-10-11 19:24:05 · 2997 阅读 · 0 评论 -
面试准备
1.LCD驱动分为两层:抽象层fbmem.c文件和具体操作硬件的s3c2410fb.c文件,应用层调用open等函数会调用驱动中fbmem.c文件中file_operations结构体中的open等函数,这些函数中会根据次设备号从一个fb_info结构体数组中作为下标找到调用的fb_info结构体中的 open等函数,而这些fb_info结构体的具体实现都是由下层的s3c2410.c文件实现的,这原创 2015-10-12 12:07:30 · 396 阅读 · 0 评论 -
spi裸板程序
/////////////////////////////////oled.c#include "oledfont.h"#include "gpio_spi.h"#include "s3c24xx.h"static void OLED_Set_DC(char val) //输出的是命令还是数据{ if (val) GPGDAT |= (1原创 2016-02-10 19:27:26 · 540 阅读 · 0 评论 -
SPI驱动分析
http://blog.csdn.net/droidphone/article/details/23367051 还是这个博主的,文章写得超好,值得一读。原创 2016-02-17 12:18:57 · 343 阅读 · 0 评论 -
分层分离的总线驱动模型分析
1.分层:核心层和设备相关层分开。 分离:把硬件相关的代码和驱动分离开来,要写dev.c drv.c两个文件。 2.总线bus有dev和drv两个链表。driver中probe成员,插入设备时,总线设备驱动调用device_add时:(1).会将device结构体放入bus的device链表(2).从bus的drv链表中取出每一个drv,用bus的match函数测试是否是否支持原创 2015-09-27 12:55:31 · 370 阅读 · 0 评论 -
v4l2框架分析
1.如何写驱动程序: 1.构造file_operations结构体实现其中的open,read,write成员。 2.告诉内核:register_chrdev(主设备号,&file_operations,name); 3.入口函数,出口函数。2.对于复杂的字符设备驱动程序,使用分层概念。如对于LCD设备驱动程序分为两层:fbmem.c和硬件相关层两层。fb原创 2015-09-27 12:51:29 · 642 阅读 · 0 评论 -
Linux那些事读书笔记
1.在drivers/usb/core目录下放置一些核心的代码,包括初始化整个USB系统,初始化root hub,初始化host controller的代码。 2.在drivers/usb/storage目录下放置USB驱动程序,如usb.c文件。 3.在drivers/usb/core目录下放有原来的host controller代码。在drivers/usb/目录下后来又设置一原创 2015-09-27 12:58:58 · 490 阅读 · 1 评论 -
mini2440启动telnet服务
secureCRT串口终端中quick connect 快速连接后,协议选择:telnet 主机名为mini2440的IP地址:192.168.1.230,端口:23 点击连接即可。然后进入登陆界面,账号为:root密码为: fa 这样就OK了。如果想要查看当前进程,输入 ps ; 如果想要查看进程的CPU占用率,可输入top原创 2015-07-26 22:56:29 · 425 阅读 · 0 评论 -
主机虚拟机和开发板ping不通的问题
连接好开发板附带的网线连好mini2440开发板和PC机,查看pc机和开发板IP。查看PC机IP方法1,win+r,cmd,ipconfig(即菜单->运行cmd进入界面输入ipconfig指令)在这里需要查看的是以太网IP地址:可以看到IP地址为:192.168.1.125掩码为:255.255.255.0网关为:192.168.1.1这是我已经修原创 2015-07-26 22:59:09 · 586 阅读 · 0 评论 -
电子书之触摸屏点击翻页
今天重新将内核改为友善的内核,没有用第二期触摸屏的驱动,就发现正常了,而且硬件之前改为所谓的四线键控。说明之前第二期的触摸屏驱动在mini2440上有问题,即使改过硬件仍然有问题,这个触摸屏驱动我也是醉了,算了,可用就行了,睡了,嘿嘿。原创 2015-07-16 22:05:07 · 990 阅读 · 0 评论 -
uboot之配置分析
1.在uboot源码包中分析其中Makefile。因为编译流程为:1.make mini2440_config 2.make2.makefile中有:mini2440_config : unconfig@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0//表示执行第一个make mi原创 2015-08-25 10:09:08 · 392 阅读 · 0 评论 -
bootloader分析
bootloader编写步骤:1.初始化硬件:关看门狗、设置时钟 、设置SDRAM、初始化NAND_FLASH2.把内核从NAND_FLASH读到SDRAM3.设置“要传给内核的参数”4.跳转执行内核原创 2015-08-25 10:10:22 · 316 阅读 · 0 评论 -
USB驱动程序分析
1.对于每个PC来说,都有一个或者多个称为主机(host)控制器的设备,该主机控制器和一个根集线器(Hub)作为一个整体。2.每个Host控制器其实就是一个PCI设备,挂载在PCI总线上。驱动开发人员应该给Host控制器提供驱动程序,用usb_hcd结构体表示。3.USB Host控制器都会自带一个集线器,称为根集线器,其又可接子集线器。4.USB设备是插在US原创 2015-08-25 10:12:08 · 1059 阅读 · 0 评论 -
韦东山USB驱动笔记
1.USB总线驱动程序负责:识别USB设备,给USB设备找到对应的驱动程序2.USB设备接入后,USB总线驱动程序会发出某些命令想获取设备信息(描述符),USB设备必须返回“描述符”给PC。3.USB接口只有4条线:5V,GND,D-,D+。接在USB总线上的每一个USB设备都有自己的编号(地址),这个编号是USB设备刚接入时USB总线驱动程序分配的。PC机想访问某个USB原创 2015-08-25 13:37:45 · 2305 阅读 · 1 评论 -
USB总线驱动程序
USB驱动程序框架:app:------------------------------------------------------------------------------------USB设备驱动程序内核 -------------------------------------------------------------------------U原创 2015-08-25 15:01:46 · 798 阅读 · 0 评论 -
IIC总线分析
1.2440芯片内含义IIC控制器,其中有IICSCL,IICSDA线与外设IIC设备相连,如AT24C02/AT24C08等。IIC规范中要求具有主从结构体,从设备不能发起数据传输。主设备先发送含有设备地址的命令,IIC总线上的各个IIC设备发现正好对应为自己的地址,则接受处理这个命令。2.IIC总线开始数据传输的起始信号为:SCL为高电平的时候,SDA由高电平开始产生一个下降沿原创 2015-08-29 08:28:04 · 690 阅读 · 0 评论 -
CMOS摄像头简单分析
CMOS摄像头:ov7740摄像头模块1.输出分辨率有:VGA(640*480) QVGA(240*320) CIF(352*288)或者更小的任意大小。2.有效感光阵列:656*4883.镜头大小:1/5寸4.输入时钟频率:6-27MHz。即OV7740摄像头模组的工作频率范围5.扫描模式:连续扫描(P)。如果是隔行扫描为(I)6.像素点颗粒的大小:4原创 2015-08-29 08:26:28 · 2300 阅读 · 2 评论 -
WIFI网卡使用分析
1.当接上WiFi网卡的开发板去连接周围的WiFi热点(AP)进行上网时,开发板处于WiFi的STA模式,而热点称为AP模式,开发板要去连AP;当接上WiFi网卡的开发板处于AP模式时,就相当于手机开机便携式热点功能,这时让其他设备来连开发板,其他设备看做处于STA模式。2.选型:查看WiFi网卡的厂家ID和设备ID,USB_Vendor和USB_Product原创 2015-09-27 12:56:37 · 391 阅读 · 0 评论 -
输入子系统分析
1.在driver目录下的input目录中存放的是具体的内核输入子系统的源码。鼠标、键盘、游戏鼠标这些都是属于输入子系统,同时也属于USB子系统。2.步骤:(1).分配一个input_dev结构体:如buttons_devs=input_allocate_device()这个函数不仅实现了申请和初始化了相应的内存,还初始化了部分的input结构体成员。(2)设置能产生哪类事件:set_原创 2015-09-27 12:57:44 · 328 阅读 · 0 评论 -
笔记
package com.yun.hello.controller.weathercontroller;import com.itextpdf.text.BaseColor;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Element;import com.itextpdf.text.pdf.*;...原创 2018-03-27 00:25:38 · 249 阅读 · 0 评论