自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上。通常用于机器与机器(M2M)通信和物联网(IoT)。

2024-06-07 14:48:31 404

原创 DNS协议

域名系统(Domain Name System,缩写:DNS)是互联网的一项基础服务,可以将域名转换为IP。DNS本质是一种可以将域名和IP地址相互映射的多层次结构分布的数据库系统。如我们访问百度,都是输入www.baidu.com而不是输入百度的ip地址,域名更容易记。DNS协议位于OSI模型的应用层。一般是基于UDP传输层协议,端口号是53。CMD中可以使用nslookup命令查看域名IP地址。

2024-05-31 18:02:24 126

原创 车载TBOX介绍

TBOX介绍。

2024-05-25 15:40:28 519

原创 进程间通信方式

两个或更多进程访问同一块内存,当一个进程改变了这块 地址中的内容的时候,其它进程都会察觉到这个更改。

2024-05-25 15:38:15 453

原创 linux对libcurl库封装

C++可以使 用libcurl库进行http通讯网络编程。关于libcurl库基本函数解释: 调用curl_global_init()初始化libcurl 调用curl_easy_init()函数得到 easy interface型指针 调用curl_easy_setopt()设置传输选项 根据curl_easy_setopt()设置的传输选项,实现回调函数以完成用户特定任务 调用curl_easy_perform()函数完成传输任务 调用curl

2020-11-04 11:32:46 416

原创 gdb调试coredump

gdb调试coredump我们知道程序崩溃的时候会生成coredump,可有时候我们却找不到相应的core文件。我们应该进行相应的配置。1、ulimit使用ulimit -c命令查看是否能生成core文件。若为0则不会生成core文件。使用ulimit -c unlimited设置无限大,则任意情况下都会产生core文件。2、查看core文件路径使用cat /proc/sys/kernel/core_pattern命令查看core文件的路径。我们一般先配置core文件的生成路径:echo

2020-10-20 15:02:41 203

原创 c++重载、重写、遮蔽

c++重载、重写、遮蔽一、重载函数重载是指两个函数的函数名相同,但是函数的参数个数或参数类型不同。函数重载可发生在顶层函数或同一个类中,不需要构成继承关系。是在编译期绑定,并不属于多态。class base{public: base(); base(int a); base(int a,int b); base(base&); }...

2020-10-10 10:54:21 261

原创 shell学习笔记(二)

shell学习笔记(二)shell学习shell学习笔记(二)一、shell字符串二、条件语句三、循环语句四、shell过滤器一、shell字符串字符串表示:字符串可以由单引号’ '包围,也可以由双引号" "包围,也可以不用引号。str1=c.biancheng.netstr2="shell script"str3='C语言中文网'单引号和双引号前面已经解释过了。不用引号的话字符串之间不能有空格。字符串拼接:直接将两个字符串放在一起就好了,简单粗暴。#!/bin/bashname=

2020-09-30 17:08:05 156

原创 shell学习笔记(一)

shell学习笔记(一)shell学习shell学习笔记(一)一、shell变量二、变量的替换三、位置参数一、shell变量定义:变量=值注意:赋值的等号前后不能有空格使用:在变量的前面加上$,推荐给所有变量加上花括号{ }author="严长生"echo $authorecho ${author}单引号和双引号的区别:以单引号’ '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希

2020-09-30 11:43:36 102

原创 Makefile学习(二)

