自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子皿--啥都不会的菜鸟

努力学习,希望有朝一日能够从事后台服务器开发相关工作!

原创 文章汇总

文章目录1 单片机1.1 硬件设计1.2 MCU1.2.1 STM321.3 RTOS1.3.1 RTOS设计相关2 嵌入式2.1 Linux命令2.2 开发环境搭建3 C/C++3.1 计算机系统3.1 编码3.2 数制3.2 汇编3.2.1 X86 16位汇编3.3 基础语法3.3.1 编程小...

2019-09-16 14:41:17 2427 0

原创 音频编码的基本概念

文章目录1 音频编码的基本概念1.1 常见的音频编码格式1.2 AAC简介 1 音频编码的基本概念 1.1 常见的音频编码格式 原始的 PCM 音频数据也是非常大的数据量,因此也需要对其进行压缩编码。和视频编码一样,音频也有许多的编码格式,如:WAV、MP3、WMA、APE、FLAC、AAC 等等...

2020-10-24 17:40:02 70 0

原创 视频编码的基本概念

文章目录1 视频编码的基本概念1.1 为什么需要压缩编码?1.2 常见的视频编码格式 1 视频编码的基本概念 1.1 为什么需要压缩编码? 我们知道,在计算机的世界中,一切都是 0 和 1 组成的,音频和视频数据也不例外。由于音视频的数据量庞大,如果按照裸流数据存储的话,那将需要耗费非常大的存储空...

2020-10-24 17:22:17 40 0

原创 正则表达式基本概念

文章目录1 正则表达式基本概念1.1 元字符 1 正则表达式基本概念 1.1 元字符 元字符解释: ^表示规则字符串的开始 $表示规则字符串的结束 +表示匹配次数≥1次 *表示匹配任意次数(可为0次) {n,m}表示匹配次数至少n次,至多m次 下面为正则验证邮箱地址的示例,用户名@域名 808...

2020-10-23 17:32:37 35 0

原创 字符串类String

文章目录1 字符串类的初步设计1.1 历史遗留问题1.2 字符串类的初步设计1.3 代码实现 1 字符串类的初步设计 1.1 历史遗留问题 C语言不支持真正意义上的字符串。 C语言用字符数组和一组函数实现字符串操作。 C语言不支持自定义类型,因此无法获得字符串类型。 从C到C++的进化过程中引入...

2020-10-22 14:44:01 40 0

原创 QueueToStack

文章目录1 使用队列实现栈1.1 问题分析1.2 解决方案设计1.3 实现思路1.4 代码实现1.5 分析 1 使用队列实现栈 1.1 问题分析 本质为,用队列“先进先出”的特性实现栈“后进先出”的特性! 1.2 解决方案设计 1.3 实现思路 1.4 代码实现 QueueToStack.h:...

2020-10-20 16:34:32 27 0

原创 StackToQueue

文章目录1 使用栈实现队列1.1 问题分析1.2 解决方案设计1.3 实现思路1.4 代码实现1.5 分析 1 使用栈实现队列 1.1 问题分析 用栈实现队列等价于用“后进先出”的特性实现“先进先出”的特性。 1.2 解决方案设计 1.3 实现思路 1.4 代码实现 StackToQueue....

2020-10-20 16:27:57 27 0

原创 LinkQueue

文章目录1 链式队列的概念1.1 队列的链式存储实现1.2 链式队列的设计要点2 使用LinkList实现链式队列2.1 继承关系图2.2 代码实现 1 链式队列的概念 对于StaticQueue,当数据元素为类类型时,StaticQueue的对象在创建时,会多次调用元素类型的构造函数,影响效率。...

2020-10-20 10:52:48 51 0

原创 StaticQueue

文章目录1 StaticQueue实现1.1 队列的顺序实现1.2 StaticQueue设计要点1.3 StaticQueue实现要点(循环计数法)2 StaticQueue实现3 小结 1 StaticQueue实现 1.1 队列的顺序实现 1.2 StaticQueue设计要点 类模板 ...

