自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (4)
  • 收藏
  • 关注

原创 数字图像处理(第三版)入门到放弃---第一章 绪论

数字图像处理基础学习

2017-04-10 20:43:15 1573

转载 QPBOC交易流程详解--POS与卡片的数据交互进行分析

QPBOC交易,也就是快速的借记贷记。很多人都容易混淆了QPBOC,PBOC和电子现金、电子钱包的概念。首先,电子钱包早在PBOC2.0的规范里面就去掉了,在PBOC3.0里面把MSD也去掉了。因此,最新的PBOC3.0规范里面,定义了三种交易,就是QPBOC,PBOC以及电子现金。这三个交易的关系有点错综复杂,PBOC是最基础的借记贷记流程,电子现金,与PBOC的流程基本一致,纯

2015-06-18 14:35:10 564

转载 ECB CBC and 3DES

从上一篇《DES 算法详述》文章中,已经知道了DES算法的详细过程,但上一篇文章主要解决的是一个八字节数据DES加密的问题,这一篇文章要解决数据加密——数据补位的问题、DES算法的两种模式ECB和CBC问题以及更加安全的算法——3DES算法。 一、数据补位DES数据加解密就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,按照

2015-04-18 19:43:17 517

转载 DES 算法详述

DES算法总的说来可以两部分组成:一、对密钥的处理。这一部分是把我们用的64位密钥(实际用的56位,去掉了8个奇偶校验位)分散成16个48位的子密钥。二、对数据的加密。通过第一步生成的子密钥来加密我们所要加密的数据,最终生成密文。下面就通过这两部分分别介绍DES算法的实现原理。 一.密钥分散——子密钥的生成64比特的密钥生成16个48比特的子密钥。其

2015-04-18 19:42:00 609

转载 根据年月日推算是星期几的公式

有时候,想知道公元某年某月某日是星期几,可以用下面的公式算出来:  这里的方括号表示只取商的整数部分。式中:x:这一年是公元多少年。y:这一天是这一年的第几天。s:星期几。不过要先除以7,再取余数。没有余数是星期日,余数是1、2、3、4、5、6,分别是星期一、星期二、星期三、星期四、星期五、星期六。比如,2010年国庆节(10月1日)是星期几?x=201

2015-03-28 23:55:34 6181

转载 转如何学好C语言

如何学好C语言  我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个:虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。大量的封装好的类库也屏蔽了很多实现细节。一段时间后,你会发现你知其然

2015-03-09 22:38:34 728

转载 __I、 __O 、__IO volatile是什么?怎么用?

__I、 __O 、__IO是什么意思?这是ST库里面的宏定义,定义如下:#define __I volatile const /*!< defines 'read only' permissions */#define __O volatile /*!< defines 'write only' permissions */#define __IO volatil

2015-02-11 09:32:30 362

转载 PKI系统深入介绍

公钥基础设施(Public Key Infrastructure,简称PKI)是目前网络安全建设的基础与核心,是电子商务安全实施的基本保障,因此,对PKI技术的研究和开发成为目前信息安全领域的热点。本文对PKI技术进行了全面的分析和总结,其中包括PKI组成、证书认证机构CA、PKI应用、应用编程接口和PKI标准等,并对CA的开发做了简要分析。本文对PKI,特别是CA的开发、应用和普及具有一定的促进

2015-01-11 16:39:55 525

转载 PKI入门级介绍

随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施( PKI, Public Key Infrastructure )逐步在国内外得到广泛应用。我们是否真的需要 PKI , PKI 究竟有什么用?下面通过一个案例一步步地来剖析这个问题 : 甲想将一份合同文件通过 Internet 发给远

2015-01-11 16:38:42 438

转载 数字证书原理

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理解这部分内容

2015-01-11 16:36:33 436

转载 PKI技术原理(收集 整理 归纳)

