自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shenghua

shenghua

  • 博客(36)
  • 收藏
  • 关注

转载 基础网络概念(五)TCP/IP传输层相关封包与数据、TCP三次握手

声明:本文为笔者复习计算机网络相关知识时的摘录,文章中的图片及语句均出自《鸟哥的Linux私房菜》,这里仅作为整理自用。喜欢鸟哥文章的朋友可以到鸟哥的主页查看:http://linux.vbird.org/TCP/IP 的传输层相关封包与数据网络层的 IP 封包只负责将数据送到正确的目标主机去,但这个封包到底会不会被接受,或者是有没有被正确的接收,  那就不是 IP

2017-05-24 17:47:40 852

转载 基础网络概念(二)CSMA/CD、MAC、MTU、集线器与交换机、全双工与半双工

声明:本文为笔者复习计算机网络相关知识时的摘录,文章中的图片及语句均出自《鸟哥的Linux私房菜》,这里仅作为整理自用。喜欢鸟哥文章的朋友可以到鸟哥的主页查看:http://linux.vbird.org/TCP/IP 的网络层相关封包与数据我们现在知道要有网络的话,必须要有网络相关的硬件,而目前最常见的网络硬件接口为以太网络,包括网络线、网络卡、Hub/Switc

2017-05-24 17:45:43 1035

转载 基础网络概念(二)CSMA/CD、MAC、MTU、集线器与交换机、全双工与半双工

声明:本文为笔者复习计算机网络相关知识时的摘录,文章中的图片及语句均出自《鸟哥的Linux私房菜》,这里仅作为整理自用。喜欢鸟哥文章的朋友可以到鸟哥的主页查看:http://linux.vbird.org/以太网络的传输协议:CSMA/CD集线器是一种网络共享媒体,什么是网络共享媒体啊?想象一下上述的环境就像一个十字路口,而集线器就是那个

2017-05-24 17:43:19 1096

转载 基础网络概念(一)OSI模型、TCP/IP、广域网、局域网、以太网

声明:本文为笔者复习计算机网络相关知识时的摘录,文章中的图片及语句均出自《鸟哥的Linux私房菜》,这里仅作为整理自用。喜欢鸟哥文章的朋友可以到鸟哥的主页查看:http://linux.vbird.org/相关缩略词IP:Internet Protocal;NIC:Network Interface Card 网络卡;节点:具有IP地址的设备

2017-05-24 17:40:29 934

转载 OSI七层与TCP/IP五层网络架构详解

OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助。今天偶又复习了一下:(1)OSI七层模型 OSI中的层 功能 TCP/IP协议族应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层 数据格式化,代码转换,数据加密 没有协议会话层 解除或

2017-05-24 17:36:16 876

转载 OSI七层模型和TCP/IP五层模型详讲

OSI七层模型与TCP/IP五层模型(网摘)OSI七层模型OSI中的层            功能                                                        TCP/IP协议族 应用层                 文件传输,电子邮件,文件服务,虚拟终端         TFTP,HTTP,SNMP,FTP,SMTP,DNS,Tel

2017-05-24 17:33:42 828

转载 OSI七层模型与TCP/IP五层模型——以太网基础01

一、OSI参考模型        今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。 1、OSI的来源        OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。        ISO为了更好的使网络应用更为普及,推出了OSI参考模

2017-05-24 17:30:35 1024

转载 DLL编写教程

半年不能上网,最近网络终于通了,终于可以更新博客了,写点什么呢?决定最近写一个编程技术系列,其内容是一些通用的编程技术。例如DLL,COM,Socket,多线程等等。这些技术的特点就是使用广泛,但是误解很多;网上教程很多,但是几乎没有什么优质良品。我以近几个月来的编程经验发现,很有必要好好的总结一下这些编程技术了。一来对自己是总结提高,二来可以方便光顾我博客的朋友。好了,废话少说,言归正传

2017-05-23 18:11:56 447

转载 Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)一、Arm-Linux程序开发平台简要介绍... 31.1程序开发所需系统及开发语言... 31.2系统平台搭建方式... 4二、Linux开发平台搭建... 52.1安装虚拟工作站... 52.2安装Linux虚拟机... 52.3虚拟机的一些基本配置... 72.3.1建立共享目录... 82

2017-05-23 16:57:20 1670

转载 国外牛人总结的机器学习领域的框架、库以及软件

本文汇编了一些机器学习领域的框架、库以及软件(按编程语言排序)。C++计算机视觉CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统。通用机器学习MLPackDLibecoggsha

2017-05-23 11:19:27 878

转载 双屏、3屏拼接——A卡、N卡——Windows、Linux

