自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Biao

你若喜欢,目之所及皆为欢喜

转载 网卡介绍——MAC与PHY的关系分析

(一)网卡初步认识 网络适配器又称网卡或网络接口卡(NIC),英文名Network Interface Card.它是使计算机联网的设备.平常所说的网卡就是将PC机和LAN连接的网络适配器.网卡(NIC) 插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介...

2020-05-14 14:38:55 145 0

原创 面向对象编程语言(C++)复习笔记(4)——类的继承,封装,多态
原力计划

前言 面向对象的三个基本特征是:继承、封装、多态。其中, 封装可以隐藏实现细节,使得代码模块化; 继承可以扩展已存在的代码模块(类),它们的目的都是为了——代码重用; 多态则是为了实现另一个目的——接口重用; 继承 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的...

2020-04-07 20:24:52 263 0

原创 面向对象编程语言(C++)复习笔记(3)——类与对象
原力计划

一,类的概念及封装 1.什么是封装 第一层含义:封装是面向对象程序设计最基本的特性。把数据(属性)和函数(方法)合成一个整体,这在计算机世界中是用类和对象实现的。(把属性和方法进行封装)第二层含义:把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类或者对象操作,对不可信的进行信...

2020-04-07 20:23:41 156 0

原创 面向对象编程语言(C++)复习笔记(2)——函数内联,重载,模板
原力计划

(一)内联函数: 引入内联函数的目的是为了解决程序中函数调用的效率问题,这么说吧,程序在编译器编译的时候,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体进行替换,而对于其他的函数,都是在运行时候才被替代。这其实就是个空间代价换时间的i节省。所以内联函数一般都是1-5行的小函数。在使用...

2020-04-07 20:22:50 162 0

原创 面向对象编程语言(C++)复习笔记(1)——面向对象与面向过程

概述: 一般来说计算机语言要处理两个概念:数据和算法。 数据是程序使用和处理的信息,也叫属性。 算法是指程序使用的方法,也叫方法。 面向过程强调的是程序的算法方面(方法)。而面向对象强调的是程序的数据(属性) 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的...

2020-04-07 20:21:48 201 0

转载 ext文件系统机制原理剖析

将磁盘进行分区,分区是将磁盘按柱面进行物理上的划分。划分好分区后还要进行格式化,然后再挂载才能使用(不考虑其他方法)。格式化分区的过程其实就是创建文件系统。 文件系统的类型有很多种,如CentOS 5和CentOS 6上默认使用的ext2/ext3/ext4,CentOS 7上默认使用的xfs,...

2020-04-05 10:48:00 58 0

原创 磁盘碎片与闪存摩擦均衡介绍
原力计划

前言: 存储设备传统的有机械硬盘,新型的有各种闪存:U盘、CF卡、SM卡、SD/MMC卡、记忆棒、XD卡、MS卡、TF卡、PCIe闪存卡,还有ssd固态硬盘。由于物理结构上的差异,它们在可靠性上的差异都非常大。 (一)机械硬盘: 相比与闪存,机械硬盘在机械结构上要复杂很多,也正是因为它复...

2020-04-03 23:36:23 170 0

转载 闪存文件系统jffs与yaffs

JFFS2 文件系统主要包括三个功能模块:块分配模块、垃圾回收模块和磨损均衡模块,JFFS2 文件系统的不足之处包括以下几个方面: 具有较长的挂载时间: JFFS2 的挂载过程需要从头到尾扫描闪存块,需要耗费较长的时间。 磨损平衡具有随机性: JFFS2 在选择要擦除的块时,会以 99%的概率从...

2020-04-03 23:35:19 128 0

转载 磁盘I/O请求分析

