自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【直观详解】线性代数的本质

【阅读时间】1小时左右 words 14069words【内容简介】将只停留在数值运算和公式的线性代数推进到可视化几何直观(Visual Geometric Intuition)的领悟上,致敬3B1B的系列视频的笔记,动图也都来自于视频。内容涉及到基变换,叉积,逆矩阵,点积,特征向量与特征值。每一章节都有一句经典的名言,非常有启发性在笔记开始之前,想象学习一个事物(概念)的场景:我们需要学习...

2020-02-27 16:14:07 3059 1

原创 工作问题经验整理(2)——带版本号so库文件含义和主程序链接so库机制

一、(20190412)1、问题描述:库的生成:项目工程 TestProj 中使用zlog开源日志库,使用两种方式编译生成so库:A:使用源码中自带makefile进行编译,会产生libzlog.a/libzlog.so/libzlog.so.1/libzlog.so.1.1(A) 四个文件; B:通过zlog 中的源码文件,自己在 eclipse 中创建 生成so库 的项目工程 ...

2019-04-12 11:43:51 2350

原创 工作问题经验整理(1)——在so库中日志写到主程序日志文件

一、(20190316) 1、问题描述:需要在so库中写日志,可以采用两种方法(网络开源日志库很多,比如zlog日志库):(1)so库自己定义写日志函数,自己管理日志文件; (2)在调用so库的主应用程序中写日志,同时需要将so库中的日志写入到主应用程序的日志文件里面,由主应用程序统一进行日志写等级控制和日志文件管理;2、问题分析:so库自己定义写日志且自己管理日志文件,只需要定...

2019-03-16 09:09:48 1025 1

原创 Linux下5种IO模型以及阻塞/非阻塞/同步/异步区别