对称加密         symmetric cryptographic非对称加密     asymmetric cryptographic密钥交换协议 key agreement/exchange哈希算法          Hash报文认证码      MAC数字签名          digital signature数字证书          digital ID/c

2015-01-11 16:28:58 686

转载 qPBOC/MSD, qVSDC/MSD, Paypass和EMV之间有什么关系

EMV是3个卡组织,欧陆卡被MasterCard收购后,日本的JCB又加入,因此,目前EMVCo由Visa,MasterCard,JCB主导。EMV在中国的本地化版本为中 国人民银行的《PBOC2-借贷记部分》。EMV规范本身分成Level1的电气层和协议层,以及Level2的应用层,做程序的应该都清楚这之间的区别至于版本,EMV目前的最新版本为EMV2000 4.2,不过市场上的

2015-01-11 13:29:39 2118

转载 电子钱包、电子现金与qPBOC

电子钱包、电子现金与qPBOC电子钱包、电子现金与qPBOC  自从PBOC2.0发布后,相对于原来只定义了电子钱包和电子存折应用的PBOC1.0而言,增加了借贷记应用,以及基于借贷记应用的电子现金和qPBOC。而且随着芯片卡在小额支付领域的优先试点使用,使得“电子钱包”、“电子现金”、“小额支付”、“非接小额”、“qPBOC”、 “闪付”、“QuickPass”、“UPC

2015-01-10 22:21:15 541

转载 ARM存储格式之 大端小端

我们知道在内存中数据是以字节为单位进行存储的,每个地址单元对应着一个字节(byte),一个字节为8位(bite)。但是很多时候数据除了8bit额char外,还有16bit的short,32位的long型(要看具体的编译器),必然存在多字节安排的问题。不同的计算机存放多字节值的顺序不同,有些机器在起始地址存放低位字节(低位先存),即小端模式;有的机器在起始地址存放高位字节(高位先存),即大端模式。基

2014-07-04 21:12:58 1094

转载 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!

以前写单片机程序时总是把所用函数和变量都写在一个c文件里,后来遇到大点的项目,程序动则几千行,这种方式无疑会带来N多麻烦,相信大家都有所体验吧!        后来学会了在keil里进行模块化编程,即只把功能相同或相近的函数写在同一个c文件,这样以来一个项目往往由很多个c文件组成,但又带来一个问题即是某些c文件之间需要相互通信,一般我们都采用了全局变量,对吧。很多同学虽然知道在其它c文件里引用

2014-03-28 11:28:27 1687

转载 error: #70: incomplete type is not allowed——已解决!

今天在使用sizeof与数组时总是编译出错,百思不得其解,折腾了半天问题终于解决了!现在此做点笔记,警醒自己也方便他人!        代码结构如下:在某个c文件里定义并初始化了 const unsigned char AT_Uart_Ask[ ]这个数组,在另一个c文件要用到此数组,于是用extern声明如下:extern const unsigned char AT_Uart_As

2014-03-28 11:15:06 5176

转载 Linux下Gcc生成和使用静态库和动态库详解(转)

Linux下Gcc生成和使用静态库和动态库详解(转)原文地址:http://my.chinaunix.net/space.php?uid=23592843&do=blog&id=223539一、基本概念1.1什么是库在windows 平台和linux 平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows 和linux

2014-03-12 15:26:01 568

转载 linux下libusb的安装与测试

@2013/5/140.libusb的介绍:参考[1]1.环境:vmware_fedora_10(linux-2.6.x)2.获取源代码:http://sourceforge.net/projects/libusb/  (最好选择libusb-1.0.9版本,下载次数最多,自是有它的道理)3.解压源码tar xjvf libusb-1.0.9.tar.bz2 按照I

2014-03-11 21:14:49 970 1

转载 libusb的嵌入式移植