2020-10-19 09:10:54 95 0

原创 Queue

文章目录1 队列的概念1.1 队列的概念1.2 队列的特性1.3 队列的操作1.4 继承关系图1.4 队列的实现2 代码实现 1 队列的概念 1.1 队列的概念 队列是一种特殊的线性表。 队列仅能在线性表的两端进行操作: 队头(Front):取出数据元素的一端。 队尾(Rear):插入数据元素...

2020-10-19 09:10:40 40 0

原创 LinkStack

1 LinkStack的实现 1.1 StaticStack的缺陷 由于StaticStack内部使用了原声数组,当存储的元素为类类型时,StaticStack的对象在创建时,会多次调用元素类型的构造函数,影响效率。因此,我们需要链式栈来避免这种缺陷。 1.2 链式栈的存储实现 1.3...

2020-10-17 09:38:52 156 0

原创 StaticStack

文章目录1 栈的顺序实现1.1 示意图1.2 StaticStack设计要点1.3 继承关系图1.4 接口实现2 代码实现 1 栈的顺序实现 1.1 示意图 1.2 StaticStack设计要点 类模板: 使用原声数组作为栈的存储空间。 使用模板参数决定栈的最大容量。 ...

2020-10-16 09:21:31 44 0

原创 Stack

文章目录1 栈的概念1.1 栈的定义1.2 栈的特性1.3 栈的操作2 栈的实现2.1 继承关系图2.2 类的实现3 代码实现 1 栈的概念 1.1 栈的定义 栈是一种特殊的吸纳行表。 栈仅能在线性表的一端进行操作。 栈顶(Top):允许操作的一端。 栈底(Bottom):不允许操作的一端。 ...

2020-10-16 08:52:49 52 0

原创 Linux内核对设备树的处理

文章目录1 内核对设备树的处理1.1 dtb 中每一个节点都被转换为 device_node 结构体1.2 哪些设备树节点会被转换为 platform_device1.3 怎么转换为 platform_device2 platform_device 如何与platform_driver 配对3 内...

2020-10-15 14:34:24 58 0

原创 设备树的引入及简明教程

文章目录1 设备树的引入与作用2 设备树的语法2.1 设备树语法概览2.2 Devicetree 格式2.2.1 DTS 文件的格式2.2.2 node 的格式2.2.3 properties 的格式2.3 dts 文件包含 dtsi 文件2.4 常用属性2.4.1 #address-cells、...

2020-10-14 17:14:31 78 0

原创 LED 模板驱动程序的改造:总线设备驱动模型

文章目录1 概述2 代码实现3 代码分析3.1 注意事项 1 概述 原来的框架: 要实现的框架: 2 代码实现 代码结构如下: board_A_led.c: #include <linux/module.h> #include <linux/fs.h> #inc...

2020-10-12 14:37:48 43 0

原创 驱动进化之路:总线设备驱动模型

文章目录1 驱动编写的3种方法1.1 传统写法1.2 总线设备驱动模型1.3 设备树2 在 Linux 中实现“分离”:Bus/Dev/Drv 模型2.1 模型2.2 driver和device的匹配规则2.3 函数调用关系2.4 常用函数2.5 如何写程序 1 驱动编写的3种方法 以 LED 驱...

2020-10-08 15:00:48 48 0

原创 DualCircleList

文章目录1 双向循环链表的实现1.1 继承层次图1.2 双向循环链表的设计思路2 代码实现3 思考 1 双向循环链表的实现 直接使用Linux内核链表实现双向循环链表。 1.1 继承层次图 1.2 双向循环链表的设计思路 数据结点之间在逻辑上构成双向循环链表,头结点仅用于结点的定位。 实现思路...

2020-10-08 13:57:01 74 0

原创 IP协议的输出处理

文章目录1 IP协议的输出处理1.1 原理介绍1.2 代码实现 1 IP协议的输出处理 1.1 原理介绍 IP数据包的封装: IP包头部数据格式(RFC791): 1.2 代码实现 代码组织如下: xnet_tiny.h中添加如下代码: #define XNET_VERSION_IPV4 ...