目录1. 引言2. Linux下的五种I/O模型2.1 I/O发生时涉及的对象和阶段2.2 阻塞I/O模型(blocking I/O) 2.3 非阻塞I/O模型(non-blocking IO)2.4 I/O复用模型(I/O multiplexing)2.5 信号驱动I/O模型(Signal-driven I/O)2.6 异步I/O模型(Asynchronous I...

2018-11-14 17:47:11 4941 1

转载 [转]正则表达式验证Ip地址(绝对正确)

之前一直不太会写正则表达式,很多要用到正则表达式的都直接百度,像上次要用正则表达式验证是否是合法的ip地址,然后就上网找,结果就是没找到一个对的,今天就为大家贡献一下,写个对的,并做一下解析。(建议大家还是去看书去规范的学一下,不要直接百度,不然都是坑)。iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式下面给出相对应的正则表达式:"^(1\\d...

2019-12-21 16:49:41 709

原创 工作问题经验整理(3)——使用"/proc/self/exe"获取程序绝对路径

1、问题描述:(1)原来在linux执行可执行文件Tester,启动脚本都是直接cd到Tester所在路径(假设为路径A),然后再启动Tester;(2)这次在其他目录(假设为路径B)启动ester,发现Tester在打开某些配置文件的时候失败,提示找不到对应文件;2. 问题分析:跟踪代码发现,Tester执行程序 获取到的运行目录出错,获取到了路径B的绝对路径,并没有获取到Te...

2019-09-20 16:53:44 5763

原创 vs2017编译项目报错:Microsoft.Cpp.Clang.targets(212,5): error MSB6006 处理方法

目录一、问题描述​二、原因分析三、配置详细信息四、详细信息分析五、解决方案六、不足或缺点一、问题描述编译项目的时候,报下面错误,截图如下:二、原因分析错误显示退出代码为5(5=accessdenied),怀疑检查目标目录是否可写或是否可以访问到;三、配置详细信息为了进一步定位问题,通过vs2017,在工具->选项->项目和...

2019-05-08 16:26:38 1888

原创 sqlite3接口API函数备注(2)

目录一、打开数据库文件二、预查询过程:准备-执行-完成三、扩展:使用参数化SQL (sqlite3_prepare_v2 )sqlite3_prepare_v2 和 参数化SQL 使用示例:四、封装查询sqlite3_exec五、遗留查询接口(不推荐使用)sqlite3_get_table六、格式化SQL语句sqlite3_mprintf非标准格式化(%...

2019-04-04 23:52:39 3683

原创 工作遇到小技巧

一、xlsx表中需要知道某一列数据是否连续数字,使用xlsx自带的 IF函数 可以实现:二、vs2017 快捷按钮(1)F12:跳转到函数定义;(2)Alt+F12:本窗口显示函数定义;Esc 退出;...

2019-04-04 10:09:13 162

原创 sqlite3操作备注(1)

目录一、基本操作命令(Linux)二、使用.output/.dump/.read 命令,通过脚本来 保存或创建 数据库表三、另一种使用 .dump 命令导出导入整个数据库 的例子四、使用 .import 导入数据库表的内容五、附加数据库 attach/detach一、基本操作命令(Linux)1. sqlite3 数据库不用创建,系统命令行下直接执行"sql...

2019-04-03 11:24:06 2521

转载 ECC加密算法入门介绍

在线搜索 | 有问题找看雪ECC加密算法入门介绍标 题:ECC加密算法入门介绍 作 者:zmworm 时 间:2003/05/04 08:32pm 链 接:http://bbs.pediy.comECC加密算法入门介绍作者 :ZMWorm[CCG]E-Mail:[email protected]主页 :Http://ZMWorm.Yeah.Net/前言 同...

2019-03-04 16:03:53 345

转载 全面认识电子现金、电子钱包、qPBOC、闪付、UPCash

  最近,小编所在的一个金融大咖群里出现了一场关于电子钱包、电子现金、非接小额、脱机交易等等方面的讨论,小编入行不久关于技术知识了解甚微,看着这些专业名词、英文缩写有点像丈二的和尚。为了能大致弄懂这些大咖们在说些什么,我恶补了一下金融IC卡以及相关应用方面的知识,在此分享给大家。文章内容大多来源于网络和业内前辈们的分享,我只是个搬运工,还请大家轻喷。  一、关于金融IC卡领域的规范  由E...

2019-03-01 18:08:58 1637

转载 金融tag对照表

tag 说明 格式 长度 值 描述 4F 应用标识符(AID) b 注册应用提供商标识(RID)和专用标识符扩展:A000000333010101A000000333确定UICS注册应用提供商(所有的卡片都一样),010101表明UICS借记应用。 50 应用标签 ans 5...

2019-02-28 09:48:04 779 2

原创 支付机构AID汇总(部分)

AID-应用标识符的组成规则AID:即唯一标识一个应用,分为两部分,RID(5字节)+PIX(最多11字节)RID:注册标识符,由ISO组织来分配,标识一个全球唯一的应用提供商,一般是分配给卡组织。PIX:扩展应用标识符,一般是由应用提供商自己定义。 Card scheme RID Product PIX ...

2019-02-28 09:43:20 1839

转载 非接环境(PPSE)和接触环境(PSE)的FCI有什么区别

FCI 产生区别的原因在于非接环境做交易有可能走快速支付的流程,为了减少交易时间就必须要优化指令流。有人可能会有疑问,如果是走非接PBOC,PPSE的FCI是否就可以和PSE一样了?答案是否定的,因为在选择PPSE阶段,卡片并不知道这笔交易后面会走借贷记还是快速支付。首先,PPSE环境的交易不再支持目录选择方法建立AID列表,因为这种轮询的查找方式确实非常耗时间。对于目录选择方法,PSE的...

2019-02-20 10:11:40 3232

原创 Linux下uboot学习备记

1、uboot不可以在挂载目录下进行配置和编译uboot在编译之前需要先根据不同开发板进行配置,比如"make x210_sd_config"进行配置之后,才可以执行"make"进行编译;注意uboot在Makefile文件中引入了uboot编译配置文件mkconfig,mkconfig内部会有创建符合链接的指令,所以配置编译uboot的时候不可以在挂载目录下进行【使用虚拟机编译windows...

2018-11-26 10:51:27 315 1

原创 Linux内存管理之SLAB内存分配器

目录一、前言1、 为什么需要SLAB内存分配器2、 SLAB内存分配器作用3、 SLAB内存分配器工作机制4、 SLAB相关说明     (1)SLAB与伙伴(Buddy)算法     (2)SLAB与对象     (3)SLAB与per-CPU缓存二、SLAB内存分配器结构分析1、SLAB内存分配器高层组织结构2、 kmem_cache定义3、km...

2018-11-20 09:23:28 1191

转载 kmalloc分配内存大小的限制和宏的一种用法

kmalloc是通过cache来实现的, 只不过每次kmalloc的大小不同, 因此是从不同的cache中分配:/* include/linux/slab.h */// 注意kmalloc是在头文件中定义的static inline void *kmalloc(size_t size, gfp_t flags){ if (__builtin_constant_p(size)) ...

2018-11-19 17:58:17 1091

转载 kmalloc/kzalloc/vmalloc/malloc和get_free_page的区别

目录1. 简述2. linux内存分布图:​2.1 kmalloc2.1.1 kmalloc和get_free_page申请内存方式2.1.2 kmalloc的用法3、kzalloc4、vmalloc5、kmalloc、get_free_page和vmalloc的区别:6、用户空间申请内存malloc1. 简述kmalloc申请的是较小的连续的物理内存,...

2018-11-19 09:31:07 368

原创 select与阻塞/非阻塞IO

目录1、引言(select应用场景)2、select意义3、select 说明4、 select使用例子5、浅谈select阻塞机制1、引言(select应用场景)很多人把【阻塞/非阻塞socket】和select联系在一起,需要指明select函数与【阻塞/非阻塞socket】没有半毛钱的关系。select函数本身是阻塞的(与socket是否阻塞并没有关系), 直到:...

2018-11-14 10:57:11 5340

转载 深入浅出Linux 设备驱动编程

【转自】https://www.cnblogs.com/zhang-xiao/archive/2013/01/02/2842351.html目录1.引言2.Linux 内核模块 3.字符设备驱动程序4.设备驱动中的并发控制5.设备的阻塞与非阻塞操作6.设备驱动中的异步通知7.设备驱动中的中断处理8.定时器9.内存与I/O 操作10.结构化设备驱动程序...

2018-11-12 11:25:41 1204 2

转载 linux内核中的get_user和put_user

内核版本:2.6.14CPU平台:arm嵌入式开发交流群:289195589,欢迎加入!在内核空间和用户空间交换数据时,get_user和put_user是两个两用的函数。相对于copy_to_user和copy_from_user(将在另一篇博客 linux内核中的copy_to_user和copy_from_user 中分析),这两个函数主要用于完成一些简单类型变量(char、in...

2018-11-12 10:28:32 5765

转载 linux内核中的copy_to_user和copy_from_user

Kernel version:2.6.14CPU architecture:ARM920TAuthor:ce123(http://blog.csdn.net/ce123)1.copy_from_user在学习Linux内核驱动的时候,经常会碰到copy_from_user和copy_to_user这两个函数,设备驱动程序中的ioctl函数就经常会用到。这两个函数负责在用户空间和内核...

2018-11-12 10:19:06 1567

转载 module_init解析

module_init这个函数的具体功能和执行过程,在kernel源码目录中找到include\linux\init.h文件 #define module_init(x) __initcall(x); 有对module_init 的定义,我们发现 module_init(x) 是一个宏定义,那么_initcall(x)又是什么呢?#define __initcall(fn) d...

2018-11-12 09:13:23 667

转载 ioctl()分析——从用户空间到设备驱动

一个字符设备驱动通常会实现常规的打开、关闭、读、写等功能,但在一些细分的情境下,如果需要扩展新的功能,通常以增设ioctl()命令的方式实现,其作用类似于“拾遗补漏”。在文件I/O中,ioctl扮演着重要角色,本文将以驱动开发为侧重点,从用户空间到内核空间纵向分析ioctl函数。 用户空间的ioctl()#include <sys/ioctl.h> int ioctl...

2018-10-23 10:28:05 958

转载 PNP三极管和NPN三极管的开关电路

===================================================================三极管,全称应为半导体三极管,也称双极型晶体管、晶体三极管,是一种电流控制电流的半导体器件·其作用是把微弱信号放大成幅度值较大的电信号, 也用作无触点开关。晶体三极管,是半导体基本元器件之一,具有电流放大作用,是电子电路的核心元件。三极管是在一块半导体基片上制作...

2018-10-19 12:01:36 36362 2

转载 S3C2440的内存管理单元MMU学习笔记

1.MMU简介   MMU(Memory Management Unit),内存管理单元,主要职责:将虚拟地址映射为物理地址,提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。2.基本概念1)地址的分类一个程序在运行之前,没有必要全部装入内存,仅需要将那些要运行的部分先装入内存,其余部分在用到时...

2018-06-25 11:36:11 961

转载 (嵌入式)关于arm中的存储控制器

实验目的:由于开发板(JZ2440 V3)上电后从Nand flash启动CPU时,CPU会通过内部的硬件将Nand flash的前4K数据复制到称为“Steppingstone”的4K内部SRAM中(起始地址为0),然后跳到地址0开始执行。这个实验我们先用汇编语言设置好S3C2440芯片内部的存储控制器,使外接的SDRAM可以操作使用:然后把程序本身从“Steppingstone”(即芯片内部的...

2018-06-19 17:01:48 3878

转载 NAND Flash和 NOR Flash的区别

ROM和RAM指的都是半导体存储器,ROM是ReadOnly Memory的缩写,RAM是RandomAccess Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求...

2018-04-21 16:48:48 638

原创 嵌入式linux应用开发完全手册(二)

第二篇 ARM9 嵌入式系统基础实例篇第五章 GPIO接口5.1 GPIO硬件介绍GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗的说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态——是高电平还是低电平。5.1.1 通过寄存器来操作GPIO引脚注解:内存颗粒的逻辑bank理解注解:1. GPIO操作实例参考本书5.2节内容;2. sj...

2018-04-21 11:34:38 675

原创 嵌入式linux应用开发完全手册(一)

第一篇 嵌入式Linux开发环境构建1.1.2 嵌入式发展SCM(Single Chip Microcomputer)单片机;MCU(Micro Controller Unit)微控制器;SoC(System on a Chip):系统级芯片,在一个芯片上由于广泛使用预定制模块IP(Intellectual Property)而得以快速开发的集成电路;1.2 基于ARM处理器的嵌入式Linux系统...

2018-04-08 14:08:50 6583

转载 Win32串口编程

在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。  在Win32下,可以使用两种编...

2018-04-08 14:07:58 185

转载 linux下错误使用pthread_mutex_lock导致程序奔溃问题分析

在进行程序开发过程中,错误使用了pthread_mutex_lock导致程序报如下错误:问题分析:

2018-04-08 14:07:07 2196

原创 服务器中判断客户端socket断开连接的方法

1, 如果服务端的Socket比客户端的Socket先关闭,会导致客户端出现TIME_WAIT状态,占用系统资源。所以,必须等客户端先关闭Socket后,服务器端再关闭Socket才能避免TIME_WAIT状态的出现。2, 在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。client端通过 pipe 发...

2018-04-08 14:06:47 1453

转载 结构体定义:struct与typedef struct 用法详解和用法小结

黑体二 三是关键一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。

2018-01-27 15:52:29 510

转载 SVN创建,切换,合并,删除分支

1.创建分支右击已经存在的SVN项目->branch/tag,弹出框的to path输入新的分支名称,建议/branch/xxx,点击OK就创建出xxx分支.(建议创建前先svn update)2.切换分支右击已经存在的SVN项目->switch,弹出框的to path输入分支名称,上面新建了/branch/xxx分支,如果想要切换/branch/xxx分支,则输入/bra

2018-01-04 09:41:59 1066

转载 服务器中判断客户端socket断开连接的方法

1, 如果服务端的Socket比客户端的Socket先关闭,会导致客户端出现TIME_WAIT状态,占用系统资源。所以,必须等客户端先关闭Socket后,服务器端再关闭Socket才能避免TIME_WAIT状态的出现。2, 在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。client端通过 pi

2017-11-23 00:21:57 7956

转载 linux下错误使用pthread_mutex_lock导致程序奔溃问题分析

在进行程序开发过程中,错误使用了pthread_mutex_lock导致程序概率性的奔溃,奔溃时报如下错误:问题分析:本文分析在Linux应用程序中错误使用pthread_mutex锁时会概率性触发SIG_ABRT信号而导致程序崩溃(库打印输出 :Assertion `mutex->__data.__owner == 0' failed)的原因。首先给出出错的示例程序:

2017-11-22 23:26:39 39027 2

原创 linux网络编程(13)——服务器模型选型

13linux服务器模型选型

2017-04-17 17:32:52 438

原创 linux网络编程(12)——原始套接字编程

12linux原始套接字编程

2017-04-17 17:29:56 372

8大排序算法实现源码

本代码库使用C++实现了几种排序算法(冒泡排序,插入排序,选择排序,快速排序,堆排序,合并排序,希尔排序,基数排序),测试数据可以通过generalRandom.cpp文件产生.各排序算法文件独立,单独编译运行即可.

2016-09-13

MongoDB eclipse tomcat java驱动安装图形演示

MongoDB eclipse tomcat java驱动安装图形演示

2012-12-18

c++类的函数调用实现

构造函数,析构函数,拷贝构造函数,c++类的函数调用

2012-06-14

Fibonacci数列求和的链表实现

用链表实现fibonacci数列求和,通过简明易懂的方式快速掌握链表的定义和使用方法,并在fibonacci求和中给出实际应用!

2012-06-14

空空如也

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

TA关注的人

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