自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第二章 变量和基本类型

(禁止转载   (虽然我写的不好。。。。))前言说来话长,本人是一个不合格的程序员,最起码我觉得我水平很菜。本科就读于北方一个没落的211,学的是机械设计制造及其自动化,基本上本科没有接触过什么“高深”的关于编程的项目,不过稀里糊涂计算机二级考过了,但是C语言并没有学的很好,什么指针啦只是大概知道。本科阶段唯一让我欣慰的就是踩了狗屎运保研到南京的一所985,然后选择了机械电子专业,在这里特...

2018-10-02 18:14:43 192

原创 关于RTSP_RTP_RTCP协议的深刻初步介绍

前记作为一个软件工程师,特别是偏向安防应用或者互联网对接,都应该听说RTSP,RTP,RTCP等协议的概念。本篇博文详细介绍一下关于RTSP等协议,让读者更加方便的理解透彻。另外后续还会从RTSP的应用方面继续编写。三个协议简单描述RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网

2021-09-24 09:49:00 1604 1

原创 epoll高效IO复用

前记前两篇博文讲了一下select 和poll,其实select和poll实现机制相同,内核调用函数也相同,只不过poll突破了最大监听连接数目的限制。今天讲一下epoll。对比select,poll,epoll的改进还是很令人兴奋:支持一个进程打开较大数目的文件描述符(fd)select模型对一个进程所打开的文件描述符是有一定限制的,其由FD_SETSIZE设置,默认为1024/2048。这对于那些需要支持上万连接数目的高并发服务器来说显然太少了,这个时候,可以选择两种方案:一是可以选择修改F

2021-09-24 09:47:21 139

原创 IO多路复用之poll函数

