自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 usb_host重新分析(1)

usb驱动简单介绍

2022-10-07 21:34:03 993 1

原创 TGA(MOV)格式转YUV422

一:tga图像格式https://blog.csdn.net/blues1021/article/details/45438673tga存储格式:移小端模式存储,包括格式规定以及RGB数据,也就是BGR形式存放(直接读入即可),图片左上角的一行像素可能放在文件内存中的最后一行,或者文件内存中的一行就是左上角一行数据,tga头文件记录了调色板偏移大小和规格,图像像素的偏移大小和规格,常见格式...

2020-02-27 10:53:09 782

原创 linux驱动之芯片级移植

一:底层基础概念为了在soc上运行linux,需要提供大量的底层支持,定时器节拍,中断控制器,SMP启动,CPU的热插拔,底层的GPIO,时钟,pinctrl,DMA硬件的封装。二:内核节拍驱动:内核是基于节拍设计,一般SOC将linux移植到自己芯片上,会从芯片内部找一个定时器,,并配置为HZ的频率,调用内核核心层的timer_tick函数,从而引发系统里的行为,eg:arch/arm/...

2020-02-16 18:32:45 1079

原创 linux3536的H264编码记录(YUV422转H264)

一:首先进行YUV422对YUV420的转换https://blog.csdn.net/li_wen01/article/details/53767245YUV422的数据格式分布:YUV420数据格式分布:YUYV是交叉分布存储,每两组Y公用一组UV,YUV420是顺序存储,每4个Y共用一组UV分量,所以我们需要把YUYV的Y分量全部读取,然后隔行读取UV分量(eg:...

2020-01-14 11:19:19 1966

原创 HIsi3536移植rtmp(一):编译环境

一:交叉编译rtmp,实现hisi将得到的摄像头数据经过rtmp推流,硬件条件hisi3536https://blog.csdn.net/u014016672/article/details/72809528首先搭建环境:需要的库:openssl和zlib库1:移植编译库openssl库 :这里有openssl-1.0.2m,步奏:1:tar -zxvf openssl-1.0.2...

2020-01-06 15:54:02 1085

原创 tcp,ip的基础知识

一:硬件基础知识;TSO,GSO,LRO,GRO,RSS的概念:TSO(TCPSegmentation Offload),网卡对tcp数据包分片,减轻cpu负荷的一种技术,也需要硬件支持TCP的校验计算的分散,聚集等功能。GSO(GenericSegmentation Offload):尽可能的推迟数据分片直至发送到网卡驱动之前。检查网卡是否支持分片功能,如果支持,直接发送到网卡,如果不支持,...

2019-12-25 16:30:46 728 1

原创 tcp/ip协议流程分析

