自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

知秋一叶

这世界里的每一个人,每一个东西,包括高山大海,刀剑风云,其本质都是一串数字流。

  • 博客(357)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++基础知识(三)—— 常量

一个常量(constant)是一个有固定值的表达式。字(Literals)字是用来在程序源码中表达特定的值。在前面的内容中我们已经用了很多的字来给变量赋予特定的值。例如:a = 5;这句代码中5就是一个字常量。字常量(literal constant)可以被分为整数(Integer Numbers), 浮点数(Floating-Point Numbe

2016-05-22 11:55:41 2082

原创 C++基础知识(二)—— 变量和数据类型

你可能觉得这个“Hellow World”程序用处不大。我们写了好几行代码,编译,然后执行生成的程序只是为了在屏幕上看到一句话。的确,我们直接在屏幕上打出这句话会更快。但是编程并不仅限于在屏幕上打出文字这么简单的工作。为了能够进一步写出可以执行更有用的任务的程序,我们需要引入变量(variable)这个的概念。      让我们设想这样一个例子,我要求你在脑子里记住5这个数字,然后再记住2这个

2016-05-22 11:47:16 8123

原创 C++基础知识(一)—— C++程序结构

下面我们从一个最简单的程序入手看一个C++程序的组成结构。// my first program in C++#include using namespace std;int main() {    cout     return 0;}Hello World!      上面左侧显示了我们的第一个程序的源代码,代码文件名称为

2016-05-22 11:30:56 10383 2

原创 C++学习基础篇 —— 引用(&)的用法和应用

一、引用简介  引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。  引用的声明方法:类型标识符&引用名=目标变量名;  【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名  说明:  (1)&在此不是求地址运算,而是起标识作用。  (2)类型标识符是指目标变量的类型。  (3)声明引用时,必须同时对其进

2016-05-21 02:01:58 8252

原创 Linux下ln命令使用

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。1.命令格式: ln [参数][源文件或目录][目标文件或目录]

2016-05-15 16:52:04 6643 1

原创 Linux下tail命令使用

linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。一、tail命令语法tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number

2016-05-15 16:40:15 1724

原创 Linux下test命令使用

test命令格式: test condition通常,在if-then-else语句中,用[]代替,即[ condition ]。注意:方括号两边都要用空格。 1、数值比较 =========================================================== 比 较 描 述 -------------

2016-05-15 16:32:55 4292

原创 Linux C 中断言assert()使用简介

assert()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句,它的作用是终止程序以免导致严重后果,同时也便于查找错误。所需头文件:#include 报告错误的条件:assert(0);void assert( int expression ); 参

2016-05-15 16:25:41 25047

原创 Linux 下挂载新硬盘方法

Linux的硬盘识别:一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.1.关闭服务器加上新硬盘2.启动服务器,以root用户登录3.查看硬盘信息#fdisk -lDisk /dev/sda: 42.9 GB, 42949672960 bytes255 hea

2016-05-15 15:57:37 250917 5

原创 Shell 脚本中如何使用make命令

(最近开发的项目中需要编写Shell脚本对整个工程进行自动化编译,即在Shell脚本中使用make命令来进行编译,下面回顾一下Shell脚本中如何使用make命令)        在开发一个系统时,一般是将一个系统分成几个模块,这样做提高了系统的可维护性,但由于各个模块间不可避免存在关联,所以当一个模块改动后,其他模块也许会有所更新,当然对小系统来说,手工编译连接是没问题,但是如果是一个大系统

2016-05-15 15:38:43 35034 1

原创 路由器 VS OSI七层模型

OSI Open Source Initiative(简称OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。OSI参考模型(OSI/RM)的全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织ISO提出的一个网络系统互连模型。它是网络技术的基础,也是分析、评判各

2016-05-01 23:29:41 5674

原创 路由器基础知识详解

第一章  网络互联          网络的根本目的非常简单:方便人们交换所获得的信息。但是网络的应用需求非常复杂:有的用户希望高带宽,但并不要求很长的传输距离;有的用户要求很长的距离,但对带宽要求很低;有的对网络的可靠性要求较高,而另外一些则要求较低,等等。这些都导致了网络的多样化,现在比较常见的局域网有以太网、令牌环和FDDI,广域网有DDN、X.25、帧中继、ATM等,这些网络分别从不同

2016-04-30 10:40:19 44865 8

原创 Telnet 相关知识解析

Telnet是什么?Telnet是teletype network的缩写,现在已成为一个专有名词,表示远程登录协议和方式,分为Telnet客户端和Telnet服务器程序. Telnet可以让用户在本地Telnet客户端上远端登录到远程Telnet服务器上。专业的说,Telnet是Internet上远程登录的一种程序;它可以让您的电脑通过网络登

2016-04-28 22:02:10 7407 2

原创 Shell 脚本知识回顾 (六) —— Shell 函数

一、Shell函数:Shell函数返回值、删除函数、在终端调用函数函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。Shell 函数的定义格式如下:function_name () { list of commands [ return value ]

2016-04-27 20:46:50 996 2

原创 Shell 脚本知识回顾 (五) —— Shell 循环

一、Shell for循环与其他编程语言类似,Shell支持for循环。for循环一般格式为:for 变量 in 列表do command1 command2 ... commandNdone列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。in 列表是可选的,如果不用它,for

2016-04-27 20:34:33 1161 1

原创 Shell 脚本知识回顾 (四) —— Shell 命令及Shell 相关语句

一、Shell echo命令echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg您可以使用echo实现更复杂的输出格式控制。显示转义字符echo "\"It is a test\""结果将是:"It is a test"双引号也可以省略。显示变量name="OK"e

2016-04-27 20:22:49 1070

原创 Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组

一、替换如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子:#!/bin/basha=10echo -e "Value of a is $a \n"运行结果:Value of a is 10这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:Value of a is 10\

2016-04-26 21:51:12 6099

原创 Shell 脚本知识回顾 (二) —— Shell变量

一、Shell 变量Shell支持自定义变量。定义变量定义变量时,变量名不加美元符号($),如:注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留

2016-04-25 23:33:11 1334

原创 Shell 脚本知识回顾 (一) —— 基础篇

(公司最近新项目启动了,需要在原来的产品类型中增加一种新款型,就是类似于以前在Linux内核中增加对某款产品的支持,我们知道想了解一个产品,就要看他的Makefile,如果工程量较大,通常将makefile的执行写在脚本文件中,现在就回顾一下Shell脚本相关知识)一、Shell 简介      Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的

2016-04-25 23:12:53 1938

原创 C++ 学习基础篇(一)—— C++与C 的区别

程序的学习学无止境,只掌握一门语言是远远不够的,现在我们开始C++的学习之路,下面先看下C++ 与C 的区别一、C++概述1、发展历史      1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++

2016-04-24 20:36:30 78573 13

原创 VRP网络操作系统简介

VRP (Versatile Routing Platform)即通用路由平台,是华为在通信领域多年的研究经验结晶,是华为所有基于IP/ATM构架的数据通信产品操作系统平台。运行VRP操作系统的华为产品包括路由器、局域网交换机、ATM交换机、拨号访问服务器、IP电话网关、电信级综合业务接入平台、智能业务选择网关,以及专用硬件防火墙等。核心交换平台基于IP或ATM.      操作系统采用分层设

2016-04-24 19:41:34 9668

原创 VRP平台基本操作

一、显示系统信息display version图上所示可以知道VRP平台信息,运行的版本,运行的时间二、修改和查看设备系统时间参数1.查看时间display clock2.修改系统日期和时间三、进入系统视图界面system-view 可以配置接口、路由协议等

2016-04-23 15:27:19 12401

原创 VRP平台总体介绍及基础配置

一、VRP平台介绍1、VRP概述       通用路由平台(Versatile Routing Platform)是华为公司数据通信产品使用的网络操作系统NOS(Network Operating System)。       网络操作系统NOS是指运行于一定设备上的、提供网络接入及互联服务的系统软件,它主要实现以下功能:a -- 系统资源的合理分配和调度;b -- 网络通信服

2016-04-23 12:14:35 10644

原创 交换机开发(四)—— ARP 基础知识解析

一、ARP协议简介      Internet是由各种各样的物理网络通过使用诸如路由器之类的设备连接在一起组成的。当主机发送一个数据包到另一台主机的过程中 可能要经过多种不同的物理网络。主机和路由器都是在网络层通过IP地址来识别的,这个地址是在全世界内唯一的。 然而,数据包是通过物理网络传递的。在物理网络中,主机和路由器通过其MAC地址来识别的,其范围限于本地网络中。 MAC地址和IP地址是两

2016-04-16 22:59:40 8096 1

原创 交换机开发(三)—— 深入分析三层网络交换机的原理和设计

引言    传统路由器在网络中起到隔离网络、隔离广播、路由转发以及防火墙的作业,并且随着网络的不断发展,路由器的负荷也在迅速增长。其中一个重要原因是出于安全和管理方便等方面的考虑,VLAN(虚拟局域网)技术在网络中大量应用。VLAN技术可以逻辑隔离各个不同的网段、端口甚至主机,而各个不同VLAN间的通信都要经过路由器来完成转发。由于局域网中数据流量很大,VLAN间大量的信息交换都要通过路由器来

2016-04-16 21:12:50 16616

原创 交换机开发(二)—— 三层交换机报文转发过程

三层交换机报文转发过程如图所示,假如主机A想访问主机B,首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0).然后判断目的IP地址(即Host-B的IP地址)与自己的网络地址是不是在同一个子网.因为图中主机A和主机B不在同一子网内,

2016-04-16 20:23:10 9306 2

原创 交换机开发(一)—— 交换机的工作原理

一、交换机的工作原理     当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。交换机之所以能实现这一功能,是因为交换机内部有一个MAC地址表,MAC地址表记录了网络中所有MAC地址与该交换机各端口的对应信息。某一数据帧需要转发时,交换机根据该数据帧的目的MAC地址来查找MAC地址表,从而得到该地址对应的端口,即知道具有该MAC地址的设备是连接在交换机的哪

2016-04-14 19:59:13 32486 4

原创 Linux 网络设备驱动开发(三) —— 网络设备驱动基本原理和框架

一、协议栈层次对比二.Linux网络子系统    Linux网络子系统的顶部是系统调用接口层。它为用户空间提供的应用程序提供了一种访问内核网络子系统的方法(socket)。位于其下面是一个协议无关层,它提供一种通用的方法来使用传输层协议。然后是具体协议的实现,在Linux中包括内核的协议TCP,UDP,当然还有IP。然后是设备无关层,它提供了协议与设备驱动通信的通用接口

2016-04-13 21:17:13 18572 2

原创 Linux 网络设备驱动开发(二) —— Linux 网络栈剖析

协议简介虽然对于网络的正式介绍一般都参考了 OSI(Open Systems Interconnection)模型,但是本文对 Linux 中基本网络栈的介绍分为四层的 Internet 模型(如图 1 所示)。图 1. 网络栈的 Internet 模型这个栈的最底部是链路层。链路层是指提供对物理层访问的设备驱动程序,这可以是各种介质,例如串口链路或以太网设备。链路层上

2016-04-13 21:02:26 7343 1

原创 Linux 网络设备驱动开发(一) —— linux内核网络分层结构

Preface   Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。   Linux内核采用分层结构处理网络数据包。分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护。内核网络结构   在Linux内核中,对网络部分按照网络协议层、网络设备层、设备驱动功能层和网络媒介

2016-04-13 20:47:15 13737

转载 Linux Wireless架构总结

1.  无线网络驱动(ath9k_htc)     ath9k_htc是一个基于USB接口的SoftMAC无线网络适配器。为了其驱动能正常工作,首先必须调用usb_register来注册驱动定义的usb_driver,以借助USB Core的力量来处理与USB协议相关的事件。其代码如下:static struct usb_driver ath9k_hif_usb_driver = {

2016-04-13 20:04:36 8568 3

原创 Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析

前面学习了SDIO接口的WiFi驱动,现在我们来学习一下USB接口的WiFi驱动,二者的区别在于接口不同。而USB接口的设备驱动,我们前面也有学习,比如USB摄像头驱动、USB鼠标驱动,同样都符合LinuxUSB驱动结构:           USB设备驱动(字符设备、块设备、网络设备)                                               |

2016-04-10 21:33:08 22473 6

原创 Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析

对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时候还是先以sdio的卡的设备去注册的。然后检测到卡之后就要驱动他的wifi功能了,显然,他是用sdio的协议,通过发命令和数据来控制的。下面先简单回顾一下SDIO的相关知识:一、SDIO相关基础知识解析1、SDIO接口       SDIO 故名思义,就是 SD 的 I/O 接口(in

2016-04-09 19:11:16 59987 7

原创 Linux 下wifi 驱动开发(二)—— WiFi模块浅析

一、什么是wifi 模块        百度百科上这样定义:        Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议栈以及TCP/IP协议栈。传统的硬件设备嵌入Wi-Fi模块可以直接利用Wi-Fi联入互联网,是实现无线智能家居、M2M等物联网应用的重要组

2016-04-09 19:10:18 31300

原创 Linux 下wifi 驱动开发(一)—— WiFi基础知识解析

一、WiFi相关基础概念1、什么是wifi       我们看一下百度百科是如何定义的:      Wi-Fi是一种可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它是一个高频无线电信号。[1]  无线保真是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性。有人把使用IEEE 802.

2016-04-09 19:09:28 56686 7

原创 Linux 设备驱动的固件加载

作为一个驱动作者, 你可能发现你面对一个设备必须在它能支持工作前下载固件到它里面. 硬件市场的许多地方的竞争是如此得强烈, 以至于甚至一点用作设备控制固件的 EEPROM 的成本制造商都不愿意花费. 因此固件发布在随硬件一起的一张 CD 上, 并且操作系统负责传送固件到设备自身.     硬件越来越复杂,硬件的许多功能使用了程序实现,与直接硬件实现相比,固件拥有处理复杂事物的灵活性和便于升级、

2016-04-09 19:08:20 14627 1

原创 Linux 下的DMA浅析

DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制。使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。DMA经常与硬件体系结构特别是外设的总线技术密切相关。一、DMA控制器硬件结构       DMA允许外围设备和主内存之间直接传输 I/O 数据, DMA 依赖于系统。每一种体系结构DMA传输不同,编程接口也不同

2016-04-07 20:55:54 30587 6

原创 Linux 设备驱动开发思想 —— 驱动分层与驱动分离

前面我们学习I2C、USB、SD驱动时,有没有发现一个共性,就是在驱动开发时,每个驱动都分层三部分,由上到下分别是:1、XXX 设备驱动2、XXX 核心层3、XXX 主机控制器驱动      而需要我们编写的主要是设备驱动部分,主机控制器驱动部分也有少量编写,二者进行交互主要时由核心层提供的接口来实现;这样结构清晰,大大地有利于我们的驱动开发,这其中就是利用了Linux设备驱动开发

2016-04-07 20:11:37 14411

原创 Linux的mmap内存映射机制解析

在讲述文件映射的概念时,不可避免的要牵涉到虚存(SVR 4的VM).实际上, 文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施,好似用户将文件映射到自己地址空间的某个部分,使用简单的内存访问指令读写文件;另一方面,它也可以用于内核的基本组织模式,在这种模式种,内核将整个地址空间视为诸如文件之类的一组不同对象的映射.中的传统文件访问方式是,首先用

2016-04-07 19:48:38 22494

原创 路由器开发(二)—— 路由器工作原理

当信息需要在两个网络之间传输时,常用路由器这种互连设备来负责数据的传输。路由器的主要工作是:路径的决定和数据包的转发(从路由器一个接口输入,然后选择合适接口输出);维护路由表。    路由器工作的方式非常简洁明了,从接收报文中抽取目的地址,并确定地址中的网络号,查找路由选择表以获得与目标网络相匹配的表项。在路由选择表中的匹配表项中包括下一站、目的地、输出接口和其它与路由有关的参数。报文被封装在

2016-04-05 14:38:46 20644 2

98DX3336芯片手册

98DX3336

2016-07-06

vim配置(程序自动补全)

使用过Source Insight的人一定对它的自动补全功能印象深刻,在很多的集成开发环境中,也都支持自动补全。vim做为一个出色的编辑器,这样的功能当然少不了。至于如何实现程序自动补全,网上教程很多。这里,我将自己用的配置文件发给大家,大家可以移步(待会会补上地址),只要简单的两步,就能实现vim的程序自动补全功能,大大增加了在vim上的开发效率。

2015-12-26

空空如也

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

TA关注的人

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