自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 case中定义局部变量的问题

这是今天在编程中碰到的问题,当看到error C2360: initialization of ‘wholeAngleOffset’ is skipped by ‘case’ label的错误信息时,觉得挺莫名其妙的,变量wholeAngleOffset 在后面的语句中又没有被用到,被跳过又有什么关系 呢?上网搜了下解决办法,完整的解答很少,现将在case语句里定义局部变量的情况总结如下:switch( x ){case 1:int i = 1; //error C2360;

2020-09-29 23:02:33 1193

原创 多线程通信

并发:多个程序,一个cpu,看起来同时进行,其实是轮转进行,只不过任务切换很快。并行:在同一时刻,多条指令在多个cpu上运行同步:多线程对同一变量,如果同时执行会造成冲突,同步是为了阻止那些“同时发生”的事情。异步:与同步相对,任何两个彼此独立的操作是异步的,表明事情独立的发生pthread_t在Linux下是unsigned long int,在macos下是结构体pthread_self()获取线程id主线程结束则进程结束,在主线程中调用pthread_exit()函数,进程会等待所有线程结

2020-09-18 21:39:13 147

原创 TCP/IP等网络协议简介

1、 进程/应用层的协议平时最广泛的协议,这一层的每个协议都由客程序和服务程序两部分组成。程序通过服务器与客户机交互来工作。常见协议有:Telnet(是Internet远程登录服务的标准协议和主要方式)、FTP、SMTP(SMTP是一种提供可靠且有效的电子邮件传输的协议)、HTTP(http是一个简单的请求-响应协议,它通常运行在TCP之上)、DNS(域名解析协议),RIP(路由信息协议,用于路由信息的传递),tftp等。FTP协议:FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其

2020-09-15 10:57:35 238

原创 串口 COM口 uart rs232 Linux下tty

串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)接线的时候,一般只接GND、RX(接收)、TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突1、ttyS串行端口终端(/dev/ttySn)   串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 那时它的最大用途就是用来连接终端。这些串行端口所对

2020-08-28 16:33:52 1243

原创 LinuxC从入门到精通