linux对usb已有了比较完善的支持,但是看了一下原理还有代码,还是觉得一头雾水!有人推荐libusb,在网上搜了一下资料,嗯,感觉确实简单多了!下面先介绍一下libusb:Linux 平台上的usb驱动开发,主要有内核驱动的开发和基于libusb的无驱设计。1、为什么要开发libusb对于内核驱动的大部分设备,诸如带usb接口的hid设备,linux本身已经自带

2014-03-11 21:11:19 538

转载 基于libUSB的USB设备固件更新程序(数据传输部分)

文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步。libUSB-Win32给出的example里面,有一个bulk.c文件,分析其关键代码,结合libusb官方文档,摘出其关键代码如下:1234567int main(void){    u

2013-12-04 00:03:01 860

转载 libusb开发者指南

1   介绍1.1   概览1.2   当前OS支持2   API2.1   设备与接口2.2   超时2.3   数据类型2.4   同步2.5   返回值3   函数3.1   核心函数3.2   设备操作3.3   控制传输3.4   块传输3.5   中断传输3.6   不可移植4   例子4.1   简单例子4.2   源码包的例子4.3   

2013-12-03 23:57:21 920

转载 libUSB

使用libusb,具体如下:1 打开设备:C/C++ code?12345678910111213141516171819202122232425

2013-12-03 23:46:39 780

转载 linux HID

//Linux设备驱动之HID驱动 源码分析http://blog.chinaunix.net/uid-20543183-id-1930836.htmlHID是Human Interface Devices的缩写.翻译成中文即为人机交互设备.这里的人机交互设备是一个宏观上面的概念,任何设备,只要符合HID spec,都可以称之为HID设备.常见的HID设备有鼠标键盘,游戏操纵杆等等

2013-12-03 23:44:37 1662

转载 linux 停 HID 设备 节点文件 访问 查找 VID PID

inux 下 HID 设备 节点文件 访问 查找 VID PID如题:我的 HID 设备在windows XP 系统可以枚举,找到,通过 readfile,writefile读写在linux 下 枚举成功,但是在 /dev 目录下,看到的节点文件 是“1-1”,可以 open,但是 ioctl时,拿到的VID PID 都是 0  代码如下:         in

2013-12-03 22:42:53 1200

转载 (备用)libusb 百度百科文件

备用)libusb 百度百科资料libusb 驱动开发向来是内核开发中工作量最多的一块,随着USB设备的普及,大量的USB设备的驱动开发也成为驱动开发者手头上做的最多的事情。本文主要介绍Linux平台下基于libusb的驱动开发,希望能够给从事Linux驱动开发的朋友带来些帮助,更希望能够给其他平台上的无驱设计带来些帮助。文章是我在工作中使用libusb的一些总结,难免有错误,如有不当的地

2013-12-03 22:41:41 535

转载 通过HIDDEV编程接口读取易方数码笔的坐标数据

易方数码笔缺省是一个标准的USB HID设备(Mouse),在OS为Android的平板电脑上接入时,基于USB Mouse形式输出的笔迹精度不够,为此,我们将其切换至hiddev设备类型,通过发送相关命令来获得笔输出的原始坐标信息,这样精度就大大提升了。基于USB HID协议,除可实现为普通的输入设备外,也可用作为有自定义通讯功能的设备。事实上,当前Linux 内核中已提供了这两种HID事件

2013-12-03 21:34:44 1145

原创 liunx 学习第一天

工作一年了,一直在做的是单片机开发的工作,STM32有所掌握;由于工作的需要,嵌入式驱动开发方向发展,必须要跑系统,从Linux开始学习,在网上找了很多教程,视频,开发板做实验学习的方式比较容易上手。国嵌嵌入式的学习路线确定下面: 一、嵌入式处理器与裸机程序开发; (有开发板上手跑比较快)1、  ARM处理器工作模式; 2、ARM系统寄存器;3、 ARM寻址方式,4、 ARM汇

2013-08-18 12:36:13 555

转载 对通用输入输出GPIO的深入理解