对于磁盘的一次读请求,首先经过虚拟文件系统层(VFS Layer),其次是具体的文件系统层(例如Ext2),接下来是Cache层(Page Cache Layer)、通用块层(Generic Block Layer)、I/O调度层(I/O Scheduler Layer)、块设备驱动层(Block...

2020-04-03 23:32:37 124 0

原创 海思多媒体(MPP)开发(10)——通道绑定

前言: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 这里介绍M...

2020-03-31 22:10:05 915 0

原创 海思多媒体(MPP)开发(9)——视频遮挡和运动检测
原力计划

前言: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 这里介绍视...

2020-03-31 22:09:36 542 0

转载 GDB使用技巧(1)——概述与启动

GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般...

2020-03-31 21:55:39 82 0

转载 GDB使用技巧(2)——GDB命令

DB的命令概貌 启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundati...

2020-03-31 21:55:30 100 0

转载 GDB使用技巧(3)——查看栈信息

查看栈信息 当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。 下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印...

2020-03-31 21:55:19 56 0

转载 GDB使用技巧(4)——查看运行数据

查看运行时数据 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print <expr> print /<f> <expr> <expr>是...

2020-03-31 21:55:07 160 0

转载 GDB使用技巧(5)——改变程序运行

改变程序的执行 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分 一、修改变量值 修改被调试程序运行时的变量值,在G...

2020-03-31 21:54:57 70 0

原创 海思多媒体(MPP)开发(8)——获取VI中的YUV数据

前言: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 这里介绍视...

2020-03-28 09:00:54 1314 6

原创 海思多媒体(MPP)开发(0)——序言与目录
原力计划

1.背景: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 由于...

2020-03-25 21:17:56 1038 4

原创 海思多媒体(MPP)开发(1)——nvp6134驱动介绍
原力计划

简介: NVP6134C在Nextchip中的介绍是: quipped with Universal AHD™ Technology for the first time among the AHD™ product family, NVP6134C delivers highly robu...

2020-03-25 21:17:29 1087 0

原创 海思多媒体(MPP)开发(2)——视频输入(VI)
原力计划

前言: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 这里介绍视...

2020-03-25 21:17:02 965 0

原创 海思多媒体(MPP)开发(3)——视频输出(VO)与视频解码(VDEC)
原力计划

前言: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 这里介绍视频...

2020-03-25 21:16:32 759 1

原创 海思多媒体(MPP)开发(4)——视频编码(VENC)
原力计划

1.问题现象及问题原因分析 问题现象:输入和编码配置都正常,可以获取到h264码流,但是获取到的数据包非常小,图像是全黑,没有任何画面。 问题原因:可能是没有摄像头,导致没有摄像头数据输入。 根本原因:1.摄像头没插入或是接线异常,2 6134ADC芯片设置与实际摄像头输入不相符(PAL制式摄像头...

2020-03-25 21:15:54 634 0

原创 海思多媒体(MPP)开发(5)——区域管理(REGION&OSD字符显示)
原力计划

(一)基本概念理解 (1)Overlay叠加 视频叠加区域,其中区域支持位图的加载、背景色更新等功能,简单理解就是可以设置透明度,也就是下面的Alpha值 (2)Cover遮挡 视频遮挡区域,其中区域支持纯色块遮挡,与Overlay叠加不同的是它不能加载图片,不能设置透明度 (3...

2020-03-25 21:15:26 1122 9

原创 海思多媒体(MPP)开发(6)——区域管理(REGION&OSD中文显示)
原力计划

(一)字符编码介绍 1.1 ASCII码 我们知道, 在计算机内部, 所有的信息最终都表示为一个二进制的字符串. 每一个二进制位(bit)有0和1两种状态, 因此八个二进制位就可以组合出 256种状态, 这被称为一个字节(byte). 也就是说, 一个字节一共可以用来表示256种不同的状态...

2020-03-25 21:15:03 515 1

原创 海思多媒体(MPP)开发(7)——音频模块(AUDIO)
原力计划

(一)前言: AUDIO 模块包括音频输入、音频输出、音频编码、音频解码四个子模块。音频输入和输出模块通过对 Hi35xx 芯片音频接口的控制实现音频输入输出功能。 音频编码和解码模块提供对 G711、G726、ADPCM 格式的音频编解码功能,并支持录制和播放 LPCM 格式的原始音频文件。...

2020-03-25 21:14:32 696 1

原创 随便写写,随意聊聊

那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。 ...

2020-01-12 16:05:44 5029 4

原创 linux网络编程学习笔记(6)——TCP连接状态的多种判断方法

在TCP网络编程模型中,无论是客户端还是服务端,在网络编程的过程中都需要判断连接的对方网络状态是否正常。在linux系统中,有很多种方式可以判断连接的对方网络是否已经断开。 通过错误码和信号判断 通过select系统函数判断 通过TCP_INFO套接字选项判断 通过SO_KEEPALIVE...

2020-01-10 14:06:01 2537 3

原创 linux驱动学习笔记(4)——网络设备驱动

(一)体系结构 需要掌握的知识点: 1. Linux的协议栈层次 2. Linux的网络子系统架构 (二)协议栈 Linux的优点之一在于它丰富而稳定的网络协议栈。其范围从协议无关层(例如通用 socket 层接口或设备层)到各种具体的网络协议实现。 协议简介 对于网络的理论介绍一般都...

2020-01-08 22:42:50 227 0

原创 linux驱动学习笔记(3)——设备驱动模型

(一)Kobject & Kset Sysfs文件系统: "sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structur...

2020-01-08 22:42:16 168 0

原创 linux驱动学习笔记(2)——访问硬件设备

(一)mmap系统调用 功能: void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset ) 内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修...

2020-01-08 22:41:46 138 0

原创 linux驱动学习笔记(1)——字符设备驱动开发

(一)驱动程序介绍 (a)Linux驱动程序学习 知识结构: 1. Linux驱动程序设计模式(40%) 2. 内核相关知识(30%) 3. 硬件相关知识(30%) (b)驱动分类: ①字符设备:   字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现...

2020-01-08 22:41:34 6797 0

原创 海思hi3520dv400 kernel分析(3)——设备树支持

概念: FDT:Flattened Device Tree (扁平设备树)是一种数据结构,用来描述设备的硬件配置信息,它源自开放固件使用的设备树格式。 DTS:Device tree source(设备树源)是一个文本文件,以人类可读的形式描述了计算机系统的硬件资源 DTB:Device t...

2020-01-07 23:47:01 722 0

转载 海思hi3520dv400 kernel分析(2)——汇编阶段启动分析

在完成了zImage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本Image),具体的入口可以在arch/arm/kernel/vmlinux.lds.S(最终的链接脚本是通过这个文件产生的)中获得: ...... SECTIONS { #ifdef CONFIG_XIP...

2020-01-07 23:46:08 286 0

转载 海思hi3520dv400 kernel分析(1)——自解压阶段

本文内容转载自:《404blog》 在内核启动前,bootloader做如下准备工作: CPU寄存器:R0 = 0、R1 = 机器码(linux/arch/tools/mach-types)、R2 = tags在RAM中的物理地址 CPU和MMU:SVC模式,禁止中断,MMU关闭,数据Cac...

2020-01-07 23:44:22 309 0

原创 海思hi3520dv400 kernel分析(0)——Kbuild原理分析

(一)前言 kbuild,即 kernel build,用于编译 Linux 内核文件。 kbuild 对 makefile 进行了功能上的扩充,使其在编译内核文件时更加高效,简洁。大部分内核中的 Makefile 都是使用 Kbuild 组织结构的 kbuild Makefile。 Kbu...

2020-01-07 23:43:15 676 0

转载 linux网络编程学习笔记(5)——数据收发和IO操作

linu提供如下IO接口: read和write--最简单的读写函数 readn和writen--原子性读写操作 recvfrom和sendto--增加了目标地址和地址结构长度的参数 recv和send--允许从进程到内核传递标志 readv和writev--允许指定往其中输入数据或从其...

2020-01-07 23:42:04 143 0

转载 linux网络编程学习笔记(2)——进程与线程实现机制

(一)进程定义 OS系统从只能跑一个程序到能跑多个。进程可以描述程序的执行过程。 进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。 只有当一个程序被OS加载到内存中,cpu对其执行时,这个过程是动态的,称为进程。 (二)进程的组成 包含了正在运行的一个程序的所有状态信息 ...

2020-01-07 23:41:47 129 0

原创 linux网络编程学习笔记(3)——套接字选项编程

在进行网络编程的时候,经常需要査看或者设置套接字的某些特性,例如设置地址复用、读写数据的超时时间、对读缓冲区的大小进行调整等操作。获得套接字选项设置情况 的函数是getsockopt(),设置套接字选项的函数为setsockopt()。 功能描述: 获取或者设置与某个套接字关联的选项。选项...

2020-01-07 23:41:31 492 0

原创 海思(Hi3521a)uboot详细分析(9)——uboot启动分析总结

在嵌入式linux设备中,uboot的最终目的就是启动kernel。对于uboot而言,没有人把它引导起来,所以uboot首先需要把自己加载起来,然后再去引导kernel的启动,这也就可以大致的分为Uboot启动的第一阶段和第二阶段。具体内容可以参考博客《序言和目录》 (一)start.S第一阶...

2019-12-06 21:26:22 399 0

原创 海思(Hi3521a)uboot详细分析(8)——bootm启动命令解析

在uboot启动第二阶段的最后,程序进入了一个死循环,实际是在等待超时和等待用户命令的输入,然后根据不同的命令去执行uboot的不同功能,实际uboot就是一个单片机程序,只有一个进程在运行。uboot引导kernel的启动,首先是从环境变量bootcmd中获取启动命令,然后通过执行bootcmd...

2019-12-06 21:26:15 480 0

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