一:tcp分析:应用层,1:tcp协议流程分析:程序流程:Af_inet.c(/net/ipv4)文件中;用于tcp,ip协议接口的初始化。1:inet_init:表示会话层初始化1.1:协议层注册:1.2:添加所有的基本控制1.3:设置tcp,urp,icmp等初始化1.4:ipv4初始化struct proto tcp_prot = { //用于初始化tcp协议的接...

2019-12-25 16:29:48 567

原创 uboot调试过程:用来调试phy不通的过程(am3352)

一:uboot的启动过程的基本知识uboot的基本移植过程:分为步奏1 ,步奏2;代码入口:u-boot/arch/arm/cpu/u-boot.lds连接文件。ENTRY(_start):代码的入口函数。\board\ti\am335x\u-boot.lds保存了U-boot数据代码段在内存中的存放情况启动步奏:_start标号:arch\arm\cpu\armv7\start....

2019-11-07 20:24:57 5104

原创 98dx166switch交换芯片接口移植(一):SMI接口以及MII接口

一:交换机的原理机制信号转发的网络设备,介入交换机的任意两个节点共享信号通路,工作与OSI的数据链路层,同事可以进行多个端口的数据传输,交换机上电后会自动创建一个端口地址表,叫做MAC地址表,,会记录mac地址和哪个端口连接,然后自动学习,每次进到交换机的信息,都会记录下穿送过来的设备地址的mac地址,过程就是,学习mac地址,广播mac地址,查找mac地址,配对mac地址。二:switc...

2019-10-25 16:38:56 3527

原创 网卡驱动(hisi3536网卡驱动,以及stmmac层)

一:基本概念应用程序最终以套接字的形式完成网络设备的接口。,对网络设备定义四个层次:网络协议接口层(数据包的发送接收,向网络层协议提供统一的数据包收发接口,舍得上层协议独立于具体的设备,(ip,arp等)),网络设备接口层(结构体net_device,用于描述具体的网络设备属性和操作的结构体,规划了具体操作硬件的 设备驱动功能层的结构),设备驱动功能层(数据包发送,中断处理(数据包接收),是驱...

2019-10-17 10:27:03 3694

原创 mkefile编写记录

查看的文档:https://blog.csdn.net/weixin_38391755/article/details/80380786基础知识:arm-linux工具:GCC是一套交叉编译工具链,支持分布编译,反汇编,可用于,输出预处理后的C++源程序,生成二进制目标文件,生成静态库,生成可执行程序,转换文件格式,gcc:编译的前端程序,用于间源文件变异成目标文件,as汇编器(将...

2019-08-15 09:33:17 280

转载 linux下解压文件命令

l 解压缩命令: 命令格式:tar -zxvf 压缩文件名.tar.gz。解压缩后的文件只能放在当前的目录。 解压全部命令参考: tar –xvf file.tar 解压 tar包 tar -xzvf file.tar.gz 解压tar.gz tar -xjvf file.tar.bz2 解压 tar.bz2 tar –xZvf file.tar.Z...

2019-06-23 12:06:47 525

原创 linux设备驱动模型简介:文件系统sys以及dev(包括hutpiug机制的创建)

https://blog.csdn.net/newdye/article/details/76223530https://blog.csdn.net/newdye/article/details/77774070一:设备驱动模型简介:为内核建立一个统一的设备模型:设备模型包括多种不同的任务:电源管理和系统关机,与用户空间的通信(sysfs虚拟文件与设备模型密切相关,并且向外界提供系...

2019-06-21 16:09:39 846

原创 uvc摄像头驱动从0编写

一:将ucv摄像头驱动编译生成uvc模块,我这边采用的是海思3536提供的linux系统时linux-3.10模块生成参考一下地址http://www.coin163.com/it/1305375058925494518:其中模块生成是:Device Drivers -> Multimedia support -> Video capture adapters -&gt...

2019-05-23 15:08:25 4691

原创 linux设备树(设备驱动)

一:设备树的简单概念设备树:由一系列的节点,属性组成,节点本身包含子节点(属性:成对出现的名称和值)设备树可描述的信息:(原先大多数被编码在内核中)1:CPU的数量和类,2:内存基地址和大小 ,3:总线和桥,4:外设连接,5:中断控制和中断使用,6:GPIO控制器,7:时钟控制器,时钟使用情况。它是电路板上CPU,总线,设备组成的树,Bootloader会将这棵树传递给内核,并根据...

2019-04-18 14:25:04 4230

原创 进程管理(一)进程的诞生

一:进程的诞生进程:一段可执行代码,还包括打开文件,挂起信号量,内存管理,处理器的状态,一个或者多个执行线程和数据段。(一般也称任务)表示:struct task_struct表示。进程拥有独立的资源空间,线程共享资源空间。1:init进程(linux启动的第一个进程)称为0号进程或者idle进程start_kernel->rest_init->cpu_startup...

2019-04-15 14:18:20 259

原创 内存管理(四):缺页中断处理(读奔跑吧linux内核笔记)

一:缺页中断处理在调用malloc后只建立了虚拟地址空间,没有分配内存对应的物理内存,当进程访问没有建立映射关系的虚拟内存时,会产生缺页中断(考虑的问题比较多:匿名页面,KSM页面,pagecache页面,写时复制,私有映射,共享映射)。缺页异常处理依赖于处理器的体系架构,因此缺页异常底层的处理流程在内核代码中的特定结构部分。__vectors_start是中断异常处理的起点,具体到缺...

2019-04-11 20:23:10 2799

原创 内存管理(三)虚拟内存映射(读奔跑吧linux内核总结)

一:vmallochttps://www.cnblogs.com/arnoldlu/p/8251333.htmlvmalloc创建内核空间的连续的虚拟地址的内存块。(主要是在vmalloc区域找到合适的hole,然后逐页分配内存从屋里上填充hole)特点:可能连续,虚拟地址连续,物理地址不连续,size页对齐(不适合小内存分配)。struct vm_struct(vmalloc描述符)...

2019-04-11 15:40:09 1898

原创 内存管理(二)物理内存分配以及slab分配器(读奔跑吧linux内核总结)

一:物理页面分配https://www.cnblogs.com/arnoldlu/p/8250734.html(参考)linux内存管理是以页面为单位进行分配的,对内存的管理是通过伙伴系统管理的。1.1:伙伴系统分配物理内存分配物理内存的接口函数:alloc_pages(分配一个或者多个连续的物理页面,分配的页面只能是2的整数次页面,参数位一个为分配源码,一个为分配阶数)。in...

2019-04-09 19:22:36 653

原创 linux-I2c驱动

参考文档:https://blog.csdn.net/wq690968346/article/details/50921039(i2c_client的四中方法)https://blog.csdn.net/pengliang528/article/details/782624411:最新的I2c模型:设备,总线,驱动模型。分层模型(1):核心层:提供统一的I2C接口操作函数,提供了总...

2019-04-09 16:31:01 244

原创 rtmp协议移植注意

一:RTMP简介https://www.jianshu.com/p/a77156c60868RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写,该协议基于TCP,是一个协议簇包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种,RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的...

2019-04-09 16:30:35 957

原创 内存管理(读奔跑吧linux内核的总结)

内存操作简介:所有执行的进程都有一定的数量的内存,用来存放从磁盘载入的程序的代码,或者存放自身用户输入的数据,,因为内存的管理方式不同,内存的用途也不同,有些内存静态回收,有些动态分配,回收。主要包括代码段,数据段,BSS段,堆,栈等操作。BBS和堆通常是连续存储的:内存位置上是连续的,代码段和栈是被独立存放的一:物理内存初始化:1.1:物理内存的大小32位(4GB虚拟地址空间(用户空...

2019-04-09 10:41:32 1890

原创 uboot启动流程以及分析

最近在做板卡的调试工作,需要调试板卡,所以先熟悉一下uboot启动过程(这里主要分析代码流程):1:uboot:作用需要设置cpu状态,中断状态,MMU状态,其中包括arch级初始化:关中断,设置svc模式,时钟,看门狗寄存器的设置。板级初始化设置:堆栈环境,串口,定时器,环境变量。I2C设置等代码重定向,板级初始化操作sd,nandflash,网络,中断等初始化的过程,进入命令行,等...

2019-03-21 19:40:34 1534

原创 mmap虚拟映射(DMA机制)

一:顺便看看mmap的映射程序:(吧物理内存映射到用户空间)直接提供驱动程序,内存映射提供用户程序直接访问设备内存的能力:意味着用户程序的一段内存与设备内存关联起来,mmap的限制:必须以page_size为单位进行映射,内核只能在页表一级上对虚拟地址进行管理,直接访问内存数据的接口。http://blog.csdn.net/zjujoe/archive/2009/05/15/4189...

2018-11-13 15:46:37 3189

原创 usb的hub分析

1:在入口函数usb_init调用hub的初始化retval = usb_hub_init();int usb_hub_init(void){ if (usb_register(&hub_driver) < 0) { //注册hub驱动到usb的子系统总线上 printk(KERN_ERR "%s: can't register hub driver\n...

2018-11-13 09:49:38 7204

原创 linux--framebuffer驱动框架

一:framebuffer?帧缓冲(一屏幕数据)(简称fb),内核中虚拟出的设备,向应用层提供一个统一标准的显示接口(frambuffer)。容许应用层在图形模式下直接对显示缓冲区进行读写操作。framebuffer用来操作物理显存的位置,换页机制等操作。使用framebuffer时,linux将显卡置于图形模式下。framebuffer的设备文件: /dev/fb0。1:...

2018-11-12 18:01:31 387

原创 usb host分析

usb主机控制器简介:规格OHCI(非PC主板),UHCI(PC主板的usb驱动),EHCI(USB2.0成本低,驱动复杂),xHCI(主要面向usb3.0驱动),1:usb入口函数:usb_init参考文档:https://blog.csdn.net/chenliang0224/article/details/79692045注册一个总线bus_register:bus_type...

2018-11-10 21:01:12 4112 1

原创 linux基于urb的以及usb的数据传输

Urb:usb的请求块(include/linux/usb.h)负责与usb设备通信。以一种异步的特定的方式从USB设备特定的端点接收发送数据,设备驱动可以为单个端点分配多个urb,或多个端点共用单个urb。urb的创建周期:由usb设备驱动程序创建,分配一个特定usb的特定端点,usb驱动递交给usb核心,由usb主控制器驱动处理,他从设备进行usb传送,usb结束,usb主控制器程序通...

2018-11-09 15:59:30 2907

原创 Linux usb驱动开发(基础)

最近想学几个基于linux的驱动开发:(想想还是从usb驱动开始记录,毕竟USB的驱动的开发的讲解比较多,学习比较快)(做个笔记,忘了就进来看看)参考文档:文档写的比较基础:https://blog.csdn.net/zqixiao_09/article/details/50984074https://www.cnblogs.com/general001/articles/2319...

2018-11-09 15:02:20 7289

原创 rtmp协议基本知识总结

此文档是想到哪写到哪:参考文档:一些控制协议消息(消息类型ID可以在下列文档中查找)https://blog.csdn.net/lipengshiwo/article/details/53267674源码文件参考:https://blog.csdn.net/leixiaohua1020/article/details/42105049客户端和服务器交互文档:https://...

2018-04-13 14:18:56 209

原创 海思开发VOU层(视频输出层基本概念)

1:VOU层::模块主动从内存响应位置读取视频和图形数据,并且通过相应的显示设备输出显示设备:高清设备和标清设备。DHDX和DSDX   注意:高清设备可以同时绑定两个视频层。视频层:固定在每个设备上面对应的视频层 ,  可以动态绑定视频层:PIP层。通道:通道归属于视频层管理,对于每个视频层来说,上面的通道都是独立的。对于系统绑定,应该用视频层和通道号进行绑定配置。对于回写的图像作为绑定源时,需...

2018-03-16 15:24:10 4799

原创 H264的解码解析

概念简介:1:nal的作用:简称网络抽象层,负责H264的格式化数据并且提供头信息,以保证数据适合各种信和存储介质上的传输。nal的结构是:NAL头+RBSP(所谓的RBSP是原始编码数据后面加了结尾比特) =1帧数据RBSP为数据块:数据块分为A:SODB最原始的编码数据,B:RBSP原始编码数据后面添加了结尾比特。数据内部可以分为:1:参数集:P...

2018-03-06 16:35:42 2521

原创 海思Hifb层(一些原理性的东西,无实例说明)

HIFB层的简介(我们主要处理的是图形层数据)1:Hisilicon Framebuffer是海思平台用于管理叠加图形层的模块,增加层间colorkey,层间colorkey mask,层间alpha,原点偏移等功能。HIFB一个子设备号对应一个叠加层,HIFB可以管理多个图形叠加层(意思就是说。HIFB可以支持多个子设备,支持多路输出)。2:HIFB支持的标准功能:a:将物理显存映射到虚拟内存中...

2018-03-05 15:54:18 6677

原创 海思芯片图形层的开发指南与方案

海思开发指南:1:图形层界面的开发:图形二维加速器(TDE),硬件对图形图像的处理    HiFB用于管理叠加图形层:Hisilicon Framebuffer在framebuffer的基础上增加层间colorkey,层间Alpha等扩展功能。可以支持2路高清显示设备(HD0~HD1)和5个图形层(G0~G5)(G3,G4为鼠标层)):fb设备文件有5个/dev/fb0~/dev/fb4(显示设备...

2018-03-01 15:23:05 9029

空空如也

空空如也

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

TA关注的人

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