自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 public,private,protected的区别,继承方法与访问权限

test

2018-05-24 16:42:43 6566

转载 C++ const修饰函数、函数参数、函数返回值

const修饰函数在类中将成员函数修饰为const表明在该函数体内,不能修改对象的数据成员而且不能调用非const函数。为什么不能调用非const函数?因为非const函数可能修改数据成员,const成员函数是不能修改数据成员的,所以在const成员函数内只能调用const函数。[cpp] view plain copy#include <iostream>  using namesp...

2018-05-24 14:12:31 383

转载 类成员函数的重载、覆盖和隐藏区别 (C++)

1.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。2.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。3.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同...

2018-05-24 14:01:22 455

原创 C++类和结构体的区别

经测试(编译环境为VC6.0),发现C++结构体与类只有一个区别,就是类默认的成员是private,结构体默认的成员是public。结构体可以定义public、private、protected,可以定义static成员。可以定义构造和析构函数。也可以继承,也可以定义虚函数。例程如下:#include "stdafx.h"typedef struct st_father{ int m_iValue...

2018-05-24 13:54:17 3253

原创 C++类的默认成员函数

C++类有六个默认的成员函数,分别是构造函数、析构函数、拷贝构造函数、赋值运算符重载函数、&运算符重载函数、const &运算符重载函数。下面分别说明:定义一个class CTestClass{};类。1、构造函数类实例化时执行的函数。CTestClass();2、析构函数类释放时执行的函数。~CTestClass();3、拷贝构造函数CTestClass(const CTestC...

2018-05-24 12:47:57 375 1

原创 C++类和结构体的大小

1、规则(1)空类大小为1,因为C++标准规定空类也可以实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址。(2)类的大小为非静态成员数据的类型大小之和,静态成员存放在全局数据段,不影响类实例化的大小。(3)类本身的一些特性占用的大小,虚函数表就占用4个字节,当类中含有虚函数时,无论是否是继承来的,...

2018-05-24 10:08:04 1199

原创 C++ map用法(带例程)

介绍:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们...

2018-05-23 13:28:21 1409

原创 C++ set用法(带例程)

介绍:        set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽...

2018-05-22 15:23:43 2025

原创 C++ list用法(带例程)

介绍:list实际是一个双向链表,可以高效的进行插入删除操作。使用:1、头文件#include <list>2、初始化list<int> a{1,2,3}; list<int> a(n);    //声明一个n个元素的列表,每个元素都是0  list<int> a(n, m);  //声明一个n个元素的列表,每个元素都是m  list<int&...

2018-05-18 15:17:04 422

原创 C++ Vector用法(带例程)

介绍:vector是可变大小数组的序列容器。vector是连续存储的,与数组存储相同,区别是大小是动态改变的,可随机访问,因此vector访问速度快。vector在末尾删除添加元素时相对高效,若在其他任意位置添加删除元素则效率更低。使用:1、头文件#include <vector>2、初始化vector<int> vec;        //声明一个int型向量vector...

2018-05-15 17:30:30 5599

转载 XModem协议

XModem协议介绍:XModem是一种在串口通信中广泛使用的异步文件传输协议,分为XModem和1k-XModem协议两种,前者使用128字节的数据块,后者使用1024字节即1k字节的数据块。一、XModem校验和协议1. XModem信息包格式XModem协议最早由Ward Christensen在20世纪70年代提出并实现的,传输数据单位为信息包,信息包格式如下:--------------...

2018-05-09 11:26:45 351

转载 COAP协议全面分析

HTTP与COAP 请求与响应示例HTTP请求(文本格式)POST https://getman.cn/echo HTTP/1.1User-Agent: FiddlerHost: getman.cnContent-Length: 9{temp:22}1234567HTTP响应(文本格式)HTTP/1.1 200 OKServer: NWSsDate: Thu, 07 Dec 201...

2018-05-09 11:26:04 1279

转载 MQTT协议-MQTT协议简介及协议原理

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设...

2018-05-09 09:19:59 392

转载 TCP 协议如何保证可靠传输

一、综述1、确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。2、数据校验3、数据合理分片和排序:  UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接...

2018-05-08 18:38:31 261

转载 TCP和UDP的最完整的区别

TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统资源较多,UDP较少;   3.UDP程序结构较简单   4.流模式(TCP)与数据报模式(UDP);   5.TCP保证数据正确性,UDP可能丢包   6.TCP保证数据顺序,UDP不保证   UDP应用场景:  1.面向数据报方式  2.网络数据大多为短消息   3.拥有大量Client  4.对数据安全性无特殊...

2018-05-08 18:30:02 567

转载 为何要把文件夹形式的rootfs制作成单个rootfs镜像文件

假设目前我们已经有了rootfs,它是文件夹形式的,可以在pc 端浏览的rootfs。但是,我们的目的是:把此rootfs,弄到嵌入式开发板上。而嵌入式开发板上的rootfs所存放到的物理设备,往往都是nand flash。所以此时,没法直接把此rootfs,放到该nand flash上去,所以需要弄成,对应的格式的文件系统的镜像,比如用mk.jffs2制作成jffs2的镜像,用mkyaffs2i...

2018-05-08 17:45:14 1528

转载 如何使用busybox编译和生成最简linux根文件系统(rootfs)

继前几天对uboot和内核编译进行了初步了解之后,昨天开始研究如何制作rootfs根文件系统。昨晚对busybox这个工具有了初步的了解,今天继续深入研究,终于成功的制作出了一套完整可用的最简linux rootfs根文件系统。现记录详细步骤以备日后查阅。一、准备工作1、首先交代系统版本和开发环境操作系统:ubuntu 12.04(64bit);交叉编译工具链:arm-linux-gcc 4.4....

2018-05-08 17:44:39 6370

转载 Linux下bootargs引导参数说明

本文是学习hisi芯片启动过程,不同的芯片启动方式不一样,但都大同小异。 =========================================设置系统启动参数=========================================   必须正确设置bootargs参数或者烧写bootargs镜像才能保证系统正常启动              这个参数设置要传递给内核的信息,...

2018-05-08 17:43:50 1054

转载 文件系统编译进内核

1、利用busybox制作根文件目录。(需要有init 和 linuxrc)2、makemenuconfig 在general setup 中设置 initial ram filesystem and RAM disk 后指定文件系统源文件路径.3、makemenuconfig 在boot options 中指定 kernel command line type选择 always use........

2018-05-08 17:20:46 886

原创 linux中断处理

linux中断相关的系统源码位于/kernel/irq下,request_irq就是定义在这个目录下。跟cpu相关的中断定义位于/arch/arm/mach-maximasp目录下,这个目录下定义了许多跟本型号cpu相关的内容。mach-maximasp是对应cpu的目录。/arch/arm/mach-maximasp/irq.c主要是对gpio中断的一些功能函数定义:static struct ...

2018-05-08 16:17:25 212

转载 ARM中断处理过程

一、前言本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述:1、第二章描述了中断处理的准备过程2、第三章描述了当发生中的时候,ARM硬件的行为3、第四章描述了ARM的中断进入过程4、第五章描述了ARM的中断退出过程本文涉及的代码来自3.14内核。另外,本文注意描述ARM指令集的内容,有些source code为了简短一些,删除了...

2018-05-08 15:18:57 18760 1

原创 Kernel启动和加载流程

1、vmlinux.lds.S链接脚本OUTPUT_ARCH(arm)ENTRY(stext) 定义编译内核为arm,程序入口为stext。连接脚本后面定义了SECTIONS2、head.Shead.S主要做的事情是处理u-boot传入的参数,具体如下:判断是否支持这个CPU、判断是否支持这个单板(对比机器ID)、建立一级页表、使能MMU、跳到start_kernel函数head.S在/arch/...

2018-05-08 14:26:29 1548

原创 uboot学习心得(uboot流程分析)max32590芯片

1、代码框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c:初始化CPU、设置指令Cache和数据Cache等interrupt.c:设置系统的各种中断和异常start.S:是U-boot启动时执行的第一个文件,它主要做最早期的系统初始化,代码重定向和设置系统堆栈,为进...

2018-05-08 10:56:33 998

空空如也

空空如也

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

TA关注的人

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