自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (8)
  • 收藏
  • 关注

原创 C++类构造函数,作用域和静态成员

1.构造函数每个类分别定义来它的对象初始化方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫构造函数。构造函数的任务是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。构造函数的名字和类名相同。和其他函数不同的是,构造函数没有返回值;除此之外类似与其他函数,构造函数也有一个参数列表和一个函数体。类可以包含多个构造函数,和其他重载函数差不多,不同的构造函数之间必须在参数数量或参数类型上有所区别。不同与其他成员函数,构造函数不能被声明成const的。当我们创建类的

2020-09-29 00:43:32 594

原创 C++函数指针

   函数指针指向的是函数而非对象,和其他指针一样。函数指针指向某种特定类型,函数的类型由它的返回类型和形参类型共同决定,与函数名无关:bool func(const string &, const string &);   该函数的类型是bool(const string &, const string &)。要想声明一个可以指向该函数的指针,只需要用指针替换函数名即可:bool (*pf)(const string &, const s

2020-09-07 20:57:51 211

原创 C++函数匹配

在大多数情况下我们都能确定某次调用应该选择哪个重载函数。然而当几个重载函数的形参数量相等,以及某些形参的类型可以由其他类型转换得来时,这项工作就不那么容易了。以下面这组函数及其调用为例:void f();void f(int);void f(int, int);void f(double, double=3.14);f(5.6);...

2020-09-04 22:35:59 1058

原创 C++默认实参、内联函数和constexpr函数

默认实参某些函数有这样一种形参,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参。调用含有默认实参的函数时, 可以包含该实参,也可以省略该实参。默认实参声明对于函数的声明来说,通常的习惯是将其放在头文件中,并且一个函数只声明一次,但是多次声明一个函数也是合法的。有一点需要注意,在给定的作用域中一个形参只能被赋予依次默认实参。换句话说,函数的后续声明只能为之前那些没有默认值的形参添加默认实参,而且该形参右侧的所有形参必须都有默认值:string screen

2020-09-03 00:07:59 208

原创 C++函数重载

   同一个作用域内的几个函数名字相同但形参列表不同,我们称之为函数重载。对于重载函数来说,它们应该在形参数量或形参类型上有所不同。不允许两个函数除了返回类型外,其他所有的要素都相同。判断两个形参的类型是否相同Record lookup(const Accout &acct);Record lookup(const Accout &); //错误,形参的名字仅仅起到记忆的作用,它并不影响形参列表的内容,所以两个函数是相同的typedef Phone Telno;Reco

2020-09-01 00:43:42 254

原创 C++返回类型

不要返回局部对象的引用或指针函数完成后,它所占用的存储空间也随之释放掉。因此,函数终止意味着局部变量的引用将指向不再有效的区域。此时如果使用局部对象的引用或指针将发生未定义行为。引用返回左值函数的返回类型决定函数是否是左值。调用一个返回引用的函数得到左值,其他返回类型得到右值。可以像使用其他左值那样来使用返回引用的函数的调用,特别是我们可以为返回类型是非常量引用的函数的结果赋值,如果返回值是常量引用,则不能赋值:char &get_val(string &str, string::s

2020-08-26 00:15:09 2253

原创 C++参数传递

每次调用函数都会重新创建它的形参,并用传入的实参对形参进行初始化。初始化的机理与变量初始化一样。1.传值参数当初始化一个非引用类型的变量时,初始值被拷贝给变量,此时变量的改动不会影响初始值。传值参数的机理完全一样,函数对形参做的所有操作都不会影响实参。指针形参指针的行为和其他非引用类型一样,当执行指针拷贝操作时,拷贝的是指针的值。拷贝之后,两个指针是不同的指针。因为指针使我们可以间接地访问它所指的对象,所以通过指针可以修改它所指对象的值。指针形参的行为与之类似:void func(int *ip)

2020-08-25 14:28:32 764

原创 C++类型转换

   在C++中,某些类型之间有关联,如果两种类型有关联,那么当程序需要其中一种运算对象的时候,可以用另外一种关联类型的对象或值替代。换句话说,如果两种类型可以相互转换,那么它们就是关联的。   自动执行,无需程序员介入,有时甚至不需要了解的转换称为隐式转换,比如整型和浮点数相加,如果返回值是整型,则会自动把浮点数转换成整型数。何时发生隐式类型转换:在大多数表达式中,比int类型小的整型首先提升为较大的整型数。在条件中,非布尔值转换成布尔类型。初始化过程中,初始值转换成变量的类

2020-08-20 23:17:34 208

原创 C++字符串、向量和数组4--数组

   数组是一种类似于标准库vector的数据结构,与vector相同的是,数组也是存放类型相同的对象的容器,这些对象本身没有名字,需要通过其所在位置访问。与vector不同的是,数组的大小确定不变,不能随意向数组中增加元素。因为数组的大小固定,因此对于某些特殊的应用程序来说程序的运行时性能较好,但是相应的也损失了一些灵活性。1.定义和初始化内置数组   数组的声明形式如a[d],其中a是数组的名字,d是数组的维度。维度说明了数组的个数,因此必须大于0,必须是一个常量表达式。uns

2020-08-18 00:10:13 227

原创 C++字符串、向量和数组3--迭代器

   我们已经知道可以使用下标运算符来访问string对象的字符或者vector对象的元素,还有另外一种方法也可以实现同样的目的,那就是迭代器。和指针类似,迭代器提供了对对象的间接访问,其对象是容器中的元素。1.使用迭代器   和指针不同的是,获取迭代器不是使用取地址符,有迭代器的类型同时拥有返回迭代器的成员:auto b = v.begin(), e = v.end();   begin成员负责返回指向第一个元素的迭代器,end成员负责返回指向容器尾元素的下一位置的

2020-08-16 21:24:16 245

原创 C++字符串、向量和数组2-- 标准库类型vector

   标准库vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象,vector也叫容器。   C++既有类模板,也有函数模板,vector属于类模板。对于类模板来说,我们通过提供一些额外信息来指定模板到底实例化成什么样的类。以vector为例,提供的额外信息是vector内所存放对象的类型:vector<int> ivec; //ivec保存int类型的对象vector<Person>

2020-08-16 19:55:37 234

原创 C++字符串、向量和数组1-- 标准库类型string

        标准库类型string表示可变长的字符序列,使用string必须包含头文件string文件。作为标准库一部分,string定义在命名空间std中。#include <string>using std::string;        C++标准一方面对库的类型所提供的操作做来详细规定,另一方面也对库的实现者提出来性能

2020-08-16 13:24:25 275

原创 C++变量和基本类型5--处理类型

1.类型别名类型别名是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它让复杂的类型名字变简单了、易于理解和使用,还有助于程序员清楚知道使用该类型的真实目的。有两种方法可用于定义类型别名,传统的方法是使用关键字typedef:typedef double wages; //wages是double的同义词typedef wages bass, *p //base是double的同义词,p是double *的同义词新标准规定了一种新的方法,使用别名声明来定义类型别名:using SI =

2020-08-15 21:20:52 249

原创 C++变量和基本类型4--const限定符

const说明有时候我们希望定义这样一种变量,它的值不能被改变。为了满足这一要求,可以使用关键字const对变量的类型加以限定:const int i =0;i =10; //错误,试图向const对象写值因为const对象一旦创建后其值就不能再改变,所以const对象必须初始化,初始值可以是任意复杂的表达式。const int i = get_size(); //正确:运行时初始化const int j = 42; //正确:编译时初始化const int k; //错误,k是一个

2020-08-15 19:44:48 328

原创 C++变量和基本类型3--复合类型

复合类型是指基于其他类型定义的类型,C++有几种复合类型,本章主要介绍引用和指针。1.引用引用为对象起了另一个名字,引用类型引用另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量。int i=1024;int &iref = i;//iref是i的引用int &iref2; //错误,引用必须初始化一般在初始化时,初始化值会被拷贝都新建对象中。然而定义引用时,程序把引用和它的初始化值绑定在一起,而不是将初始化值拷贝给引用。一旦引用初始化完成,引用

2020-08-14 23:54:00 349

原创 C++变量和基本类型2--变量

变量提供一个具有名的、可供程序操作的存储空间。C++中的每个变量都有其数据类型,数据类型决定着变量所占的空间大小和布局方式、该空间能存储的值的范围,以及变量能参与的运算。对于C++程序员来说,“变量”和“对象”一般可以互换使用。1.变量的定义变量定义的基本形式是:首先是类型说明符,随后紧跟一个或多个变量名组成的列表,其中变量名以逗号分开,最后以分好结束。列表中的每个变量名的类型都由类型说明符决定,定义时还可以为一个或多个变量赋初值。int a=0,b,c=a;std::string s("1234"

2020-08-13 09:13:52 212

原创 C++变量和基本类型1 -- 基本内置类型

C++基础1 – 变量和基本类型

2020-08-11 23:14:58 222

原创 tiny210 sd卡启动文件系统

前面介绍过了从SD卡启动uboot和kernel,并且在sd卡创建了两个分区,一个分区用来存放kernel,格式为FAT32。另一个分区用来存放文件系统,格式为EXT4,接下来介绍如何从sd卡启动文件系统。 首先使用一个已经做好的可以挂载的根文件,这里可以使用友善官方提供的rootfs_rtm_210.tgz文件系统。 1、解压文件系统tar xzvf rootfs_rtm_210.tgz2、官

2017-06-19 20:23:01 2935 1

原创 tiny210 uboot sd卡启动

1、下载tiny210 uboot 友善官方使用superboot作为uboot,superboot既没有命令行也没有源码,所以我们不使用。我们使用liukun321制作uboot for tiny210 来作为开发,原文链接如下 http://blog.csdn.net/liukun321/article/details/7438880下载最新ver4.0源码下载:u-boot for tin

2017-06-08 15:01:14 1473

原创 tiny210 ubuntu下sd卡分区

1、ubuntu实现SD-Flasher.exe原理 友善官方给出的烧录uboot的工具是SD-Flasher.exe,这个工具只能在windows下使用。由于本人电脑无法打开这个工具,所以在windows下无法制作sd启动卡。看了官方文档介绍,SD-Flasher.exe原理是在sd卡前面预留130M,然后从130M开始的地方新建分区,将uboot从这个位置开始写入,在ubuntu下可以使用fd

2017-06-08 14:10:44 829

原创 uboot-2010-03移植到tiny6410(1)

一、s3c6410启动流程要移植uboot到tiny6410,首先需要弄清楚tiny6410的启动流程,下面是三星官方文档给出的启动流程图 从流程图中可以看到需要4步: 1、上电后先运行IROM里面的代码,芯片厂商固定好,进行硬件初始化,包括系统时钟初始化,D-TCM初始化等,这部分叫BL0。 2、iRom在初始化完后会把外部启动设备(nand flash、sd卡等)中的bootloader的

2017-03-27 23:01:00 874

原创 linux开发环境搭建(5)-使用tftp下载uboot

前面已经移植好了uboot可以从sd卡启动了,也可以通过tftp下载代码到机器内存上了。有人会说这不是很简单吗,通过tftp下载uboot到内存的某一个位置,然后用nand write命令写入到nand flash中,这样拨码开关拨到nand flash启动的时候uboot就能跑起来了。一开始我也是这么想的,后来发现并没有想的这么简单。

2017-03-16 22:24:11 1430

原创 linux开发环境搭建(4)-从SD卡启动uboot

前面已经将网卡配置好,也已经可以通过tftp下载程序到nand flash,也可以通过nfs挂载根文件系统,可以说基本的开发环境已经搭建好。本节介绍如何从sd卡启动自己已有源码的uboot

2017-03-15 22:17:43 3310

原创 linux开发环境搭建(3)-nfs挂载根文件系统

前面讲解了网卡配置和使用tftp下载内核,这次要讲的是使用nfs挂载根文件系统。1、什么是根文件系统 所谓根文件系统,也就是系统启动后第一个挂载的目录,根文件系统包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在 Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这

2017-03-14 22:39:40 2082 1

原创 linux开发环境搭建(2)-tftp下载内核

在前面已经将三个网卡配置好了,本篇文章将介绍如何使用在ubuntu中使用tftp命令下载内核到开发板上。我使用的是网线直连的方式下载,即通过网线直接把pc和开发板连接起来,没有使用到路由器和交换机,只需要一条网线即可,下载非常方便。

2017-03-09 14:55:29 695

原创 linux开发环境搭建(1)-配置网卡

在进行linux开发之前,需要先将开发环境搭建好。本人使用的开发环境是vmware10+ubuntu14.04,因为使用虚拟机所以需要先把网卡配置好,这样windows和虚拟机之间才能互相传输文件,同时配置好网卡后可以使用tftp下载程序到开发板,同时可以挂载nfs根文件系统。总之要进行linux开发,必须先把网络配置好。 这里要在ubuntu里面配置三个网卡,第一个网卡为nat模式网卡,主要是用来ubuntu上网使用,可以使用apt-get等命令下载软件。第二个网卡为host-only模式网卡

2017-02-28 21:18:58 630

uboot-2010-03

2017-03-27

CHxx_IROM_ApplicationNote_Rev1.00_080801.pdf

三星的描述uboot从sd卡启动时,uboot.bin在sd卡中的位置

2017-03-15

superboot.bin

友善的superboot.bin工具,支持从sd卡启动uboot

2017-03-15

sd-flasher.exe

友善的superboot.bin烧写工具

2017-03-15

tiny6410 uboot

移植好的友善tiny6410 uboot

2017-03-07

etc.tar.gz

linux根文件系统/etc目录资源

2017-03-06

busybox-1.13.3.tar.gz

busybox源码,可编译制作嵌入式根文件系统

2017-03-06

MPU9150DMP

移植到瑞萨单片机上的MPU9150 DMP库

2015-08-16

空空如也

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

TA关注的人

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