自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux —— tar c v f z

tar ./* -cv -f 111.tar-f 指定压缩包文件名-f, --file=ARCHIVE #使用归档文件或 ARCHIVE 设备压缩和解压-c, --create #创建一个新归档-x, --extract, --get #从归档中解出文件详细信息-v, --verbose #详细地列出处理的文件压缩选项 z-z, --gzip, --gunzip, --ungzip #通过 gzi

2022-02-15 14:23:56 933

原创 vscode使用ssh密匙远程登录ssh,避免每次登录都输入密码

将服务器上的.ssh/authorized_keys文件打开,把生成的客户机上id_rsa.pub文件中的内容复制进入保存

2022-01-27 15:48:45 1288

原创 TCP/IP——大端、小端字节序,网络字节序

不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种:1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说低位值小,就应该放在内...

2020-02-04 16:47:27 5382

原创 C/C++——宏定义作用域

首先,C语言标准中宏定义的作用域是,从定义位置开始,到其当前所在作用域结束,当前所在作用域只有两个,即1.块作用域(一对{}大括号的范围)2.整个文件结尾...

2020-02-04 16:42:56 2455

原创 QT(7)—— 事件系统之窗口系统事件 Unix 操作系统、XCB平台、Glib函数库

从QApplication开始追踪void QApplicationPrivate::createEventDispatcher(){ QGuiApplicationPrivate::createEventDispatcher();}void QGuiApplicationPrivate::createEventDispatcher(){ Q_ASSERT(!even...

2019-11-20 20:39:29 1363 1

原创 QT(6)—— Application的界面,非界面的继承体系

QCoreApplicationqtbase\src\corelib\kernel\qcoreapplication.hclass Q_CORE_EXPORT QCoreApplicationQGuiApplicationqtbase\src\gui\kernel\qguiapplication.hclass Q_GUI_EXPORT QGuiApplication : public ...

2019-11-10 17:37:31 296

原创 QT(5)—— Q_D 与 Q_Q QObject与 QObjectPrivate

核心就是QObject::QObject(QObjectPrivate &dd, QObject *parent) : d_ptr(&dd){ d_ptr->q_ptr = this; //互指}template <typename T> static inline T *qGetPtrHelper(T *ptr) { return ...

2019-11-10 17:37:17 818

原创 QT(4)—— QEventLoop unix

/***************************************************************************** Main event loop wrappers *****************************************************************************//*! Enter...

2019-11-10 17:36:56 1038

原创 QT(3)——Application spontaneous底层的窗口系统

#define qApp QCoreApplication::instance()class Q_CORE_EXPORT QCoreApplication#ifndef QT_NO_QOBJECT : public QObject#endifclass Q_GUI_EXPORT QGuiApplication : public QCoreApplication;一个...

2019-11-10 17:36:27 498

原创 QT——MOC

查表得索引,通过switch把所有的信号或者槽自动预编译成代码即qt_static_metacall函数,通过传入索引得以运行对应的槽函数。connect通过查表把接收者的对象指针和槽函数索引发在发送者的对应信号的索引指明的连接链表中。信号槽简介信号槽是观察者模式的一种实现,特性如下:一个信号就是一个能够被观察的事件,或者至少是事件已经发生的一种通知;一个槽就是一个观察者,通常就是在被...

2019-11-10 17:35:54 939

原创 QT——事件处理机制

它反映了包括Qt在内的GUI应用程序的消息处理模型:  (1) 用户操作界面,被操作系统内核空间中的设备驱动程序感知  (2) 设备驱动程序向操作系统的用户空间的GUI应用程序发出系统消息  (3) GUI应用程序将系统消息转换为信号,进而触发槽函数在GUI应用程序中,一个核心且关键的操作就是将系统消息转换为信号,涉及到Qt的事件处理机制:  (1) Qt平台将系统底层发来的消息转换为...

2019-11-10 17:35:20 1190

原创 C/C++——构造函数中变量和成员的定义顺序、委托构造函数

一、先执行静态成员的构造函数,如果静态成员只是在类定义中声明了,而没有实现,是不用构造的。必须初始化后才执行其构造函数。二、任何抽象基类的构造函数按照它们被继承的顺序构造(不是初始化列表中的顺序)三、任何虚拟基类的构造函数按照它们被继承的顺序构造(不是初始化列表中的顺序)四、任何非虚拟基类的构造函数按照它们被继承的顺序构造(不是初始化列表中的顺序)五、任何成员对象的构造函数按照它们声明的顺...

2019-07-27 18:02:24 1581

原创 QT(1)——对象模型、对象树与析构函数

Qt Parent在Qt中创建对象的时候会提供一个Parent对象指针,下面来解释这个parent到底是干什么的。QObject是以对象树的形式组织起来的。当你创建一个QObject对象时,会看到QObject的构造函数接收一个QObject指针作为参数,这个参数就是 parent,也就是父对象指针。这相当于,在创建QObject对象时,可以提供一个其父对象,我们创建的这个QObject对象会...

2019-07-27 17:45:09 1016

原创 TCP/IP(4)——IP 地址分类,D类IP地址、组/多播MAC地址

IP地址 = 网络号+主机号。 分为A、B、C三类及特殊地址D、E。图划分IP地址划分IP地址原因Internet委员会定义了5种IP地址类型以适合不同容量的网络。因为不同的网络内包含的计算机数量不一样。例如A类网络适合1600万台机器的大型网络,B类6万多,C类只有256台。划分规则IP地址分为公网IP地址和私有IP地址。公网IP是在Internet使用的IP地址,而私...

2019-07-18 21:58:54 7229

原创 TCP/IP(3)——UDP校验和

二进制求出的和如果大于16位时所做的操作,用和值中高16位加上低16位的值作为最终的和值,然后再做取反运算。typedef unsigned short u16;typedef unsigned long u32;u16 ip_sum_calc(u16 len_ip_header, u16 buff[]){ u16 word16; u32 sum=0; u16 i; ...

2019-07-17 21:33:16 558

原创 C/C++——linux默认动态库连接、动态库与静态库混合连接-Wl

linux默认对库的连接是使用动态库在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为:gcc test.cpp -L. -ltestlib如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。如果要指定为连接静态库则使用:gcc test.cpp -L. ...

2019-07-11 23:30:47 1847

原创 TCP/IP(2)——OSI的七层协议、TCP/IP五层协议、每一层设备、每一层协议

OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。该体系结构标准定义了网络互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型。在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性、互操作性和应用的可移植性。I...

2019-07-10 22:03:40 1255

原创 STM32——.bss .data .text 与Code, RO-data , RW-data, ZI-data的关系

核心就是RAM和ROM的作用和区别C语言变量的存储类别内存中供用户使用的存储空间分为代码区与数据区两个部分。变量存储在数据区,数据区又可分为静态存储区与动态存储区。静态存储是指在程序运行期间给变量分配固定存储空间的方式。如全局变量存放在静态存储区中,程序运行时分配空间,程序运行完释放。动态存储是指在程序运行时根据实际需要动态分配存储空间的方式。如形式参数存放在动态存储区中,在函数...

2019-07-09 21:45:24 5726

原创 STM32——Cortex-M的CMSIS中核内外设和片上外设

ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层(英文原文为:a vendor-independent hardware abstraction layer for the Cortex-M processor series a...

2019-07-09 20:00:02 5498

转载 CMAKE(4)—— QT、AUTOUIC、AUTOMOC

AUTOUICShould the target be processed with autouic (for Qt projects).AUTOUIC is a boolean specifying whether CMake will handle the Qt uic code generator automatically, i.e. without having to use the...

2019-07-08 19:14:13 5703

原创 CMAKE(3)—— aux_source_directory包含目录下所有文件以及自动构建系统

aux_source_directory 查找在某个路径下的所有源文件。aux_source_directory(< dir > < variable >)搜集所有在指定路径下的源文件的文件名,将输出结果列表储存在指定的变量中。该命令主要用在那些使用显式模板实例化的工程上。模板实例化文件可以存储在Templates子目录下,然后可以使用这条命令自动收集起来;这样可以避...

2019-07-08 19:12:29 71419 1

原创 CMAKE(2)——GCC、Makefile、CMAKE中宏定义不同方式

CMAKE1.官方的说明Adds -D define flags to the compilation of source files.add_definitions(-DFOO -DBAR …)Adds definitions to the compiler command line for sources in the current directory and below. This...

2019-07-08 18:52:39 4877 1

原创 CMAKE(1)——message,变量定义、判断、比较

消息提示 message输出错误 FATAL_ERRORmessage(FATAL_ERROR "FATAL: In-source builds are not allowed. You should create a separate directory for build files.")  输出警告 WARNINGmessage(WARNING "OpenCV r...

2019-07-08 18:46:33 21587

原创 C/C++——C语言标准、C语言标准库、 C标准库实现glibc, uClibc, Elibc

C语言标准C语言作为一种常用的计算机开发语言,被用于各种领域,尤其是单片机与嵌入式的开发,在现阶段更有着无可替代的作用,我也经常会使用C语言进行各种开发,使用过程中我们经常会听说 GUN C 、ANSI C、标准C这几个术语,在了解这几个术语对应的C标准之前,我们需要先了解三个组织,分别是自由软件基金会,美国国家标准学会以及国际标准化组织。下面对其三个组织进行简单说明:自由软件基金会:是美国...

2019-07-06 21:57:51 1786 1

原创 C/C++——编译器 GCC与LLVM

C类型语言的各种编译器,比如(gcc clang)编译器有关的名词:GNU,GCC,CLANG,LLVM等编译器简单地说,编译器可以看作是一个语言翻译器。就像把中文翻译成英语一样,编译器可以把高级语言翻译成计算机能够执行的机器语言。这样看来,GCC可以算得上是一个精通多国语言的高级翻译官了。最简单的GCC使用指令如下所示:gcc hello.c -o helloGCC接受hel...

2019-07-06 21:55:11 5311

原创 TCP/IP(1)——TCP 三次握手、backlog参数、Recv-Q和Send-Q

TCP 的三次握手client发送SYN到server,将状态修改为SYN_SEND,如果server收到请求,则将状态修改为SYN_RCVD,并把该请求放到syns queue队列中。server回复SYN+ACK给client,如果client收到请求,则将状态修改为ESTABLISHED(半连接?),并发送ACK给server。server收到ACK,将状态修改为ESTABLISH...

2019-07-06 21:09:35 1092

原创 C/C++——extern 、extern "C"、数组名和指针名的区别。

extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用,extern “C”当它与"C"一起连用时,如: extern “C” void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名,而不是...

2019-07-06 21:05:40 680

原创 C/C++——浮点数相等

float,double分别遵循R32-24,R64-53的标准,​​他们的位数分别是23,52,即误差在2-23,2-52;所以float的精度误差在1e-6,double精度误差在1e-15 。所以要判断一个单精度浮点数:则是if( fabs(f_float) <= 1e-6);要判断一个双精度浮点数:则是if( fabs(d_double) <= 1e-15 );判断...

2019-07-06 21:05:04 2840

原创 STM32——时钟、HSE、旁路模式、有源晶振

从时钟源的角度,分为两类外部时钟(E)和内部时钟(I)。从时钟速率的角度,分为两类高速时钟(HS)和低速时钟(LS)。而把它们组合起来就有四种时钟:HSE、HIS、LSE、LSI。至于为什么会有这么复杂的时钟配置,主要是考虑到系统的性能和功耗两个方面的因素吧。单一时钟的话可能会导致性能过剩并且功耗过高。多个时钟的话可以平衡功耗和性能之间的平衡。特此说明一下,系统复位后,默认初始化的是HIS时...

2019-07-02 18:51:32 14025 4

原创 正则表达式(3)—— 示例

示例1123abcfgabcabcd替换成:123hellohellohello方法 – 查找串:abc.*$ 替换串:hello示例2123abcfgabcabcd替换成:123@abcfg@@abc@@abcd@方法 – 查找串:(abc.*)$ 替换串:@\1@示例3str[1]abc[991]str[2]abc[992]st...

2019-07-02 18:10:43 160

原创 正则表达式(2)—— 基础知识

\ 转义字符 如:要使用 “\” 本身, 则应该使用“\”\t Tab制表符 注:扩展和正则表达式都支持\r 回车符CR 注:扩展支持,正则表达式不支持\n 换行符LF 注:扩展支持,正则表达式不支持. 匹配任意一个字符^ 其右边的表达式被匹配在行首。如:^A匹配以“A”开头的行$ 其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行| 或运算符,匹配表...

2019-07-02 18:10:17 244

原创 正则表达式(1)——用起来

1如何将 001章 修改为 第001章,并批量执行。利用notepad++ 打开一个文本文件。里面的章节前面没有 第字。2现在开始查找这种格式的文字查找格式:(\d{1,})章 //加小括号的含义是以后引用要用到,\d匹配一个数字,{1,}是指重复1次以上。替换格式:第$1章 // $1 的含义是引用第一个小括号,如何有第二个小括号就是$2...

2019-07-02 18:08:11 389

原创 C/C++——函数调用栈

ARM体系ARM微处理器共有37个寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R0~R15、一个或两个状态寄存器都是可访问的。有三个特殊的通用寄存器:寄存器R13:在ARM指令中常用作堆栈指针SP寄存器R14:也称作子程序连接寄存器(Subroutine ...

2019-07-01 19:47:44 1104

原创 C/C++——ARM中断处理过程的函数调用解释

https://www.jianshu.com/p/52841b514868ARM希望把中断处理函数也做成C函数的形式,一般C函数的处理过程类似了。进入中断前,首先要把(R0-R3,R12,LR,PSR)保存起来,然后在中断结束后恢复它们。这一切都是通过硬件完成的。但是,中断的返回地址并没有像一般的C函数调用一样存储在LR中。(即LR放的不是前一个的PC,在中断发生时,当前的PC被存在了栈...

2019-07-01 19:40:46 1489 1

原创 STM32、FreeRTOS—— SVC 和 PendSV

问I went through the xTaskStartSechudler() function, which ends up triggering the SVC instruction.and i came to know that it used in only in this function.If i am not wrong , is SVC used to launch t...

2019-07-01 19:36:05 2814

原创 QT——对象的依附性、QThread槽函数运行环境

依附性Qt对象的依附性,在Qt编程中,默认情况下,对象依附于创建自身的线程,若TestThread对象t它是在main()函数中创建的,那么t依附于主线程,而槽函数在其所依附的线程中被调用执行,因此,槽函数TestThread_Slot()是在main线程中执行发送信号的线程 和 接收者所依附的线程。而 slot 函数属于我们在main中创建的对象 thread,即thread依附于主线程队...

2019-07-01 18:16:39 1152 1

原创 STM32——串口溢出ORE的前世今生

当数据接收区或者FIFO区有数据或者满时,又有新数据进来,会导致发生溢出错误,一旦发生溢出错误,RX 移位寄存区虽然能有新数据不断的覆盖,但是数据不会到达RXR或FIFO(现象是:RXNE在ORE置位时不会被置位),导致程序中不能读到新的数据。只有通过ICR清除ORE才能使得RXNE在接收到新数据时置位。串口框图溢出错误属于串口接收USART receiver溢出错误发生的原因FIF...

2019-06-29 14:40:05 7370

原创 UML(4)——类之间的关系

泛化关系(generalization)类的继承结构表现在UML中为:泛化(generalize)与实现(realize):继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示,就是继承关系:(…是…)泛化关系表现为继承非抽象类;实现关系(realize)实现关系用一条带空心箭头的虚线表示;抽象概念,在现实中并无法直接用来定义对象;在C++中用抽象类表示,在JAVA中有...

2019-06-17 19:31:01 451

原创 UML(3)——聚合与组合

组合中部分和全体唇亡齿寒的关系,有部分的存在,全体才称之为全体,每个实例都是其固有特性;聚合中部分的每个实例都不是全体的固有特性,可以有千千万万个部分实例,只要有一个部分的实例存在,组合聚合关系形成的全体任然是其本身。聚本身就暗示了相似的、一样的,很多相似的东西合在一起,谓之聚。组合并不强调相似的东西合而为一,暗示了丰富性,多个不同类型的部分组成了一个独一无二的全体。聚合关系(aggreg...

2019-06-17 19:18:34 42346 2

原创 C++/C 宏定义#define中 “# “和“##“作用

符串化-##是字符串化的意思,出现在宏定义中的#是把跟在后面的参数转成一个字符串;#define strcpy__(dst, src) strcpy(dst, #src)strcpy__(buff,abc) 相当于 strcpy(buff,“abc”)连接符号-####是连接符号,把参数连接在一起#define FUN(arg) my##arg则 FUN(...

2019-06-16 14:12:20 3120

se_20_linux64.zip

文本编辑器slick edit 版本号V20000300 操作系统 linux64

2019-05-14

空空如也

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

TA关注的人

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