<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chuckie_chen的博客]]></title><description><![CDATA[每天进步一点！]]></description><link>https://blog.csdn.net/keil_chen</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; keil_chen]]></copyright><item><title><![CDATA[类和类的封装]]></title><link>https://blog.csdn.net/keil_chen/article/details/53909395</link><guid>https://blog.csdn.net/keil_chen/article/details/53909395</guid><author>keil_chen</author><pubDate>Wed, 28 Dec 2016 16:04:12 +0800</pubDate><description><![CDATA[在日常生活中，我们总是将事物进行分门别类。列如：电脑，手机，相机等等，这些称呼都是对于某一类事物的总称。我们还能将电脑按照品牌分类，比如，戴尔电脑、惠普电脑、苹果电脑、华硕电脑等。这些都是抽象的概念。我的电脑这个实体，它就是一个具体的事物，我的电脑是戴尔的，但我不能说戴尔电脑是我的电脑。一、面向对象的基本概念类和对象是面对对象的两个基本概念，“类”指的是一类事物，是一个抽象的概念，比如我们所说的电脑]]></description><category></category></item><item><title><![CDATA[C++的一些经典问题分析（一）]]></title><link>https://blog.csdn.net/keil_chen/article/details/53893862</link><guid>https://blog.csdn.net/keil_chen/article/details/53893862</guid><author>keil_chen</author><pubDate>Tue, 27 Dec 2016 11:07:44 +0800</pubDate><description><![CDATA[一、const和引用的疑惑示例代码1：#include <stdio.h>int main()
{
    const int x = 1;
    const int& rx = x;
    int& nrx  = const_cast<int&>(rx);
    nrx = 5;
    printf("x = %d\n", x);
    printf("rx = %d\n", rx);]]></description><category></category></item><item><title><![CDATA[C++中新的关键字]]></title><link>https://blog.csdn.net/keil_chen/article/details/53413992</link><guid>https://blog.csdn.net/keil_chen/article/details/53413992</guid><author>keil_chen</author><pubDate>Sun, 25 Dec 2016 14:20:12 +0800</pubDate><description><![CDATA[1、动态分配内存—-new 
