自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FDT设备树(dts)和CCF框架

在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data。 社区必须改变这种局面,于是PowerPC等其他体系架构下已经使用的Flattened Device Tree(FDT)进入ARM社区的视野。Device Tree

2020-08-24 16:17:09 743

原创 DRM学习

DRMDRM是Linux下的一个驱动架构,全称直接渲染架构。引入之初是为了display显示数据的传输,现在广泛应用于嵌入式领域,并且为显卡GPU提供一部分服务。显卡上具有一些接口如HDMI、VGA等,所以相应的就包含了他们的驱动。DRM可分为三部分:libdrm 将控制底层硬件的ioctl做成API给用户空间用。位于中间层。KMS(Kernel Mode Setting)内核模式设置(KMS)是在内核空间(而不是用户空间)设置显示分辨率和深度的方法,还可显示画面,显示buffer的切换,多图层的

2020-08-24 15:12:57 695

原创 HDCP学习理解

HDCP Higt-Bandwidth Digital Content Protect高宽带数字内容保护。本文适用于1.4HDCP。每个HDCP设备都包含一个私钥(Device Private Keys),由40个56bits的值组成的密钥集。还有一个密钥选择向量(KSV Key Selection Vector),这是一个40bits的二进制数。以上都是数字内容保护公司分配给HDCP设备的,是独一无二的。HDCP协议认证分为三个部分:第一部分 验证对方的密钥是否已授权假设发送端为A,接收端为

2020-08-07 15:15:43 2582 2

原创 HDMI的InfoFrame数据

InfoFrame 包括很多种Vendor-Specific InfoFrameAVI InfoFrameSource Product Descriptor InfoFrameAudio InfoFrameMPEG Source InfoFrame之前学习到过E-EDID,他是HDMI中Sink到Source的信息,是接收器的属性块,从DDC通道进行传输。InfoFrame就是Source到Sink的信息,是输出源的信息,是输出源的信息,包括很多种类,从TMDS进行传输。AVI InfoF

2020-07-30 12:00:56 1849

原创 EDID块学习

EDID(Extended Display Indentification Data)扩展显示识别数据,是VESA在制定DDC显示器数据通道通信协议时,制定的有关显示器识别数据的标准。DCC通道就是PC通过访问显示器存储器以获得EEPROM中的EDID而建立的通道。一般VGA、DVI、HDMI或者DP接口都会用到EDID,由于显示能显示的视频画质细节不断提升,显示器也具备了多样化的视频参数选择,能显示许多不同类型的视频,但是为了保护显示器能正常接受自己能力范围内能显示的视频数据,就衍生出了EDID块,PC

2020-07-24 11:58:49 1364

原创 spdif数字传输规范

s/pdif是SONY和philips公司共同规定的数字信号传输规范,其实就是在AES/EBU上进行改动的家用版本。IEC60958的标准规范囊括了以上两个规范。spdif采用了双相相位编码(BMC),是将时钟信号和数据信号混合在一起的编码方式。spdif主要是传递PCM格式的音频,也可以传输RAW文件格式。spdif的消息是串行发送的,一个block为单位,一个block有192个frame,一个frame有两个sub frame,而每个Frame储存了两个声道的一组采样信号(Sample)分别为c

2020-07-22 10:15:48 6123 1

原创 I2S总线协议

I2S总线协议是Philip公司制定的一种音频传输协议,一共包含三条信号线BCLK(SCLK)位时钟也叫串行时钟,每发送一个位数据就有一个脉冲,FBLCK=2x 采样频率x采样位数;LRCLK(WS)声道选择信号,0电平是右声道,1电平是坐声道。FLRCLK=采样频率,采样频率一般采用32KHz、44.1KHz、96KHz、192KHz。SD 串行数据 用二进制补码的形式表示音频数据。MCLK 主时钟 MCLK=fs(数据脉冲的个数) x 采样频率I2S标准模式数据在LRCLK电平变化后的第

2020-07-21 14:27:26 920

原创 色彩空间学习

RGBRGB是应用于计算机图形的颜色模型,是最流行的模型。使用RGB简化了系统的架构与设计,应为这个颜色空间已经存在很多年了,有很多的软件例程可以实现使用RGB颜色空间的系统设计。’RGB颜色空间最大的优点就是适合于显示系统,直观且容易理解。但是对彩色描述上的应用还有以下不足:(1) RGB颜色空间利用三个颜色分量的线性组合来表示颜色,因此不同的色彩难以用精确的数值来表示,定量分析困难。细节难以数字化表示,不适合科学研究。(2) 在RGB颜色系统中,三个颜色分量之间是高度相关的,即只要亮度改变,.