双屏、3屏拼接——A卡、N卡——Windows、Linux“折腾是一种生活态度”。买了个显卡,在公司折腾了下双屏和3屏,记录一下。3个20英寸的显示器,分辨率都是1600x900。普通双屏:1个屏幕有任务栏,另一个没有任务栏,分辨率单独设置,壁纸重复显示一张,分辨率都是1600x900。双屏水平拼接:通过显卡驱动设置,操作系统检测到1

2017-05-14 14:42:15 7475

转载 白话经典算法系列之六 快速排序 快速搞定

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序

2017-05-13 21:46:11 371

转载 十大编程算法助程序员走上高手之路

十大编程算法助程序员走上高手之路2014-8-28 16:14| 发布者: joejoe0332||原作者: techug|来自: techug摘要: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比 较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算

2017-05-13 17:59:02 602

转载 main和_main的区别

arm启动程序中当所有的系统初始化工作完成之后,就需要把程序流程转入主应用程序,即呼叫主应用程序。最简单的一种情况是:    IMPORT main    b main    直接从启动代码跳转到应用程序的主函数入口,当然主函数名字可以由用户根据自己的喜好随意定义。    我们还经常见到另一种使用方法    IMPORT __main    B __main

2017-05-11 17:32:14 1596

转载 C-宏

可变参数宏__VA_ARGS__:总体来说就是将左边宏中 ... 的内容原样抄写在右边 __VA_ARGS__ 所在的位置也就是说  define debug(a,b,c... ) printf(a,b,c,__VA_ARGS_)等于是对于不确定有多少的变量都可以先明确调用#define test(format, ...) fprintf (st

2017-05-11 17:26:08 259

转载 嵌入式audio基础(一)接口

audio接口不少,这里就做一个总结介绍。 最常见的3.5mm   衍生出来6.25mm 6.3mm和2.5mm接口  2.5mm接口相对于3.5mm有点就是尺寸小,一些mp3等便携超薄设备上经常使用,缺点就是接触面积小导致噪声比较大。6.25mm和6.3mm的个他正好相反,主要用与一些音响的接口上。 XLR XLR 是由James H. Cannon, 于美国加州

2017-05-11 17:23:37 760

转载 编译结果中各段意义

编译器编译出来的结果在map 或try文件中可以看到很多.text .bss等段却不知道具体的意义,现在就来整理分析一下各段的含义可执行代码段,.text   Windows 3.1和WindowsNT之间的一个区别就是WindowsNT默认的做法是将所有的代码段(正如它们在Windows3.1中所提到的那样)组成了一个单独的段,名为 “.text”。既然WindowsNT使用

2017-05-11 17:19:11 378

转载 linux下vi命令大全(备忘)

linux下vi命令大全(备忘) 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r f

2017-05-11 16:10:50 291

转载 从两道经典试题谈C/C++中联合体(union)的使用

试题一:编写一段程序判断系统中的CPU是Little endian还是Big endian模式?分析:作为一个计算机相关专业的人,我们应该在计算机组成中都学习过什么叫Little endian和Big endian。Little endian和Big endian是CPU存放数据的两种不同顺序。对于整型、长整型等数据类型,Big endian认为第一个字节是最高位字节(按照从低地址

2017-05-11 16:03:45 340

转载 C/C++结构体的一个高级特性――指定成员的位数

在大多数情况下,我们一般这样定义结构体:struct student{       unsigned int sex;       unsigned int age;};对于一般的应用,这已经能很充分地实现数据了的“封装”。但是,在实际工程中,往往碰到这样的情况:那就是要用一个基本类型变量中的不同的位表示不同的含义。譬如一个cpu内部的标志寄存器,假设为16 b

2017-05-11 15:59:04 1168

转载 C/C++堆与栈详悉

C/C++堆与栈详悉-----------------堆与栈一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—   由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) —   一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注

2017-05-10 20:19:26 283

转载 C/C++堆、栈及静态数据区详解

C/C++堆、栈及静态数据区详解五大内存分区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释

2017-05-10 20:17:49 324

转载 用GPIO模拟SPI协议的实现

用GPIO模拟SPI协议的实现一 SPI协议概括SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只

2017-05-10 15:02:51 1097

转载 Linux I2C核心、总线与设备驱动

Linux I2C核心、总线与设备驱动本章导读I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3

2017-05-10 14:52:48 886

转载 应用程序和驱动中使用I2C的流程

应用程序和驱动中使用I2C的流程编写I2C设备驱动有两种方法。一种是利用系统给我们提供的i2c-dev.c来实现一个i2c适配器的设备文件。然后通过在应用层操作i2c适配器来控制i2c设备。另一种是为i2c设备,独立编写一个设备驱动。注意:在后一种情况下,是不需要使用i2c-dev.c的。前一种方法也就是说只要系统实现了I2C适配器的驱动并生成了设备文件, 那么挂在其上面的I2C设备也可以