shell1、通配符*表示任意长度字串,但不能表示 圆点 . 和路径符号/?表示单个字母[]表示模式串匹配的字符范围,[a-d]等于[abcd],[ab-dm] *表示以a,b,c,d,m开头的文件名称2、引号单引号中所有字符保持本义,如$保持本意,没有引用变量值的意思双引号中 $ , \ , `具有特殊意义反引号(键盘左上角)括起来的部分会被shell解释为命令行,将命令执行结果取代反引号内容。Linux常用命令tar选项-c建立新的tar文件,-v显示运行过程,-z使用gzip

2020-08-22 18:56:00 381

原创 iic spi uart

iic(Inter Integrated Circuit):两根线:一个时钟线SCL和一个数据线SDA。只有一根数据线,所以是半双工通信。接线不难,而且两根线上也可以挂很多设备(每个设备的IIC地址不同)。同步串行半双工通信。spi(Serial Peripheral Interface, 同步外设接口)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。SPI是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一

2020-08-15 09:51:40 308

原创 字符设备驱动

介绍1、设备号内核通过dev_t来描述设备号,其实质是unsigned int 32位整数,前12位为主设备号,后20位为次设备号,同一类别的设备具有相同主设备号int register_chrdev_region(dev_t from,unsigned count,const char* name)2、设备信息的描述struct cdev{struct kobject kobj;//设备管理机制struct module *owner;//为了加载驱动const struct file_

2020-07-25 16:44:34 88

原创 mfcdll控件中遇到的问题

1、创建线程时,出现“error LNK2019:无法解析的外部符号”解决方式:将线程的实现函数写在了头文件里,CreateThread()写在了相应cpp文件中参照链接https://social.msdn.microsoft.com/Forums/vstudio/en-US/383372c8-e906-4ca4-a719-4e157fb9857c/linker-errror-lnk2019-unresolved-external-symbol-when-using-template-class-in

2020-07-20 17:23:26 134

原创 COM控件中socket创建失败的解决

AfxSocketInit()返回值:如果函数成功执行,则返回非零值,否则为0。参数: lpwsaData 指向WSADATA结构的指针。如果lpwsaData不等于NULL,那么调用::WSAStartup将填充WSADATA结构。这个函数同时也保证在应用程序结束之前调用::WSACleanup。说明: 在你重载的CWinApp::InitInstance函数中调用这个函数以初始化WindowsSockets。在调用 AfxSocketInit() 之前,需要包含 afxsock.h 头

2020-07-20 10:15:02 349

原创 echo和grep简单组合问题

参照此文https://www.cnblogs.com/cyyz-le/p/11305004.html

2020-07-14 11:29:46 2500

原创 嵌入式Linux系统移植

搭建交叉编译环境交叉编译链:解压缩就可以,解压到Linux目录(根目录也可以)arm-linux-gcc是软连接,等于arm-none-linux-gnueabi-gcc,但是如果平台有多个编译器版本,可能不确定arm-linux-gcc是哪一个版本,所以最好用绝对路径将arm-linux-gcc添加到环境变量可以用tab提示,方法:sudo vi environment在PATH中,将arm-linux-gcc绝对路径添加进去,与前面的PATH用逗号隔开然后source命令进行更新交叉编译工

2020-07-09 16:26:29 251

原创 Git笔记

1、创建仓库git init使用当前目录作为Git仓库,我们只需使它初始化。git init该命令执行完后会在当前目录生成一个 .git 目录。使用我们指定目录作为Git仓库。git init newrepo初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。git clone我们使用 git clone ...

2020-05-29 17:20:26 84

原创 IP路由笔记

什么是路由路由信息是指报文发送的路径信息,路由表就是路标牌,路由协议负责收集信息构建地图。路由的开销影响因素:线路延迟、线路带宽、线路占有率、线路可信度、跳数、最大传输单元实际引用中,路由协议会计算传输开销选择开销最小的路径进行信息传输(传输之前就可以计算出开销?)等价路由负载分担:ECMPequal cast multi-path到一个目的地有几条相同开销的路径,IP包在这几个链路上轮流发送两种基本方式:逐包:只根据目的地址来轮流发送逐流:根据不同的数据流来分担(?)优点:提高链路利

2020-05-27 18:07:25 540

原创 TCP三次握手和四次挥手

三次握手过程理解第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入E

2020-05-22 20:15:54 104

原创 剑指offer——C语言版

移步到此链接https://github.com/lintingbin2009/C-language/tree/master/%E5%89%91%E6%8C%87offer

2020-04-11 09:53:56 2444 1

原创 数据结构以及内存中的堆和栈

全局变量在所有函数外定义,作用于全局域,在其他文件中使用的时候需要使用extern关键字声明。局部变量具有局部作用域,在函数执行时存在,函数执行结束即注销。静态局部变量,初始化一次,然后一直存在到程序结束,但是只对定义自己的函数体可见。静态全局变量,作用于全局域,如果有多个文件,只能作用域一个文件,如果有两个源文件定义同一个名字的静态全局变量,不会发生冲突。...

2020-03-31 17:11:27 1382

原创 Bootloader

PC中的BIOS和MBR类似于Bootloader,引导系统启动。常见:U-Boot、ViVi(韩国专门针对ARM9处理器设计的一款Bootloader)

2020-03-31 11:18:26 78

原创 POSIX标准的文件操作

POSIX是可移植操作系统接口,并不局限于UNIX,是一组操作系统调用的规范。POSIX文件操作的函数基本上是和计算机设备驱动的底层操作一一对应的。读者可以把POSIX文件操作理解为对设备驱动操作的封装。主要包括以下函数:#include <sys/types.h>//包含基本系统数据类型#include <sys/stat.h>//包含文件状态#include ...

2020-03-17 15:42:05 1041

原创 互斥锁

https://blog.csdn.net/qq_33242956/article/details/91861208https://www.cnblogs.com/zhanghongfeng/p/10294975.html

2020-03-16 15:46:56 266

原创 Linux编程常用(未完待续)

1、常用工具(1)shell负责解析用户命令,并调用相应的程序,给出结果和出错提示。现在主流Linux发行版使用bash作为默认shell。(2)vivi 新文件名,可以创建文件输入小写i进入编辑模式,按esc回到浏览模式,输入“:”进入命令模式,(命令:w保存,q退出,wq保存退出,q!强制退出),按esc回到浏览模式,输入小写v进入可视模式,不可更改文件,(hjkl对应光标左上右下)...

2020-03-14 19:38:24 139

原创 ARM处理器工作模式、寄存器等笔记

ARM处理器工作状态:Thumb状态和ARM状态。Thumb为16位指令集,ARM为32位指令集。绝大多数指令在ARM状态下工作。工作模式:1、用户模式(usr),正常的程序执行状态2、快速中断模式(fiq),告诉数据传输和通道处理3、外部中断模式(irq),通用中断处理4、管理模式(svc),操作系统使用5、数据访问终止模式(abt),虚拟内存和存储保护使用6、系统模式(sys)运...

2020-03-13 17:07:54 569

原创 ARM指令集(未完待续)

寻址方式1、立即寻址立即寻址方式中操作数已经写在了指令里,取出指令时会把操作数也取出来。这是最简单的寻址方式,如下SUBS R0, R0, #1 ;R0减一写回R0MOV R0, #0xff00 ;给R0赋值0xff00立即寻址使用“#”表示数值。2、寄存器寻址方式该寻址方式中,操作数存放在寄存器中,指令直接读取寄存器即得到操作数。如下MOV R1, R2 ;把R2...

2020-03-13 16:51:22 267

原创 构造函数和析构函数

构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。如果程序员没有编写构造函数,则 C++ 会自动提供一个,这个自动提供的构造函数永远不会有人看到它,但是每当程序定义一个对象时,它会在后台静默运行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。默认的构造函数没有任何参数,但如果需要,构造函数...

2020-03-10 09:55:39 704

原创 虚函数和纯虚函数

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:class A{public:    virtual ...

2020-03-10 09:34:36 272

原创 排序简介

堆排序:https://www.cnblogs.com/chengxiao/p/6129630.html

2020-03-09 19:52:51 75

原创 二叉树知识

二叉树的深度优先遍历(DFS)与广度优先遍历(BFS)DFS深度优先遍历:从根节点出发,沿着左子树方向进行纵向遍历,直到找到叶子节点为止。然后回溯到前一个节点,进行右子树节点的遍历,直到遍历完所有可达节点为止。利用数据结构“栈”,父节点入栈,父节点出栈,先右子节点入栈,后左子节点入栈。递归遍历全部节点。DFS:ABDGCEFHBFS广度优先遍历:从根节点出发,在横向遍历二叉树层段节点的基础...

2020-03-09 19:50:58 401

空空如也

空空如也

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

TA关注的人

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