自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (2)
  • 收藏
  • 关注

原创 c++使用 CMarkup进行xml操作(夹带 Qt 操作)

CMarkup 是被提供用来给c++ 解析和操作 xml文件,或者xml的string流的一种框架。网站是 http://www.firstobject.com/。下载解析之后,主要使用到的,就是,Markup.cpp 和 Markup.h 文件。一、CMarkup 添加到工程...

2019-11-08 23:50:31 1208

原创 计算机网络之运输层(TCP的可靠传输的工作原理和具体实现方法)

可靠传输的工作原理和具体实现方法TCP 之所以具备极强的容错率(不担心出错),在于它有让两个运输层之间的通信可靠的方法。理想的传输条件需要有的特点:(1)传输信道不产生差错。(2)不管对方以多快的速度发送数据,接收方总是来得及处理收到的数据。实际情况满足不了这两个特点。但是可以使用一些协议,当出现差错时让对方重发数据(满足第一点)。同时当接收方来不及处理收到的数据时,及时通知对方降低速度...

2019-06-15 09:20:22 1953

原创 计算机网络之运输层( TCP 的运输连接管理)

TCP 是面向连接的协议,即是发送数据前会先建立连接。 TCP 的运输连接,分为连接建立、数据传送和连接释放。 TCP 的运输连接管理是让运输连接的建立和释放顺利进行。连接建立,即是三次握手。连接释放,是四次挥手。TCP 的连接建立:  在连接建立过程,要解决三个过程:  (1)要使每一方知道对方的存在;  (2)双方需要协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项等);...

2019-06-14 11:44:17 538

原创 计算机网络之运输层(TCP概述、socket、分组的首部格式)

TCP 协议,即传输控制协议,是运输层十分重要也复杂的协议,可靠且完备(当然,因为可靠和完备,也牺牲了一些性能)。TCP 的主要特点:(1)TCP 是面向连接的运输层协议。即是在发送数据前,必须先建立联系(当然,对于每一个数据来说,都需要前面建立联系,而第一次的联系,就没有前面的联系了,但那不是发送数据的,而是建立联系请求的)。我们一直听到的三次握手,四次挥手就是 TCP 用来建立和断开联系的...

2019-06-14 11:42:35 813

原创 计算机网络之简单概念

自己是看谢希仁老师的《计算机网络简明教程》第三版学习的,接下来的笔记主要都是他书上的知识。自己觉得重要需要记录或者有自己的理解,就记录下来。计算机网络的本质:计算机网络是由若干结点(node)和连接这鞋结点的链路(link)组成到的。结点可以是计算机(个人PC、服务器等,可以称为主机)、集线器、交换机或者路由器等。这样就形成了一个闭环的圈子。而且不同的主机都可以直接或者间接地互相联系。而后...

2019-06-11 09:59:42 399 1

原创 计算机网络之运输层(概述、端口、UDP )

在谢希仁老师的《计算机网络简明教程》里,运输层作为关键层次之一,需要掌握这些点:(1)运输层为相互通信的应用进程提供逻辑通信。(2)端口和套接字的意义。(3)无连接的 UDP 协议的特点、首部。(4)面向连接的 TCP 协议的特点和流程、首部。(5)理想情况的工作流程,如何在实际中尽可能地实现(在不可靠的网络上实现可靠传输的工作设想),停止等待协议和 ARQ 协议。(6)TCP 的滑动...

2019-06-11 09:48:28 2956

原创 计算机网络之应用层(电子邮件、动态主机配置协议和 P2P 应用)