2017-05-10 14:43:52 2490

转载 STM32各种时钟的区别

[转] STM32各种时钟的区别[原创]:http://m.oschina.net/blog/129357我在原创的基础又从另一位博主处引用了一些内容。 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32。     下面是从网上找的一个STM32时钟框图,比《STM32中文参考手册》里面的是中途看起来清晰一些:  

2017-05-09 11:30:50 1598

转载 I2C总线协议学习笔记

I2C总线协议学习笔记I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL。   SDA传输数据是大端传输,每次传输8bit,即一字节。   支持多主控(multimastering),任何时间点只能有一个主控。   总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.   系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯

2017-05-08 14:44:08 398

转载 C中#if 0 和#if 1&&#ifdef, #else, #endif, #if详细

当注释掉大块代码时,使用"#if 0"比使用"/**/"要好,因为用"/**/"做大段的注释要防止被注释掉的代码中有嵌套的"/**/",这会导致注释掉的代码区域不是你想要的范围, 当被注释掉的代码很大时容易出现这种情况,特别是过一段时间后又修改该处代码时更是如此。 在这里顺便对条件编译(#ifdef, #else, #endif, #if等)进行说明。以下分3种情况:  1. 情况1:

2017-05-07 19:02:23 851

转载 静态链接器构造

静态链接器构造 一、             链接器简介众所周知,高级语言程序编写后需要经过编译、汇编、链接、加载的步骤才能在机器上正常执行。Gcc的处理步骤更加复杂:如果是C语言程序(*.c)作为gcc的输入,gcc首先对高级语言程序进行预编译,然后利用文法分析程序将程序翻译为通用的中间代码,接着gcc对中间代码进行优化后最终生成x86的汇编程序(*.S);下一步gcc的汇编器开始工

2017-05-07 16:44:00 711

转载 那些陌生的C++关键字

那些陌生的C++关键字 学过程序语言的人相信对关键字并不陌生。偶然间翻起了《C++ Primer》这本书,书中列举了所有C++的关键字。我认真核对了一下,竟然发现有若干个从未使用过的关键字。一时间对一个学了六年C++的自己狠狠鄙视了一番,下决心一定要把它们搞明白!图1红色字体给出的是我个人感觉一般大家都会比较陌生的关键字,下边我们逐个学习。图1 C++ 关键字一、typei

2017-05-07 16:40:57 380

转载 虚函数与虚继承寻踪

虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产生成员冲突的问题,虚继承在我看来更像是一种“不得已”的解决方案。多态让对象具有了运行时特性,并且它是软件设计复用的

2017-05-07 16:36:08 419

转载 为何计算机人应该懂一点编译知识?

为何计算机人应该懂一点编译知识?2009年冬,本科计算机《编译原理》课程结业考试结果公布,虽然取得了不错的考试成绩,可是自己除了熟练掌握了那些艰涩难懂的文法分析算法之外,对编译器的工作原理仍然貌似“一无所知”。这让我下定决心在本科毕业设计时,选定了《自定义语言编译器的设计与实现》这个题目,从此与编译领域结下了不解之缘。2012年读研期间,在之前实现的编译器的基础上继而实现了汇编器和静态

2017-05-07 16:21:58 362

转载 汇编器构造

汇编器构造 一、             汇编器简介前面介绍了编译器构造和静态链接器构造的具体方法,而且我们实现了一个将高级语言转化为汇编语言的编译器,同时又实现了一个将多个目标文件链接为一个可执行文件的链接器。现在需要一个连接这两个模块的功能模块——汇编器,它能将一个单独的汇编文件转换为一个可重定位目标文件,如图1-1反映出汇编器在整个编译系统中的地位和功能。 图 1-1

2017-05-07 16:14:39 956 1

转载 高性能IO模型浅析

服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(3)IO多路复用(IO Multiplexi

2017-05-07 16:09:27 212

转载 __I、 __O 、__IO&volatile&const解惑

__I、 __O 、__IO是什么意思?这是ST库里面的宏定义,定义如下:#define     __I       volatile const        /*!#define     __O     volatile                  /*!#define     __IO    volatile                  /*!

2017-05-07 16:05:26 347

转载 volatile详细详悉(C语言知识点1)

volatile 编辑就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。中文名 类型修饰符 外文名 volatile 释    义 易变的 词    性 形容词 属    性 类型修饰符目录1 作用2 例子3 使用地方4 代码5 正确使用6 使用方法7 词典解释

2017-05-06 11:08:42 539

空空如也

空空如也

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

TA关注的人

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