2020-09-29 16:43:38 44 0

原创 音视频编解码的国际标准

文章目录1 音视频编解码的国际标准1.1 音视频编解码相关的组织1.2 H.265介绍 1 音视频编解码的国际标准 1.1 音视频编解码相关的组织 音视频编解码主要有如下三大组织推动并发展: ITU(国际电信联盟)。 ISO/IEC。 JVT(Joint Video Team,视频联合工作组)。...

2020-09-29 14:06:11 52 0

原创 IP协议的输入处理

文章目录1 原理概述2 代码实现 1 原理概述 先来看一下IP协议所处的位置: IP协议的功能: IP数据包的格式: 2 代码实现 先来看一下工程组织结构: xnet_tiny.h中添加如下代码: #pragma pack(1) typedef struct _xip_hdr_t ...

2020-09-26 15:04:54 48 0

原创 offsetof宏和container_of宏

文章目录1 offsetof宏1.1 宏的作用1.2 编译器做了什么 1 offsetof宏 1.1 宏的作用 offsetof用于计算TYPE结构体中MEMBER成员的偏移位置。 1.2 编译器做了什么 注意: 在操作系统的环境下,读和写0地址的内容都是非法的,会导致程序异常停...

2020-09-26 10:41:54 76 0

原创 FFMpeg的基本用法

文章目录1 提取音视频流1.1 提取音频流1.2 提取视频流2 截取音视频片段 1 提取音视频流 1.1 提取音频流 ffmpeg431.exe -i ande_302.mp4 -vn -acodec copy -f mp4 -y ande_302-vn.mp4 1.2 提取视频流 ffmpeg...

2020-09-26 10:36:20 67 0

原创 驱动设计的思想:面向对象/分层/分离

文章目录1 面向对象2 分层3 分离 1 面向对象 字符设备驱动程序抽象出一个 file_operations 结构体; 我们写的程序针对硬件部分抽象出led_operations 结构体。 2 分层 上下分层,比如我们前面写的 LED 驱动程序就分为 2 层: ① 上层实现硬件无关的操作,比如...

2020-09-26 10:02:45 43 0

原创 FFMpeg的基本介绍

文章目录1 FFMpeg的基本概念1.1 FFMpeg是什么1.2 FFmpeg 的组成1.3 FFmpeg 主要功能 1 FFMpeg的基本概念 1.1 FFMpeg是什么 FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 采用 LGPL 或 GPL 许可...

2020-09-25 09:59:24 80 0

原创 音频的基本概念

文章目录1 音频的基本概念1.1 音频的概念1.2 音频相关的术语 1 音频的基本概念 1.1 音频的概念 音频数据的承载方式最常用的是脉冲编码调制 脉冲编码调制,即 PCM。 在自然界中, 声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢? 那就是把 声音数字化,即转换为数字信号。 ...

2020-09-24 16:35:45 57 0

原创 视频的基本概念

文章目录1 视频的基本概念1 视频的概念1.2 视频相关的术语 1 视频的基本概念 1 视频的概念 由于人类眼睛的特殊结构,画面快速切换时,画面会有残留( 视觉暂留),感觉起来就是连贯的动作。所以 ,视频就是由一系列图片构成的。 视频是什么? 视频(Video)泛指将一系列静态影像以电信号的方式加...

2020-09-24 15:01:43 43 0

原创 ARP的超时重新请求

文章目录1 原理2 代码实现 1 原理 问题:ARP表项是否一直有效? 实现原理如下: 2 代码实现 先看下代码组织结构: prot_pcap.c中增加如下代码: /** * 获取自程序启动以来,过去了多长时间 * @return 程序的系统时间 */ const xnet_time...

2020-09-23 17:28:25 82 0

原创 LED驱动硬件操作