说明:自己是看谢希仁老师的《计算机网络简明教程》学的计算机网络。这些都是自己对书里的个人总结而已,没有涉及编程之类。电子邮件:电子邮件概述  这里所说的电子邮件,是作为应用层的一个应用进程,是一个独立的应用,而不是网页版的 QQ 邮箱之类。如果是网页版的邮箱之类,本质上还是万维网这类应用进程。(网页版邮箱后面也会提一下)一个电子邮件系统有三个主要组成构件,即用户代理(可以说是客户机进程...

2019-06-05 18:45:21 1878

原创 计算机网络之应用层(文件传送协议、万维网)

文件传送协议 FTP文件传送协议 FTP 的概述文件传送协议 FTP(file transfer protocol)是互联网上使用得最广泛的文件传送协议(应用层协议),基于可靠的 TCP 协议。FTP 提供交互式的访问,允许用户指明文件的类型和格式(如指明是否使用 ASCII 码),并允许课文具备存取权限(如访问文件的用户,必须输入正确的口令等等)。FTP 屏蔽了各种计算机系统的区别,内部...

2019-06-04 22:45:54 1235

原创 计算机网络之应用层(DNS域名系统)

应用层作为和用户直接交互的一层,它具体的内容就是规定应用进程在通信时所需要遵循的协议。应用层的很多协议都是基于客户-服务器方式(C-S方式),即便是 P2P 的方式,本质上也只是一种特殊的客户-服务器方式。这一层的主要内容是:(1)域名系统 DNS ——怎么通过域名得到对应的 IP 地址(2)万维网和 HTTP 协议(这是搜索引擎使用的应用层协议)(3)电子邮件的发收流程,及 SMTP、...

2019-06-04 19:43:22 763

原创 计算机网络之网络协议体系分层

网络协议体系的分层:关于网络协议分层,国际标准 OSI 制定的是七层,但是太过复杂不实用。TCP/IP 提出的是四层协议,并得到了广泛的应用,分别从上到下是:应用层、运输层、网络层、网络接口层。不过从本质上讲,TCP/IP 只有最上面三层,因为最下面的网络接口层,并没有什么具体的内容。在谢希仁老师的《计算机网络》中,提出的是折中 OSI 和 TCP/IP 的办法,提出了只有五层的体系结构。如...

2019-06-03 21:25:23 838

原创 数据结构之图的最小路径

最小路径和树的那一节,最小生成树不同。最小生成树,是图中连接了所有的顶点,所生成的边上的权值之和最小的生成的的树,是指所有路径相加起来和最小的树。它的权值,是在结点上的。最小路径,讨论的是,如何确定指定的某个顶点,到其余任意一个顶点对应的的最短路径;以及,如何确定图中,任意两个顶点的最短路径。(这不是对图的打乱重组,只是在寻找现有的路径最小的那个)。求某个顶点到其他各顶点的最短路径的Dijk...

2019-04-11 22:42:14 503

原创 数据结构之图的生成树和最小生成树、AOE网和拓扑排序、关键路径

相关概念:通过对图的遍历,由遍历过程中使用到的边和顶点(顶点一定是都用上了,但是边只用了一部分,产生的效果就是,顶点都只和一个或者两个顶点邻接而已),这个子图称为原图的生成树。按照遍历的方式的不同,称为深度优先生成树、广度优先生成树。最小生成树:对于边是有权的话,生成树的所有边的权值之和就是生成树的权。其权值之和最小的生成树称为该图的最小生成树(Minimum Spanning Tree,M...

2019-04-11 22:41:58 990

原创 数据结构之图(基本概念和存储方式、搜索)

对于树来说,每个结点都是只有一个父结点,父结点才是一对多的关系。而图(Graph)是很明确的多对多的关系。图的基本概念:图,图是图形结构的简称,是一种非线性数据结构。一个图 G 是由两个集合 V(G)、E(G)组成的。图的二元组可以定义为: G = (V,E)V(G)是指顶点(Vertex)的非空有限集合,每个顶点都可以标上不同到的字符或者数字(其实,就是树之类所说的结点) 。E(G)是 G...

2019-04-10 10:47:51 670

原创 数据结构之二叉树的哈夫曼树及其应用

前面一篇介绍的是,二叉树的一些基本概念、特征以及它如何同树、森林转换之类,现在介绍的,二叉树的另外一类,哈夫曼二叉树树。哈夫曼树(Huffman)树,又称最优树,是一类带权路径长度最短的树,有着广泛的应用(哈夫曼树,并不针对只是二叉树,其他的树也可以是哈夫曼,只要满足是带权路径最小即可),在这里只讨论哈夫曼树的二叉树。相关概念:——树的每一层,到下一层的路径距离,统一记为 1 。 树中的一个...

2019-04-09 17:28:09 933

原创 数据结构之二叉树

二叉树(Binary Tree)是应用最广泛的一类树结构,它具有很多重要的性质,而且存储表示比一般的树存储要简单(主要是,树的结点的度情况太多,需要一种能够简单而完整表达树的优点的结构,来作为实际统一使用),同时一般树又可以简便地转化为二叉树。字面意思,二叉树即是所有的度都最多为2(可以是0、1、2) 的树。二叉树的根结点下,两个子树分别称为,根的左子树和右子树。二叉树的分类:满二叉树:对于...

2019-04-09 17:27:45 315

原创 数据结构之树

数据结构中的树,是非线性结构,是一对多的关系树的结点之间有很明显的层次关系。树结构有非常广泛的应用,是一种非常重要的数据结构。树的描述形式是倒立的树的形式,即是树根在最顶端,结点依次散开。树的相关概念:——树根(Root):即是最上面的,没有父节点的那个结点。——子树(Subtree):即是除了根以外的的具有下一层结点的那些层的结点,都称为子树。——结点的度:该结点的子树数,称为该结点的度...

2019-04-04 10:54:58 173

原创 隐性共享和明显共享

隐性共享和显性共享是 c++、Qt的空间管理方式的一种机制。即是,对于下面的这种赋值:int b =20;int a = b;隐性共享,是对于这种一开始没有开辟单独的空间的数据类型,如果直接由其他变量赋值的话,它们是指向同一个内存空间。同时,还会有一个参考计数器,来记录有多少个变量指向了这个空间,如果 a 的数据后来做了修改,才对这个数据做一次深复制(deep copy),真正地开辟一个空间...

2019-04-02 23:04:41 242

原创 Qt、C++的容器类,附带QVariant、QString的一点备忘

之前对于容器类,没有一个很系统的了解。后来才专门看了 《C++ GUI Qt 编程》的这一部分内容,做一下笔记。需要先说的是,这里对 C++自身的 STL 容器类只是附带提下,不是很深刻。容器类,就是一些对象,可以承载其他类对象,并且具有成熟的对自己这些元素的操作函数的类。这个可能和数组之类的有点像,但是在设计概念上,应该是远远高于数组之类的。我觉得容器类提供了完整二封装得极好的数据结构,来实现...

2019-04-02 22:42:23 736

原创 XML的简要总结

在做android开发时,有些项目需要接收服务器发过来的xml文件,所以就专门花了时间,粗略地在菜鸟教程里学了XML。笔记如下:XML,即是可拓展标记语言(EXtensible Markup Language),宗旨是传输数据,而非显示数据。XML类似于 HTML,但是后者就是去显示数据,XML则是为了传送数据而产生。XML的构成:——声明,定义版本和使用的编码方式。——元素。XML是树结...

2019-04-01 20:21:04 186

原创 Qt——自定义事件+多线程与GUI线程通信

当一个Qt应用程序开始执行时,只有一个线程在运行——初始线程,这是唯一一个被允许创建这个QApplication对象并对它执行exec函数的线程。因此,常常把这个线程作为图形用户界面(GUI)线程,在调用exec函数后,这个线程要么等待一个事件,要么处理一个事件。如果我们使用多线程通信,像互斥锁的话,是会因为线程阻塞将GUI线程冻结。所以,互斥锁之类到的做法不支持线程与GUI线程通信。那么,解决...

2019-03-24 16:50:46 770

原创 Qt——开启子线程、线程间的通信和同步(非GUI线程)

对于延时的操作,开启多个线程,并各自负责对应的内容(后台逻辑、GUI等),是正常不过的了。开启子线程的流程:——创建thread类并继承QThread。重写run函数(这个函数,就是子线程实际执行的内容了)。——实例化thread类对象,并调用start函数,这就意味着子线程的开启。run函数已经在运行。——QThread提供了一个terminate函数,可以在线程还在运行时终止它的运行。...

2019-03-24 15:48:37 2595

原创 Qt--在强烈的处理中保持响应

在强烈的处理中,保持响应的意思,即是进程在处理一个很复杂,很占用CPU资源的操作(比如IO之类的),还能保持界面的活跃,响应用户的动作。保持响应的办法有:——多线程,即主线程完成GUI,其他线程完成其他耗时的操作;——在处理这个耗时操作,比如IO时,频繁调用QApplication::processEvent()。这个函数告诉Qt来处理任何没有被处理的事件,并且将进程(也就是唯一的线程)的...

2019-03-24 12:13:40 444

原创 Qt的事件模型

Qt的事件事件和信号与槽的不同:signal and slots 是Qt自己设计的机制之一,但是事件是更底层的,被普遍开发框架接受的机制之一。建议的是,表面 / 界面使用信号与槽,更深层使用事件。事件的来源:事件是窗口系统或者Qt对不同的情况的响应。主要来源就是两个:——是对用户行为的被动响应,比如按下鼠标之类;——被系统独立产生的,比如是定时器事件。或者可以这么说,——Spont...

2019-03-23 23:09:44 754 1

原创 Linux的C语言标准I/O操作

系统自带的IO操作,是基于文件描述符的。这些系统的IO操作,是不带缓存区的,在高层的应用里,不带缓存的IO效率低,因此使用的是ANSI C的标准 io 。(C的标准IO是封装了系统的IO给用户使用,这样减少了系统调用的次数,系统调用很浪费资源的。而学了Java的话,会发现它也有更高级的 io ,都是不断堆砌产生的)。这些函数基本都在<stdio.h>里,如常见的printf(针对标准...

2019-03-17 16:58:51 324

原创 Linux的文件I/O编程(系统函数)

系统调用和API在Linux系统中,为了保护内核空间,将程序的运行空间,分为内存空间和用户空间(内核态和用户态)它们在运行在不同的级别上,在逻辑上是相互隔离的,因此用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据和用户函数。操作系统为用户提供了两个接口:一个是用户编程接口API,用户利用这些操作命令来组织和控制任务的执行或管理计算机系统;另一个是系统调用...

2019-03-17 11:25:21 230

原创 Linux的文件类型和文件属性等

文件类型:Linux中的文件类型和Windows有明显的区别,最大的就在于,Linux把目录和设备都当做文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux的文件,分为四类:普通文件、目录文件、链接文件和设备文件。普通文件:普通文件可以是源代码、可执行文件、文本图片音频或者视频等,其实就是Windows的那种最基本的文件(你看目录、链接、设备文件都知道,还剩下什么...

2019-03-17 10:34:21 263

原创 数据结构(七)——(字符)串

串,即是字符串(String),,同样是特殊的线性表。是由n多个char类型组成的。不过,String在c语言里,不是作为关键字的(即是,没有这个类型)只有像Java,才有将String作为一个数据结构。c中,一般使用char * 作为String的形式。不过,这只是String的一种存储结构的体现。下面详述。串到的长度是按切切实实存在的char型来算的,‘\n’在这里不算入长度(但是应该还是会...

2019-03-15 11:41:14 273

原创 数据结构(六)——数组

数组(array),在c语言里是最早接触到的数据结构。但是如果作为数据结构这门课来学,在c中学到的关于它的知识,还不足够。数组的分类:按物理结构来看,数组分为顺序结构和链式结构。在顺序结构里,即便是多维数组(矩阵,Matrix),它还是按一维的形式存放在一组连续的存储空间里(别无他选)。一般有两种实现方法:按行顺序存储,称为以行为主(Row Major Order)。c、PASCAL等都采用...

2019-03-15 00:27:55 212

原创 数据结构(五)——队列

相对于栈,队列(queue)是另外一种特殊的线性表。队列的逻辑设计是,删除运算限定在表的一端进行,插入运算则被限定在表的另一端进行。约定将允许插入的一端称为队尾(Rear),删除的那一端称为队首(Front)。这样的逻辑设计,就其实是现实生活里的排队嘛。因此,队列是先进先出表(First In Frist Out,FIFO)。队列同样有顺式结构和链式结构(一种逻辑结构的两种物理结构)。顺式的长度...

2019-03-14 11:17:10 214

原创 数据结构(四)——栈

栈,即stack,同样是线性表。只是它在设计时,运算规则做了限制。是限定性的线性表结构。栈,只能在固定的一端插入和取出(取出,也就意味着删除了)。通常,能插入删除的那一端,叫做栈顶,top;不能插入删除的,称为栈底,bottom。插入栈,称为入栈。删除,称为出栈/退栈。当栈中没有元素时,称为空栈。学习过单片机的应该对栈有了解,毕竟是有一个实实在在的物理容器的概念。出入栈的原则,是先进后出,la...

2019-03-12 23:51:57 1213

原创 进程和线程的概念——来自Qt的学习

CPU有时间片,对于CPU来说,所有应用程序都是要使用时间片的用户,这些用户从技术语言来说,就是进程。每个进程在启动后,操作系统都会确定其优先级,然后放入进程队列,排队等候CPU处理(就是我们所说的单核,一核有难,八核围看哈哈哈)。这种情况很像单片机,只是裸机的单片机是一直while一个程序,加了操作系统的单片机就是这样,需要排队处理。如果CPU处理好上一件事,那么进程就会得到一些时间片,由于CP...

2019-03-10 17:01:42 104

原创 Qt资源管理(图片、图标、css样式表)

像android studio一样,Qt也有各种资源,比如图片、ui控件的样式之类。分给以下几种:1-图片管理2-图标管理2-css样式表图片管理:首先是要引入图片资源。右键对应的工程,选择:添加新文件——Qt——Qt Resource File——名称自己写——确定。就会生成一个 资源的文件夹,里面有xxx.qrc文件,即是资源文件。右键xxx.qrc文件,选择:添加现有文件——选...

2019-03-10 11:47:42 2347 1

原创 数据结构(三)——单链表

单链表和顺序表同是属于线性表的范畴。链表分为动态链表和静态链表。按照链表最原来的定义的,都是动态链表(这里都是动态链表)。根据每个结点所含指针的个数的不同,链表分为两大类,即单链表和多重链表;而根据指针的链接方式,又分为普通链表和循环链表。以下内容针对最简单的链表形式,单链表链表同样是一个结构体的形式存在的,基本的组成(对于单链表),就是一个指向下一个结点的结点指针,一个存储的数据内容(这个...

2019-03-07 21:40:55 438

原创 数据结构(二)——线性表的顺序表

线性表就是一对一的关系。线性表分为,顺序表和链表(即是按物理结构划分的)。顺序表是物理地址相邻的,看起来像是数组的定义。不过,顺序表和数组也有不同。顺序表的属性是:——有存储空间的起始位置data,即是一个数组的首地址(这也就是数组了);——线性表有一个变量标记最大存储容量,MaxSize;——有一个变量标记当前的长度,length。后两个属性,恰恰体现了顺序表和数组的本质区别。顺序表...

2019-03-07 09:58:44 197

原创 数据结构(一)——基本概念

本人是看小甲鱼的数据结构来学习数据结构的。所以主要内容都是来自于小甲鱼。数据结构分类数据结构分为逻辑结构和物理结构。逻辑结构分为:集合(无序)、线性(一对一)、树形(一对多)、图形(多对多)。物理结构分为:顺序结构(逻辑关系、物理关系统一)、链式结构(不统一)、索引结构、散列结构。索引结构:在存储结点信息时,建立一个附加的索引表,每一项是索引项,一般形式是:(关键字,地址),关键字是唯...

2019-03-05 11:34:02 111

原创 Qt designer的使用、布局和一些注意点

之前自己主要学的是,单片机和嵌入式。虽然也有做过APP和java等。学了单片机和,安卓开发。其实对比了是很有类似的,单片机是有led,开关之类的外设嘛。只需要搭建内部应对逻辑和连接外设的接口。但是,安卓呢,界面上的button,各种view就是单片机的外设了。所以,它不仅需要搭建内部逻辑和连接外设的接口,还需要建设外设。是多了一个任务(搭外设才是最简单的呀)。而Qt的这些界面上的button之...

2019-03-04 21:15:16 4357 2

原创 Qt的pro文件的内容分析

Qt工程的pro文件是Qt项目底层的环境配置文件。接下来讲解到的,pro的参数只是最常见的几个要素,并不是全部。可看上图,pro文件的详细内容如下:QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = show_helloworldTEMPLATE = appSOURCES +=...

2019-03-04 10:33:46 307

原创 Qt的跨平台的部分原理和机制

最近开始学习Qt,看的是徐野等写的《Qt平台体系与应用——Qt5.5+核心方法、技巧与案例》。Qt是一个跨平台的应用程序框架。实现原理是一次编码,处处编译(即是在windows和linux写的代码都一样,跨平台。但是需要在Windows和linux上分别编译,才能在那种环境下运行。针对不同的安装设备,有不同的Qt版本)。(以下是这本书的,关于跨平台的原理的对比和介绍,感觉不错,摘写)java也...

2019-03-03 16:34:34 4761 1

原创 s3c2440内存控制器(不含SDRAM )

s3c2440数据手册的第五章是关于内存控制器的,这篇文章就是关于它的理解和备忘(暂不涉及SDRAM的编程)。内存类芯片常见的基本就那么几大类。使用很频繁的,,后面可能专门对它们做一个总结。2440的内存控制器基本情况:——共有8个存储体(bank),每一个bank最大都达到一个128m,共1g了。除bank0(必须是只能是设置为访问外部是16/32位)外,其他存储体的可编程访问外部芯片的...

2019-03-01 17:12:08 489

原创 s3c2440上实现printf(printf自动确定可变参数)

这一篇是对韦东山2440的uart的printf课程的总结。printf是c标准库stdio.h的函数,本来想要把它移植在裸板上,存储是不够的。但是,作为一个能直接打印信息的函数,对调试很有用。所以,就对它进行一些操作。仿照printf的几个难点在于:1-printf函数的参数,是有一个char *的常量字符串和若干变参变量构成。怎么从char *这一个常量里,读取出哪里是要替换为那些参数的。...

2019-02-25 22:35:05 395

uart_printf程序

韦东山嵌入式s3c2440裸板教程的uart_printf的代码。其实在他的网盘都有。不过自己是发了一篇帖子。这个资源配合看,好一点

2019-02-25

pcb实战资料

还是很不错的altium designer 实战案例,有兴趣的可以看看

2018-01-21

空空如也

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

TA关注的人

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