在C语言中，我们通常用malloc函数动态申请内存，用free函数释放动态申请的内存，这说明C语言本身是不支持动态申请内存的。在C++中，增加了新的关键字new来动态内存分配，增加了delete关键字来释放动态申请的内存；C++中的动态内存申请是基于类型进行的。 
动态申请一个变量：Type *p = new Type; 
释放动态申请的变量：delete p; 
动态]]></description><category></category></item><item><title><![CDATA[函数的升级（下）-函数的重载]]></title><link>https://blog.csdn.net/keil_chen/article/details/53400796</link><guid>https://blog.csdn.net/keil_chen/article/details/53400796</guid><author>keil_chen</author><pubDate>Tue, 29 Nov 2016 21:55:58 +0800</pubDate><description><![CDATA[对于函数的升级，这一章主要讲函数重载。在说函数重载之前，先想想我们自然语言中的一些词汇。这对于理解函数重载有一定的帮助。一、自然语言我们平时生活中所说的语言就是自然语言，在自然语言中，我们经常用同样的字搭配不同的词汇来表达不同的意思，比如：洗衣服、洗车、洗脸、洗马桶、洗脑。能和‘洗’字搭配的词汇有很多，但是它和不同的词汇搭配在一起就有这不同的含义，同样的‘洗’字，我们所表达的意思的动作是不同的。这就]]></description><category></category></item><item><title><![CDATA[函数的升级（上）]]></title><link>https://blog.csdn.net/keil_chen/article/details/53385186</link><guid>https://blog.csdn.net/keil_chen/article/details/53385186</guid><author>keil_chen</author><pubDate>Mon, 28 Nov 2016 22:07:16 +0800</pubDate><description><![CDATA[一、常量与宏回顾在C++中的const常量可以代替宏常数定义，如： 
const int A =3;     —>     #define A 3; 
const常量是由编译器处理的，而宏常数是由预处理器处理的，显然，用const常量代替宏常数更加安全，可靠。 
C语言的宏定义不仅可以定义宏常数，还可以定义宏代码片段？那么在C++中有没有解决方案来替代宏代码片段呢？替代宏代码片段就可以避免宏的副作用]]></description><category></category></item><item><title><![CDATA[C++中的引用]]></title><link>https://blog.csdn.net/keil_chen/article/details/53367072</link><guid>https://blog.csdn.net/keil_chen/article/details/53367072</guid><author>keil_chen</author><pubDate>Sun, 27 Nov 2016 21:59:16 +0800</pubDate><description><![CDATA[一、变量名回顾1、变量是一段实际连续的存储空间的别名； 
2、程序中通过变量来申请并命名存储空间； 
3、通过变量的名字可以使用存储空间； 
思考：对于一段连续的存储空间只能有一个别名吗？二、引用引用可以看做一个已定义变量的别名；它的语法：Type& name = var； 
注意： 普通引用在声明时必须用其他的变量进行初始化。 
列如：int a = 4;
int& b = a;
b = 5;
p]]></description><category></category></item><item><title><![CDATA[C++对C的加强]]></title><link>https://blog.csdn.net/keil_chen/article/details/53355319</link><guid>https://blog.csdn.net/keil_chen/article/details/53355319</guid><author>keil_chen</author><pubDate>Sat, 26 Nov 2016 21:30:07 +0800</pubDate><description><![CDATA[一、C++C++是C语言的继承，它既可以进行C语言的过程化程序设计，又可以进行以抽象数据类型为特点的基于对象的程序设计，还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时，还可以进行基于过程的程序设计，因而C++就适应的问题规模而论，大小由之。 
C++不仅拥有计算机高效运行的实用性特征，同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。二、C++与C]]></description><category></category></item><item><title><![CDATA[关于文字的编码]]></title><link>https://blog.csdn.net/keil_chen/article/details/53142160</link><guid>https://blog.csdn.net/keil_chen/article/details/53142160</guid><author>keil_chen</author><pubDate>Sat, 12 Nov 2016 18:20:39 +0800</pubDate><description><![CDATA[我们知道在计算机中存储的都是0和1的二进制码，那怎么用这些数字来表达我们通常用的字符呢？人们通过编码的方式人为的规定了用特定的数字对应特定的字符。这就是编码。一、ASCII码计算机是在欧洲发明的，刚开始就只有欧洲人使用，他们为了在计算机上表示他们常用的字符美国制定了ASCII码表，因为它们的字符比较少（ASCII只包含了128个字符），用0~127（用一个字节的低7位）就能表示完成，每一个数字对应一]]></description><category></category></item><item><title><![CDATA[Linux下的USB设备驱动]]></title><link>https://blog.csdn.net/keil_chen/article/details/53035849</link><guid>https://blog.csdn.net/keil_chen/article/details/53035849</guid><author>keil_chen</author><pubDate>Fri, 04 Nov 2016 15:44:07 +0800</pubDate><description><![CDATA[一、USB一些相关的概念USB是我们常用的接口，它有四条引脚线：5V、D+、D-、GND。PC的USB口的D+、D-接有下拉电阻，平时处于低电平状态。USB设备的USB口内部，D-或D+接有1.5K的上拉电阻；它一接入PC，就会把PC的USB口的D-或D+拉高，从硬件的角度通知PC有新设备接入。所以USB能够自动监测设备。 
简单来说，USB驱动分为两块，一块是USB总线驱动，这个在Linux内核里]]></description><category></category></item><item><title><![CDATA[输入子系统（input subsystem）]]></title><link>https://blog.csdn.net/keil_chen/article/details/53001429</link><guid>https://blog.csdn.net/keil_chen/article/details/53001429</guid><author>keil_chen</author><pubDate>Tue, 01 Nov 2016 21:49:45 +0800</pubDate><description><![CDATA[一、为什么引入输入子系统之前我们学习了一些简单的字符设备驱动，我们在写按键驱动时，都采用字符设备、混杂设备处理的，使我们的驱动程序只能我们自己使用，别人很难使用。如果所有的输入设备都这样处理的话，那么大量的输入设备驱动将会非常的混乱分散。大神为了将不同类别的，分散的输入设备进行统一的驱动，出现了输入子系统。二、输入子系统的输入子系统分为三层：核心层(Input Core),驱动层和事件处理层（Eve]]></description><category></category></item><item><title><![CDATA[Linux的LCD驱动]]></title><link>https://blog.csdn.net/keil_chen/article/details/52966651</link><guid>https://blog.csdn.net/keil_chen/article/details/52966651</guid><author>keil_chen</author><pubDate>Sat, 29 Oct 2016 21:05:29 +0800</pubDate><description><![CDATA[在Linux的LCD驱动中有一个很重要的概念：帧缓冲（framebuffer）。一、帧缓冲（framebuffer）帧缓冲(framebuffer)是Linux系统为显示设备提供的一个接口，它将显示缓冲区抽象，屏蔽图像硬件的底层差异，允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。帧缓冲设备为标准字符设备，主设备号为29，对应于/dev/fb*设备文件。二、帧缓冲设备驱动的分析driver]]></description><category></category></item><item><title><![CDATA[Linux设备驱动之字符设备驱动]]></title><link>https://blog.csdn.net/keil_chen/article/details/52963494</link><guid>https://blog.csdn.net/keil_chen/article/details/52963494</guid><author>keil_chen</author><pubDate>Sat, 29 Oct 2016 11:32:14 +0800</pubDate><description><![CDATA[一、Linux设备的分类
Linux系统将设备分成三种基本类型，每个模块通常实现为其中某一类：字符模块、块模块或网络模块。
这三种类型有：