Makefile学习(二)Makefile学习Makefile学习(二)一、makefile常用函数二、命令回显与执行三、makefile的嵌套执行一、makefile常用函数1、字符串替换函数,函数使用格式如下$(subst from,to,text)OBJ=$(subst ee,EE,feet on the street)all: @echo $(OBJ)执行 make 命令,我们得到的值是“fEEt on the strEEt”。2、取后缀名函数,函数使用格式如下:$(s

2020-09-29 10:48:30 140 1

原创 Makefile学习(一)

Makefile一、makefile书写规则targets : prerequisites command相关说明如下:targets:规则的目标,可以是 Object File(一般称它为中间文件),也可以是可执行文件,还可以是一个标签;prerequisites:是我们的依赖文件,要生成 targets 需要的文件或者是目标。可以是多个,也可以是没有;command:make 需要执行的命令(任意的 shell 命令)。可以有多条命令,每一条命令占一行。命令的开始一定要使用Ta

2020-09-28 17:29:04 304

原创 ffmpeg将avi视频转换为MP4

使用ffmpeg将avi格式的视频转换为MP4ffmpeg -i test.avi -c copy -map 0 test_video.mp4生成的视频文件太大,可使用264进程压缩ffmpeg -i test.avi -c:a copy -c:v libx264 -map 0test_video.mp4

2020-09-21 17:25:40 2306

原创 Linux下v4l2采集视频

v4l2采集视频V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。v4l2为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。只能在linux下使用。它使程序有发现设备和操作设备的能力。它主要是用一系列的回调函数来实现这些功能。像设置摄像头的频率、帧频、视频压缩格式和图像参数等等。当然也可以用于其他多媒体的开发,如音频等。一、打开设备open ("/dev/video0", O_RDWR | O_NONBLOCK, 0);二、

2020-09-21 17:06:31 259

原创 TCP、UDP分析

各种通讯协议头解析1、TCP头分析二、UDP协议三、IP 头格式四 、以太网头一、TCP头分析先来分析一下TCP头的格式以及每一个字段的含义:字段 长度bit 含义 源端口号 16 该报文段是哪个服务发出的 目的端口号 16 该报文段需要哪个服务接收。进行TCP通信时,客户端通常使用系统自动选择的临时端口号,而服务器...

2020-09-16 11:03:43 253

原创 read、write和fread、fwrite

一、文件I/O操作1、打开文件函数open()需要头文件:#include<sys/stat.h> #include<fcntl.h>函数原型:int open(const char *pathname,int flags,int perms);函数参数:pathname:打开文件名(可以包含具体路径名)flags:打开文件的方式,具体见下perms:新建文件的权限,可以使用宏定义或者八进制文件权限码,具体见下函数返回值:成功:文件描述符失..

2020-09-15 17:11:36 332

原创 linux生成静态库与动态库

静态库与动态库的分析1、什么是库?库(library)是一种可执行代码的二进制形式,通常把一些常用的函数制作成各种函数库,然后被系统载入内存中运行。库内一般都是各种标准程序、子程序、相关文件以及目录等的集合,内置一些经常用的程序。主要有:1)标准子程序:例如三角函数、反三角函数等2)标准程序:例如解常微分方程等3)服务性程序:例如输入、输出、磁盘操作、调试等。由于windows与linux系统不同,因此二者的二进制库是不兼容的。Linux系统下的库分为静态库与动态库两种。二者的不

2020-09-15 09:18:15 108

原创 linux任务、进程详解

一、Linux多任务机制1、多任务机制简介多任务处理指的是用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为“任务”。相比于单任务的操作系统(例如早期的MS-DOS),当代绝大多数操作系统都支持多任务,功能增强了很多。但是,CPU(每个核心)在某一时刻只能执行一个任务,因此多任务操作系统必须解决CPU核心(单任务线性)与操作系统的任务(多任务并行)之间的矛盾。常见的解决方案是将CPU的运行分解成时间片(几十毫秒到上百毫秒不等),每个任务被分配不同的时间片来独占CPU进行运算。在该

2020-09-14 11:05:12 625

原创 USB设备名称固定

ARM板子上USB设备名称固定一、查看USB通道与设备节点的之间的关系cd /sys/class/video4linux/此时我的arm板子上接了两个USB摄像头,一个是200万的,一个是500万的。可是通过cd /dev/下ls查看,发现每个摄像头对应两个文件描述符。那是因为可能你的USB摄像头支持多种显示格式,他就会对应多个文件描述符。现在我要采集摄像头的视频,可是每次开机重启USB摄像头对应的描述符都会改变,因此我们需要固定一下设备描述符。二、修改rules规则固定设备号udev是L

2020-09-14 10:17:01 1336 1

原创 Linux下的gpio使用

Linux下的gpio使用一、gpio公式换算通过cat /sys/kernel/debug/gpio 查看gpio具体的分组情况A0~A7 是 0~7B0~B7 是 8~15C0~C7 是 16~23D0~D7 是 24~31例子:Gpio2_B2 : 56+10=66 (Gpio2是56,B2对应10)Gpio1_D2: 24+26=50 (Gpio1是24,D2对应26)二、写入gpiocd /sys/class/gpio/echo num > exp

2020-09-14 09:54:01 1096

空空如也

空空如也

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

TA关注的人

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