文章目录1 LED驱动操作硬件1.1 怎么写 LED 驱动程序?1.2 ioremap函数介绍2 代码实现 1 LED驱动操作硬件 1.1 怎么写 LED 驱动程序? 详细步骤如下: ① 看原理图确定引脚,确定引脚输出什么电平才能点亮/熄灭 LED ② 看主芯片手册,确定寄存器操作方法:哪些寄存器...

2020-09-23 14:53:44 61 0

原创 DualLinkList

文章目录1 单链表的缺陷![在这里插入图片描述](https://img-blog.csdnimg.cn/2019030510214774.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0c...

2020-09-22 17:58:57 61 0

原创 变量初始化

文章目录1 C++11中新增变量初始化方式 1 C++11中新增变量初始化方式 代码如下: #include <iostream> using namespace std; #define USE /* 测试C++11中的变量初始化 */ static void test_v...

2020-09-22 11:49:41 33 0

原创 LED驱动框架

1 LED驱动框架 1.1 回顾字符设备驱动程序框架 1.2 对于 LED 驱动,我们想要什么样的接口? 1.3 LED 驱动要怎么写,才能支持多个板子?分层 把驱动拆分为通用的框架(leddrv.c)、具体的硬件操作(board_X.c): 以面向对象的思想,改进代码: 抽象出一个结构体:...

2020-09-22 11:24:39 58 0

原创 ARP输入处理

文章目录1 ARP输入原理1.1 原理介绍1.2 代码实现 1 ARP输入原理 1.1 原理介绍 收到ARP包时该如何处理? 处理流程: 实现原理: 1.2 代码实现 代码结构: xnet_tiny.h添加如下代码: #define XARP_ENTRY_FREE 0 ...

2020-09-19 17:23:12 228 0

原创 CircleList

文章目录1 循环链表的实现1.1 什么是循环链表1.2 循环链表的逻辑构成1.3 循环链表的继承层次结构1.4 循环链表的实现思路1.5 循环链表的实现要点2 代码实现 1 循环链表的实现 1.1 什么是循环链表 概念上: 任意数据元素都有一个前驱和一个后继。 所有的数据元素的关系构...

2020-09-19 14:00:38 96 0

原创 HTTP协议简介

文章目录1 HTTP协议简介1.1 HTTP协议简介1.2 客户端请求1.3 服务端响应 1 HTTP协议简介 1.1 HTTP协议简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传...

2020-09-17 14:43:18 54 0

原创 无回报ARP的生成

文章目录1 无回报ARP的生成1.1 原理概述1.2 代码实现 1 无回报ARP的生成 1.1 原理概述 1.2 代码实现 xnet_tiny.h中添加如下代码: #pragma pack(1) #define XARP_HW_ETHER 0x1 ...

2020-09-17 14:30:17 52 0

原创 SharedPointer

文章目录1 继承关系类图![在这里插入图片描述](https://img-blog.csdnimg.cn/20190227085332118.png)2 SharedPointer设计要点3 代码实现 1 继承关系类图 2 SharedPointer设计要点 SharedPointer肯...

2020-09-16 14:36:13 125 0

原创 文件锁

文章目录1 文件锁1.1 文件锁概述1.2 示例代码 1 文件锁 1.1 文件锁概述 并发对文件I/O操作的影响,解决办法? 文件锁 用法: man 2 fcntl。 头文件: #include <unistd.h> #include <fcntl.h> 函数定义: ...

2020-09-16 10:29:02 46 0

原创 ARP初始化

文章目录1 ARP初始化1.1 原理概述1.2 实现原理1.3 代码实现 1 ARP初始化 1.1 原理概述 解决办法: ARP实例: 1.2 实现原理 需要考虑如下问题: ARP表象定义如下: 1.3 代码实现 xnet_tiny.h中添加如下代码: #define XNET_IPV...

2020-09-14 16:42:53 42 0

原创 SmartPointer

文章目录1 继承关系类图2 代码实现 1 继承关系类图 2 代码实现 SmartPointer.h #ifndef SMARTPOINTER_H #define SMARTPOINTER_H #include "pointer.h" namespace LemonLib...

2020-09-14 09:50:41 64 0

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