2020-07-20 11:27:36 416

原创 联发科面试总结

昨天刚面试的联发科,今天就来消息了分享一下自己面试联发科的感受面试总共三面第一面是两人一起面,具体问题如下:我看你做了内核移植,交叉编译链是什么,那个公司的,什么版本?答:免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是 Codesourcery,第三是Linora。作为学习,答到以上三个就行。能说一下具体操作系统移植的过程么?答:内核启动流程:...

2019-09-19 17:43:12 5369

原创 cJSON格式数据包打包及解析

cJSON是JSON格式在C语言环境下的库,包含cJSON.c和cJSON.h两个文件。现在大多数的项目数据格式都是采用的量级很小的JSON格式,提高了代码的性能。cJSON库函数打包流程:数据成员->JSON对象赋值->打包好的JSON格式字符串解析流程:JSON格式字符串->JSON对象获取成员->数据成员JSON格式字符串 char *jso...

2019-08-07 20:54:39 2170

原创 input子系统分析

前面对于按键的驱动有了大致的了解,赋予虚拟总线的概念,注册设备、驱动,互相探测,在探测函数中分配设备号、传递硬件设备信息给自定义结构体、初始化fops结构体、注册cdev结构体,这就是一个按键类型的驱动模型:https://blog.csdn.net/qq_40215005/article/details/90384563但是作为一个操作系统,这样的设备实在是太多了,如果能在虚拟总线的基础上再进...

2019-07-24 14:06:40 359

转载 嵌入式经典(volatile 堆栈 大小端)

题一,堆和栈的区别是?题二,Volatile与Register的区别是?题三,ARM里的大端格式和小端格式分别是什么意思?题一答案:(1)存储内容不同栈:在函数调用时,栈中存放的是函数中(最底下是函数调用后的下一条指令)的各个参数(局部变量)。堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容由程序员分配。(2)管理方式上不同栈:由系统自动分配并释放空间。 例如,声明在函数...

2019-07-19 20:12:00 247

原创 s3c2440 ds18b20驱动编写

上一篇单总线时序分析:https://blog.csdn.net/qq_40215005/article/details/96435251这是ds18b20驱动大致结构硬件初始化BYTE ds18b20_reset(void) 复位脉冲和应答脉冲函数BYTE ds18b20_reset(void){ s3c2410_gpio_cfgpin(S3C2410_GPG(0), S3C...

2019-07-18 21:24:42 468

原创 单总线协议分析