来源:www.armjishu.com一.GPIO简介    I/O(Input/Output)接口是一个微控制器必须具备的最基本外设功能。通常在ARM里,所有I/O都是通用的,称为GPIO(General Purpose Input/Output)。每个GPIO端口包含8个管脚,如PA端口是PA0~PA7。GPIO模块支持多个可编程输入/输出管脚(具体取决于与GPIO复用的外设的使用情况

2012-08-10 14:44:27 920

吴功宜《计算机网络》笔记

吴功宜版本 《计算机网络》笔记 复习资料

2016-01-08

计算机网络试卷(计算机网络_谢希仁__第五版)

计算机网络试卷 (计算机网络_谢希仁__第五版)

2016-01-08

c语言深度剖析.pdf

目 录 第一章 关键字................................................................................................................................... 9 1.1,最宽恒大量的关键字----auto..........................................................................................11 1.2,最快的关键字---- register............................................................................................... 11 1.2.1,皇帝身边的小太监----寄存器............................................................................. 11 1.2.2,使用 register 修饰符的注意点.............................................................................11 1.3,最名不符实的关键字----static........................................................................................ 12 1.3.1,修饰变量............................................................................................................... 12 1.3.2,修饰函数............................................................................................................... 13 1.4,基本数据类型----short、int、long、char、float、double........................................... 13 1.4.1,数据类型与“模子”............................................................................................... 14 1.4.2,变量的命名规则...................................................................................................14 1.5,最冤枉的关键字----sizeof............................................................................................... 18 1.5.1,常年被人误认为函数...........................................................................................18 1.5.2,sizeof(int)*p 表示什么意思?........................................................................18 1.4,signed、unsigned 关键字................................................................................................ 19 1.6,if、else 组合.................................................................................................................... 20 1.6.1,bool 变量与“零值”进行比较............................................................................... 20 1.6.2, float 变量与“零值”进行比较.................................................................................21 1.6.3,指针变量与“零值”进行比较............................................................................... 21 1.6.4,else 到底与哪个 if 配对呢?............................................................................... 22 1.6.5,if 语句后面的分号............................................................................................... 23 1.6.6,使用 if 语句的其他注意事项.............................................................................. 24 1.7,switch、case 组合........................................................................................................... 24 1.7.1,不要拿青龙偃月刀去削苹果.............................................................................. 24 1.7.2,case 关键字后面的值有什么要求吗?.............................................................. 25 1.7.3,case 语句的排列顺序...........................................................................................25 1.7.4,使用 case 语句的其他注意事项..........................................................................27 1.8,do、while、for 关键字................................................................................................... 28 1.8.1,break 与 continue 的区别..................................................................................... 28 1.8.2,循环语句的注意点...............................................................................................29 1.9,goto 关键字......................................................................................................................30 1.10,void 关键字....................................................................................................................31 1.10.1,void a?............................................................................................................ 31 1.10,return 关键字................................................................................................................. 34 1.11,const 关键字也许该被替换为 readolny....................................................................... 34 1.11.2,节省空间,避免不必要的内存分配,同时提高效率.................................... 35 1.12,最易变的关键字----volatile.......................................................................................... 36 1.13,最会带帽子的关键字----extern.................................................................................... 37 1.14,struct 关键字.................................................................................................................. 38 1.14.1,空结构体多大?.................................................................................................38 1.14.2,柔性数组............................................................................................................. 39 1.14.3,struct 与 class 的区别......................................................................................... 40 1.15,union 关键字..................................................................................................................40 1.15.1,大小端模式对 union 类型数据的影响............................................................. 40 1.15.2,如何用程序确认当前系统的存储模式?........................................................ 41 1.16,enum 关键字.................................................................................................................. 42 1.16.1, 枚举类型的使用方法..........................................................................................43 1.16.2,枚举与#define 宏的区别....................................................................................43 1.17,伟大的缝纫师----typedef 关键字................................................................................. 44 1.17.1,关于马甲的笑话.................................................................................................44 1.17.2,历史的误会----也许应该是 typerename........................................................... 44 1.17.3,typedef 与#define 的区别...................................................................................45 1.17.4,#define a int[10]与 typedef int a[10];.............................................................. 46 第二章 符号..................................................................................................................................... 49 2.1,注释符号.......................................................................................................................... 50 2.1.1,几个似非而是的注释问题...................................................................................50 2.1.2,y = x/*p................................................................................................................. 51 2.1.3,怎样才能写出出色的注释...................................................................................51 2.1.3.1,安息吧,路德维希.凡.贝多芬................................................................. 51 2.1.3.2,windows 大师们用注释讨论天气问题.................................................... 51 2.1.3.3,出色注释的基本要求............................................................................... 52 2.2,接续符和转义符.............................................................................................................. 53 2.3,单引号、双引号.............................................................................................................. 54 2.4,逻辑运算符...................................................................................................................... 54 2.5,位运算符.......................................................................................................................... 55 2.5.1,左移和右移...........................................................................................................55 2.5.2,0x01<<2+3 的值为多少?................................................................................... 55 2.6,花括号.............................................................................................................................. 56 2.7,++、--操作符...................................................................................................................56 2.7.1,++i+++i+++i......................................................................................................... 57 2.7.2,贪心法................................................................................................................... 57 2.8,2/(-2)的值是多少?.........................................................................................................58 2.9,运算符的优先级.............................................................................................................. 58 2.9.1, 运算符的优先级表................................................................................................58 2.9.2,一些容易出错的优先级问题.............................................................................. 60 第三章 预处理................................................................................................................................. 61 3.1,宏定义.............................................................................................................................. 62 3.1.1,数值宏常量...........................................................................................................62 3.1.2,字符串宏常量.......................................................................................................62 3.1.3,用 define 宏定义注释符号?.............................................................................. 63 3.1.4,用 define 宏定义表达式.......................................................................................63 3.1.5,宏定义中的空格...................................................................................................64 3.1.6,#undef....................................................................................................................64 3.2,条件编译.......................................................................................................................... 65 3.3,文件包含.......................................................................................................................... 66 3.4,#error 预处理................................................................................................................... 66 3.5,#line 预处理..................................................................................................................... 67 3.6,#pragma 预处理............................................................................................................... 67 3.6.8,#pragma pack........................................................................................................ 69 3.6.8.1,为什么会有内存对齐?........................................................................... 70 3.6.8.2,如何避免内存对齐的影响....................................................................... 70 3.7, #运算符.............................................................................................................................. 72 3.8,##预算符.......................................................................................................................... 72 第四章 指针和数组......................................................................................................................... 74 4.1,指针.................................................................................................................................. 74 4.1.1,指针的内存布局...................................................................................................74 4.1.2,“*”与防盗门的钥匙............................................................................................. 75 4.1.3,int *p = NULL 和*p = NULL 有什么区别?.................................................... 75 4.1.4,如何将数值存储到指定的内存地址.................................................................. 76 4.1.5,编译器的 bug?....................................................................................................77 4.1.6,如何达到手中无剑、胸中也无剑的地步.......................................................... 78 4.2,数组.................................................................................................................................. 78 4.2.1,数组的内存布局...................................................................................................78 4.2.3,数组名 a 作为左值和右值的区别.......................................................................79 4.3,指针与数组之间的恩恩怨怨..........................................................................................80 4.3.1,以指针的形式访问和以下标的形式访问.......................................................... 80 4.3.1.1,以指针的形式访问和以下标的形式访问指针....................................... 81 4.3.1.2,以指针的形式访问和以下标的形式访问数组....................................... 81 4.3.2,a 和&a 的区别...................................................................................................... 81 4.3.3,指针和数组的定义与声明...................................................................................83 4.3.3.1,定义为数组,声明为指针....................................................................... 83 4.3.3.2,定义为指针,声明为数组....................................................................... 85 4.3.4,指针和数组的对比...............................................................................................85 4.4,指针数组和数组指针......................................................................................................86 4.4.1,指针数组和数组指针的内存布局...................................................................... 86 4.4.3,再论 a 和&a 之间的区别..................................................................................... 87 4.4.4,地址的强制转换...................................................................................................88 4.5,多维数组与多级指针......................................................................................................90 4.5.1,二维数组............................................................................................................... 91 4.5.1.1,假想中的二维数组布局........................................................................... 91 4.5.1.2,内存与尺子的对比....................................................................................91 4.5.1.3,&p[4][2] - &a[4][2]的值为多少?........................................................... 92 4.5.2,二级指针............................................................................................................... 93 4.5.2.1,二级指针的内存布局............................................................................... 93 4.6,数组参数与指针参数......................................................................................................94 4.6.1,一维数组参数.......................................................................................................94 4.6.1.1,能否向函数传递一个数组?................................................................... 94 4.6.1.2,无法向函数传递一个数组....................................................................... 96 4.6.2,一级指针参数.......................................................................................................97 4.6.2.1,能否把指针变量本身传递给一个函数................................................... 97 4.6.2.2,无法把指针变量本身传递给一个函数................................................... 98 4.6.3,二维数组参数与二维指针参数.......................................................................... 99 4.7,函数指针........................................................................................................................ 100 4.7.1,函数指针的定义.................................................................................................100 4.7.2,函数指针的使用.................................................................................................101 4.7.2.1,函数指针使用的例子............................................................................. 101 4.2.7.2,*(int*)&p ----这是什么?....................................................................... 102 4.7.3,(*(void(*) ())0)()------这是什么?..................................................................... 102 4.7.4,函数指针数组.....................................................................................................103 4.7.5,函数指针数组的指针.........................................................................................104 第五章 内存管理........................................................................................................................... 107 5.1,什么是野指针................................................................................................................ 107 5.2,栈、堆和静态区............................................................................................................107 5.3,常见的内存错误及对策................................................................................................108 5.3.1,指针没有指向一块合法的内存........................................................................ 108 5.3.1.1,结构体成员指针未初始化..................................................................... 108 5.3.1.2,没有为结构体指针分配足够的内存..................................................... 109 5.3.1.3,函数的入口校验......................................................................................109 5.3.2,为指针分配的内存太小.....................................................................................110 5.3.3,内存分配成功,但并未初始化.........................................................................110 5.3.4,内存越界............................................................................................................. 111 5.3.5,内存泄漏............................................................................................................. 111 5.3.5.1,告老还乡求良田......................................................................................112 5.3.5.2,如何使用 malloc 函数.............................................................................112 5.3.5.3,用 malloc 函数申请 0 字节内存.............................................................113 5.3.5.4,内存释放.................................................................................................. 113 5.3.5.5,内存释放之后..........................................................................................114 5.3.6,内存已经被释放了,但是继续通过指针来使用............................................ 114 第六章 函数................................................................................................................................... 115 6.1,函数的由来与好处........................................................................................................ 116 6.2,编码风格........................................................................................................................ 116 6.2,函数设计的一般原则和技巧...........................................................................................121 6.4,函数递归........................................................................................................................ 123 6.4.1,一个简单但易出错的递归例子........................................................................ 123 6.4.2,不使用任何变量编写 strlen 函数......................................................................124 第七章 文件结构......................................................................................................................... 127 7.1,文件内容的一般规则....................................................................................................127 7.2,文件名命名的规则........................................................................................................130

2013-08-24

STM32固件库

STM32固件库,英文翻译成中文,开发必要手册,学习STM单片机的需要手册

2012-07-26

空空如也

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

TA关注的人

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