字符设备：字符设备是个能够像字节流（类似文件）一样被访问的设备，由字符设备驱动程序来实现这种特性。字符设备可以通过文件系统节点来访问，比如/dev/tty1等。这些设备文件和普通文件之间的唯一差别在于对普通文件的访问可以前后移动访问位置，而大多数]]></description><category></category></item><item><title><![CDATA[自己写BootLoader]]></title><link>https://blog.csdn.net/keil_chen/article/details/52858557</link><guid>https://blog.csdn.net/keil_chen/article/details/52858557</guid><author>keil_chen</author><pubDate>Wed, 19 Oct 2016 13:13:20 +0800</pubDate><description><![CDATA[关于BootLoader是什么、有什么用、启动流程这些内容百度百科讲的很详细查阅即可：bootloader百度百科
自己写bootloader能使我们更好的的理解bootloader。
bootloader得最终目的是什么？肯定是引导内核。围绕引导内核，在引导内核之前肯定需要一些硬件设备的初始化，这样才能正确的读取到内核并加载到RAM中。

不同的目标机有有着不同的硬件结构。所以不同的目标]]></description><category></category></item><item><title><![CDATA[安装Linux系统]]></title><link>https://blog.csdn.net/keil_chen/article/details/52735710</link><guid>https://blog.csdn.net/keil_chen/article/details/52735710</guid><author>keil_chen</author><pubDate>Tue, 04 Oct 2016 22:11:04 +0800</pubDate><description><![CDATA[为了能装一个更小的嵌入式开发环境，不需要图形界面，选择安装Ubuntu服务器版本，并将一些内置的软件卸载掉。一、下载所需要的软件1、Ubuntu服务器版本镜像 
在Ubuntu官网下载Ubuntu服务器版本：Ubuntu服务器版本下载目前Ubuntu最新的服务器版本为16.04.1版本。 
2、虚拟机软件 
本人使用VMware Workstation，破解。 
VMware Workstation]]></description><category></category></item></channel></rss>