1-wire,即单线总线,又叫单总线。近年来,美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)推出了一项特有的单总线(1-Wire Bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,但是和i2c不同的是从低位到高位传输。因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单总线适用于单主机系统,能...

2019-07-18 19:15:14 1483

原创 s3c2440lcd寄存器配置

s3c2440有5个寄存器LCDCON1ENVID:LCD 输出信号控制位 为1表示使能BPPMODE:屏幕类型的对应BPP的选择加粗样式PNRMODE:屏幕类型的选择MMODE :对于STN LCD设置VM的反转频率CLKVAL :设置像素时钟 对于TFT: VCLK=HCLK/((CLKVAL+1)*2) HCLK=100Mhz的情...

2019-07-17 19:58:49 440

原创 LCD驱动及framebuffer子系统解析

之前实现了lcd上显示图片,现在来看看framebuffer子系统的主要结构与input子系统不同,framebuffer子系统有着自己的结构,内核空间内分为核心层和驱动层,核心层负责提供API给应用调用,那么每个帧缓冲设备都对应一个fb_info的结构体,而驱动层就进行fb_info结构体的初始化,并注册到内核中驱动层fbmem.cfbmem.c 处于Framebuffer设备驱动技术的...

2019-07-17 19:51:33 850

原创 Framebuffer图片显示和代码解析

看了这么多天的lcd,今天打算在屏上显示图片,并分析下代码显示红白蓝黑四种颜色先贴代码,从学长哪里copy过来的#include <unistd.h>#include <stdio.h>#include <fcntl.h>#include <linux/fb.h>#include <stdlib.h>#include ...

2019-07-16 19:47:05 1614

原创 QT初体验c语言嵌套使用

最近在玩触摸屏和lcd驱动,想了解一点图形化界面的东西,所以就接触到了QT,QT已经发展到5.10版本了,做图形化界面基本都要学习QT,配合触摸屏上操作可以实现很多功能,我的板子是fl2440的,带有一个lcd电阻触摸屏,由于是arm920t的架构,相对来说比较老了,然后就编译了5.7qt,编译过程非常痛苦,,,编译到最后快完成告诉我说架构太老了,没办法只有降qt版本试试了,然后用5.6qt就成功...

2019-07-16 15:18:18 4954

原创 s3c2440lcd主要参数及特性

dada

2019-07-15 14:03:33 689

原创 网络编程之套接字socket

我们知道网络层提供ip地址的概念来标识不同网络中的主机,而且传输层提供端口的概念来标识主机中的进程(这个端口和路由器中的端口概念不同,路由器的端口用来标识下一个转发)通过【ip,端口号】的组合方式,按理说就可以进行网络的进程通信。网络通信现在网络编程无非C/S模式和B/S模式,C/S模式即为客户端/服务器,是最经典的模式,QQ、网易云,你下载了他们家得软件,就是他们家得客户了,打开软件,你就是...

2019-06-07 18:23:46 145

原创 linux内核--input子系统(触摸屏驱动分析)

前面对于按键的驱动有了大致的了解,赋予虚拟总线的概念,注册设备、驱动,互相探测,在探测函数中分配设备号、传递硬件设备信息给自定义结构体、初始化fops结构体、注册cdev结构体,这就是一个按键类型的驱动模型:https://blog.csdn.net/qq_40215005/article/details/90384563但是作为一个操作系统,这样的设备实在是太多了,如果能在虚拟总线的基础上再进...

2019-06-04 19:34:56 2069

原创 s3c2440触摸屏驱动修改

为了使能我们的触摸屏,我们必须对原有的触摸屏驱动做一些小的修改,添加相应的支持。先添加我们的结构体,对一些参数进行设置添加我们的ts的结构体,我们可以看到s3c24xx_ts_set_platdata()就是将添加的触摸屏的信息传给s3c_device_ts.dev.platform的,我们还要注册adc和ts的设备结构体到paltform设备总线上去,这里上面的写法是错误的,&a...

2019-05-26 22:15:38 264

原创 linux--s3c2440LCD屏驱动修改学习和ctags的使用

最近要研究LCD屏的驱动,对驱动模块的框架有一定了解后就可以比较送的看linux驱动源码了,恰好s3c2440里面自带的有驱动源码,所以先从现有的样例入门,而且板子lcd显示的每次就只有半个屏幕,一定是驱动源码有问题,或者是make menuconfig配置有问题为了查看源码,下载了我们的看源码利器ctags,在成千上万的c文件里穿梭自如,ctags -R * 为arm目录下文件创建索引文件ta...

2019-05-24 17:34:57 377 1

原创 linux按键platform驱动样例学习

按键驱动platform的编写流程和led驱动的差不了太多,只是多了一个中断机制和延时消抖的过程,延时消抖可以用内置定时器来做。platform_device首先来看设备结构体static struct platform_device s3c_button_device = { .name = "s3c_button", .id = 1, ...

2019-05-21 19:37:12 334 1

原创 linux驱动虚拟总线platform_driver和platform_driver(LED驱动)

VID & PID每一个设备都有一个设备id和厂商id,设备管理器–>硬件属性–>详细信息–>属性–>硬件id,驱动和设备分离从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform...

2019-05-18 20:23:21 968 1

原创 linux驱动、设备、应用之间的关联

硬件层面拥有各个领域功能的外设,这个叫做设备。与硬件紧密相连的内核,内核中的驱动将设备的硬件抽象为一个个接口,方便上层调用。应用就是服务用户、实现用户逻辑且位于操作系统至上的计算机程序。那么操作系统是如何让应用使能设备完成相应的工作呢?驱动又是如何与设备进行绑定的呢?驱动怎样提供系统调用接口给应用呢?首先要理解的是,linux皆是文件,在linux下写驱动,都是对文件的操作,一个个设备可以...

2019-05-17 16:57:20 1585 2

原创 linux驱动hello入门

1 /********************************************************************************* 2 * Copyright: (C) 2013 Guo Wenxue<[email protected]> 3 * All rights reserved...

2019-05-12 14:16:14 167 1

原创 linux体系架构

Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核抽象出一层系统调用接口,用于用户的调用访问。系统调用是linux的最小功能单位,是不能简化的操作,...

2019-05-09 15:08:08 507

原创 ubifs根文件系统制作

ubifs文件系统简介UBIFS(Unsorted Block Image File System,无排序区块图像文件系统)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一。由于Nand Flash容量的暴涨,JFFS2、Yaffs2等皆无法操控大的Nand Flash空间,IBM、Nokia工程师Thomas Gleixner、Artem Bityutskiy等人...

2019-05-05 21:34:58 547

原创 基于flash的根文件系统的移植(jffs2)

ubifs 和 jffs2 根文件系统根文件系统就是基于flash的文件系统,与传统的文件系统ext2、ext3、ext4不同,他们都是针对不同的硬件而诞生的,不同的根文件系统性能指标不同,那么ubifs和jffs2就是比较常见的用的比较多的根文件系统,jffs2是很早期的根文件系统,ubifs是linux内核2.6之后才产生的一种新型根文件系统。jffs2 专门针对Norflash设计的...

2019-05-04 19:24:42 1069

原创 添加dm9000网卡的驱动

最近跑了一个操作系统,系统是跑起来了,基本命令都有了,但是ifconfig的时候发现,并没有显示,ifconfig -a的时候发现有显示,但是并没有没有自动分配IP地址,分析:ifconfig没有显示command not found,说明不是命令本身出了问题,要想有ip地址,必须有网卡,网卡必须要有驱动添加驱动:vim /arch/arm/mach-s3c2440/mach-smdk244...

2019-05-02 11:04:02 118 1

原创 initramfs根文件系统移植

基于ubuntu14.04,fl2440开发板的根文件系统移植所谓根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。文件系统的制作其实并没有想像中那么难。一个基本的文件系统应该包括: busybox (提供 shell 命令集)、配置文件(用来初始化和布局你的...

2019-04-29 19:16:36 453

原创 fl2440-linux内核3.0移植

首先想让代码能在arm板上跑起来,就得用上交叉编译器,我用的crosstools源码网站:http://crosstool-ng.org/download/crosstool-ng/ 完全兼容 比较大。然后配置啥的在网上有。linu内核下载地址:https://www.kernel.org/pub/linux/kernel/v3.x/内核目录树:  arch  block  cry...

2019-04-27 21:24:05 183

原创 armFl2440烧录流程

烧录的硬件平台:armfl2440最基本的电源线、网线、usb转串口线、J-Link需要备齐。J-Link是用来烧录初始化程序的外部驱动。网线和usb转串口是用来和pc通信还有数据传输的。...

2019-04-27 19:56:14 321

原创 TLV学习

TLV的基本定义TLV即tag length value,广义上来讲他并不是一个固定格式的协议,他可以是人们自己定义的用来网络通讯的协议,只有遵循了定义人的装包解包流程才能建立通讯。从应用层HTTP协议,到超文本置标语言HTML(HyperText Mark-up Language),再到可扩展置标语言XML(Extensible Markup Language),它们提供了数据的格式化存储、...

2019-04-09 18:27:27 6447

原创 多线程学习

什么是多线程那什么是线程呢?线程可以理解成是在进程中独立运行的子任务。比如QQ.exe运行时就会有很多的子任务在同时运行。比如,好友视频线程、下载文件线程、传输数据线程、发送表情线程等。这些不同的任务或者说功能都可以同时运行,其中每一个任务完全可以理解成是“线程”在工作,传文件、听音乐、发送图片表情等功能都有对应的线程在后台默默地运行。任务1和任务2是两个完全独立、互不相关的两个任务。多进...

2019-03-28 22:26:44 94

原创 MQTT简单学习

什么是MQTT协议MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。...

2019-03-28 15:45:13 345

原创 linux网络编程多进程学习

关于多进程对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程方法。与DOS和早期的Windows不同,Unix/Linux系...

2019-03-24 17:43:04 180

原创 网络编程——域名解析

我们通常在网页上访问一个网址,例如访问百度时,我们通常是输入www.baidu.com,这种表示是代表百度的域名,实际上当我们在访问这个网址的时候,操作系统会自动向DNS服务器发送请求,来获取百度的ip,完成域名到ip的转换。在计算机网络中,通常我们我们在访问一个网址时,输入的是该网址的域名,而不是ip,因为像百度这种网址的ip通常是公有ip,这种ip是会变的,我们当然不会去记它会变的ip,而通...

2019-03-23 12:19:56 556

原创 ftp客户端——学习笔记

转自:https://blog.csdn.net/wumenglu1018/article/details/53749452FTP概述文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命令。服务器收到命令后给予响应,并执行命令。FTP 协议与...

2019-03-22 21:28:35 112 1

空空如也

空空如也

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

TA关注的人

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