select 机制缺点:1.每次调用 select(),都需要把 fd 集合从用户态拷贝到内核态,这个开销在 fd 很多时会很大,同时每次调用 select() 都需要在内核遍历传递进来的所有 fd,这个开销在 fd 很多时也很大。2.单个进程能够监视的文件描述符的数量存在最大限制,在 Linux 上一般为 1024,可以通过修改宏定义甚至重新编译内核的方式提升这一限制,但是这样也会造成效率的降低但是select最大的优点是许多平台都支持。poll机制介绍select() 和 poll(

2021-09-24 09:46:26 432

原创 IO复用之select模型

IO复用io复用在linux系统中是一个很重要的技术,复用在这里的理解我认为是单个进程或者线程用某种模式可以对多个io进行处理,而不是一个进程或者线程只处理一个io。一般情况下,处理socket通信一个线程或者进程在处理读写的时候要么阻塞在那一直等要么非阻塞然后过会查看是否可读可写,这样会浪费大量的资源,假如需要对多个套接字进行处理读写那么得开很多个线程或者进程,IO复用技术就是解决这个问题。本节详细讲解io复用模型 select。select模型及函数定义模型机制select模型如

2021-09-24 09:45:02 331

原创 深刻理解socket编程中的read&&write

前记本文内容基本复制粘贴来自互联网博客,由于实在写的太好,所以特此再总结下。先放个图,下图来自以下链接:https://www.cnblogs.com/junneyang/p/6126635.html,在这里感谢博主总结的这个图!该图基本总结了wirite和read的各种情况,下面再详细进行说明吧!以下内容很多摘自https://www.cnblogs.com/promise6522/archive/2012/03/03/2377935.htmlread/write 回溯首先,.

2021-09-24 09:43:50 2139

原创 stm32 单片机 flash以ram的理解

背景本篇文章将介绍一下ARM架构的ARM-M系列单片机的flash以及ram,以及程序启动的逻辑。提前申明,本人所写的本文是汲取网上的知识以及自己的理解,如果哪里讲的不对请广大网友指正。本文先以stm32f429ZIT6这个型号的单片机进行介绍。STM32F429ZIT6微控制器2048KB FLASH,256 KB SRAM,SDRAM 64Mbits。最高180MHz主频FLASH先说flash ,它在嵌入式系统中的功能可以和硬盘在PC中的功能相比。它们都是用来存储程序和数据的,好比是

2021-09-24 09:41:55 2348

原创 Maixduino_esp32_fimware 编译以及烧写

下载仓库分别下载两个仓库到同一个目录:clone 勘智板载固件mkdir -p ~/espcd ~/espgit clone https://github.com/sipeed/Maixduino_esp32_fimware.gitclone esp32 环境固件git clone --branch v3.3 --recursive https://github.com/espressif/esp-idf.git配置编译环境本文档是以Linux 64位环境来进行配置,参考的是

2021-09-24 09:40:40 404

原创 K210 调试GDB 经验

背景:K210是riscv架构的芯片,本文以K210开发板或者sipeed Maxbit 开发板为硬件背景,介绍调试方法。调试器K210 Maxbit 开发板 sipeed的硬件连接线的对应关系:Win10环境:https://canaan-creative.com/developer下载 Kendryte OpenOCD for win32将下载的目录kendryte-openocd-0.2.3-win32\kendryte-openocd\bi

2021-09-24 09:39:39 635

原创 利用openocd 在windows环境下GDB调试(调试器 stlinkv2)STM32

背景:传统的嵌入式行业从业者基本会使用MDK KEIL进行开发,首先说明该软件是一个出色的IDE集成开发软件,编译器是ARMCC,并提供debug的功能。但是在Mac用户和Linux用户却没办法原生使用该软件,所以只能依靠其他方法进行调试。本文介绍利用openocd 在win环境下调试的方法,Mac和linux环境下方法基本类似硬件:硬件所需stm32开发板一个,本文使用的是正点原子stm32f407。调试器一个,本文使用的是stlink v2通过swd接口连接起来。所需软件:本

2021-09-24 09:36:52 4275 1

原创 TCP的三次握手与四次挥手的深刻总结

TCP协议报文构成TCP/IP协议是个协议族,包含各种协议这里不再叙述,主要分为链路层、网络层、传输层、应用层。这里主要讲一下面向连接过程的传输层TCP协议。它的报文结构如下图:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个...

2019-06-20 00:40:16 323

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第八章 IO库

第八章已经是属于C++primer中的第二部分了,我们在这里慢慢学习并接触这个玩意~。我们的程序己经使用了很多旭库设施了。我们在1.2节(第5页)己经介绍了大部分10库设施:istream(输入流)类型,提供输入操作。 ostream(输出流)类型,提供输出操作。 0工n, 个istream对象,从标准输入读取数据 CO t, 个ostream对象,向标准输出写入数据。 Cerr,...

2019-01-28 11:01:38 88

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第七章 类

   前一部分好多都是讲语法的,基本偏C,没有涉及到类的描述。这一章,写一下关于面向对象的重点,就是类!!类这个东西是面向过程C语言中没有的东西,是面向对象的一个最大的东西。基本所有的语法都会围绕这个东西,在这里我只把自己认为比较容易漏的知识点写一下。    以下这段话建议大家读十遍:  类的基本思想是数据抽象(data abstraction)和封装(encapsulation)。数据抽象是...

2019-01-04 23:51:38 181

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第六章 函数

好久没有更新了,虽然自己最近有点忙但是还有更新的,最近办了几件大事,只有我知道~~。但愿将来能过好吧!!闲话少说吧~ 函数是命了名的代码块,代码是存储在代码段里面的。6.1 函数基础一个典型的函数定义包括以下几个部分,返回类型、函数名字由0个或者多个形参构成。我们在调用函数的过程中,一是用实参初始化函数对应的形参,二是将控制权转移给被调用函数。此时,主调函数(calling functio...

2018-12-16 17:47:17 235 2

原创 python利用pyqt5所写的gui利用pyinstaller和cxfreeze打包exe遇到的坑!

本文python是3.5  pyqt5  win7(和win10比差别不大) pycharm社区版我的python程序不仅加载了qt的模块还引入ctypes模块,加载了windows的动态库.dll 文件。关于python的安装和pyqt5的安装不在这里说明了,其他的博客写的已经很多了。这里可以参照下面的博客:https://www.cnblogs.com/dalanjing/p/69...

2018-11-21 13:48:27 2636

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第五章 语句

本章介绍的主要内容就是关于一些if  else 之类的语句,整体比前三章来说还是简单的。最近我开始在学python,因为工作项目上要用到它,发现python的整体语法结构还是比较简单的,相对来说,C++其实复杂点。但是C++的基础让我学习python上手很快。所以,我还是比较觉得C++就好九阳神功,有了九阳神功学习其他会事半功倍,而我的九阳神功练得还不是很好,所以继续看书,加强锻炼。这是题外话了,...

2018-11-18 00:34:55 156

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第四章 表达式

4.1 基础C++定义了一元运算符合二元元算符,其中,一元运算符指的是例如取址符&和解引用符*。二元运算符例如==  +  * ,这些,二元运算符意思就是参与运算对象至少2个。还有一个三元运算符,作用于三个对象,其实函数调用也可以理解为一种特殊的运算符。        C/C++中有左值和右值的定义,这个其实还是有点重要的。左值:左值从名词解释直接可以认为是在赋值语句的左侧,而右值...

2018-11-09 00:06:11 210

原创 菜鸟的C++ 知识盲区(跌倒)到知识发现(爬起)---------第三章 字符串 向量 数组

最近忙了好久,实在没时间写,但是我还要坚持下去,虽然阅读量很低,我也不在意。无所谓了~C++ 大不了黑洞呗!!!~~~3.1 命名空间的using声明头文件主要哈,不要包含using声明,是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里面有某个using申明,那么使用了该头文件的文件就会都有这个申明。对于某些程序来说,是最不希望看到的,由于不经意包含了一些名字,然而会产生史料未...

2018-10-22 00:20:54 208 1

空空如也

空空如也

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

TA关注的人

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