C++中函数模版与类模版
摘要:1、什么是模板? (1)可以这样来解释这个问题,例如当我们需要定义多个函数,而这个函数功能其实都是一样的,例如两个数相加的函数, 只是相加的两个数的类型不相同而已,这就导致我们需要定义多个函数;当我们使用了函数模板之后,我们只需要定义 一个函数模板,这个函数模板的功能就是实现两个数相加的操作,而且可
阅读全文
C++运算符重载
摘要:1、什么是运算符重载? (1)运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 因为在实际中确实有这种需求,例如将两个类对象直接相加,直接比较两个类对象的大小.....等等,因为普通的运算符 不能完成这种功能,所以在适当的时候对运算符进行重载,能够给我们的编程带来
阅读全文
C++中const在函数中的用法
摘要:1、const放在函数前面 如果我们的函数的返回值是以 指针形式 返回的,如果在函数前面加上const修饰,则表示指针指向的内容是不能被改变的,并且接收返回值的 指针变量必须是const修饰的,例如: const char *func(.....); // 如果有这样的函数 char *ptr =
阅读全文
C++中static修饰的静态成员函数、静态数据成员
摘要:1、静态成员函数、静态数据成员 在类中,用static修饰的成员函数被称为静态成员函数,而用static修饰的数据成员就称为静态数据成员;与普通的成员函数和数据成员不同, 静态成员函数和静态数据成员有自己独有的特点和用法,定义方法如下: 2、静态成员函数、静态数据成员与普通的成员函数、数据成员有什么
阅读全文
C++友元函数、友元类
摘要:1、什么是友元函数? 友元函数就是可以直接访问类的成员(包括私有数据)的非成员函数,也就是说他并不属于这个类,他是一种外部的函数。 一个外部函数只能通过类的授权成为这个类友元函数,这就涉及到一个关键字friend。因为我们的一个外部函数是无法访问一个类的私有数据的,当然可以访问 public修饰的变
阅读全文
C++异常处理
摘要:1、什么是异常、异常处理? 异常就是程序运行期出现的错误,而异常处理就是对有可能发生错误的地方做出预见性的安排。C++异常处理机制是一个用来有效地处理运行错误的非常强大且灵活的工具,它提供了更多的弹性、安全性和稳固性,克服了传统方法所带来的问题.异常的抛出和处理主要使用了以下三个关键字: try、
阅读全文
运行时类型识别RTTI
摘要:1、什么是RTTI? RTTI:Run-Time Type Identification运行时类型识别 程序在运行时能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际的派生类。 在这里要用到两个C++中的关键字:typeid和dynamic_cast 2、typeid typeid是C++
阅读全文
AD转换
摘要:1、什么是ADC ADC(analog digital converter)就是模拟信号(analog)转换为数字信号(digital)的转换器。 (1)模拟的就是连续的,现实生活当中的时间、电压、高度、温度等都是模拟的(连续分布的, 划分的话可以无限的更小划分)。模拟量反映在数学里面就是无限小数位
阅读全文
SPI通信协议(SPI总线)学习
摘要:1、什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。 2、SPI优点支持全双工通信通信简单数据传输速率块 3、缺点没有指定的流控制,没有应答机制确认是否
阅读全文
通信中的全双工、半双工和单工通信
摘要:今天回顾了一下IIC通信的知识,突然之间对全双工、半双工和单工通信产生了一些小小的疑问? 然后自己去查了查资料,重新认识了他们的定义: 全双工:表示通信双方能够同时的进行发送和接收数据,我之前的理解是:在一根通信线上能够同时的进行发送和接收,后来想了想这明显不对呀? 这不可能。在这里串口UART通信
阅读全文
S5PV210定时器
摘要:在S5PV210内部,一共有4类定时器件。这4类定时器件的功能、特征是不同的。 1、PWM定时器(1)这种是最常用的,平时所说的定时器一般指的是这个。像简单单片机(譬如51单片机)中的定时器也是这类。(2)为什么叫PWM定时器,因为一般SoC中产生PWM信号都是靠这个定时器模块的。2、系统定时器(1
阅读全文
BCD码转换为十进制或者十进制转为BCD码
摘要:BCD码其实就是之前在数字电路中说的 用4位二进制数值 来表示一个0-9中的数字,例如: 0000=0 0001=1 0010=2 0011=3也就是说如果把一个数字作为一个BCD码,例如: 11 22那么他应该展开为: 00010001 00100010也就是对应为十进制: 17 34所以一个BC
阅读全文
存储映射IO
摘要:3.6.7.1、mmap函数3.6.7.2、LCD显示和IPC之共享内存3.6.7.3、存储映射IO的特点(1)共享而不是复制,减少内存操作(2)处理大文件时效率高,小文件不划算 总结:存储映射IO其实本质上就是共享内存,和进程间通信的IPC共享内存是一样的,区 别在于: 存储映射IO:是访问设备文
阅读全文
异步IO原理及相应函数
摘要:何为异步IO? (1)几乎可以认为:异步IO就是操作系统用软件实现的一套中断响应系统。(2)异步IO的工作方法是:我们当前进程注册一个异步IO事件(使用signal注册一个信号 SIGIO的处理函数),然后当前进程可以正常处理自己的事情,当异步事件发生后当前进 程会收到一个SIGIO信号从而执行绑定
阅读全文
IO多路复用原理
摘要:(1)IO multiplexing(2)用在什么地方?多路非阻塞式IO。(3)select和poll(4)外部阻塞式,内部非阻塞式自动轮询多路阻塞式IO IO多路复用原理:其实就是整个函数对外表现为阻塞式的,也就是我们调用这个函数,如果条件达不到一定 会被阻塞;但是其实内部并不是阻塞的,而是以一种
阅读全文
Linux守护进程编写方法及原理
摘要:什么守护进程? 守护进程是运行在后台的一种用来提供服务的进程,他脱离控制台独立运行,守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 守护进程的特征? 1、后台运行 守护进程最重要的特性是后台运行。脱离控
阅读全文
Linux用户和用户组
摘要:在Linux系统中,每一个用户都属于一个主用户组和若干个附属用户组,也就是说一个用 户必须的有一个主用户组,可以拥有0个或者多个附属用户组,我们同一通过命令:groups 查看用户属于哪个主用户组。
阅读全文
gcc支持的一种结构体赋值方式
摘要:struct info{ int a; char b; struct fd{ int c; int d; }fg;}; 其实我们也可以这样赋值:同样对于其他的类型也是一样的,union enum.... 例如: struct info td = { .a = 100, .b = 100, .fg =
阅读全文
gcc中支持的一种字符串表示方式
摘要:gcc支持的一种的字符串的表示形式 "xxx" "xxx" "xxx" 他会将这3个字符串连成一个并 且只会在最后的一个字符串末尾添加 '\0‘,而且还会忽略各个字符串之间的空格符号。
阅读全文
Linux gcc支持的语法 __attribute__ 属性设置
摘要:__attribute__实际上是gcc专有的一种语法,是用来设置函数属性、变量属性、类属性的 语法:之前在C中的结构体对齐中提到过,当时是用来告诉编译器这个结构体的对齐方式 ,其实他还有很多种用法,可以设置很多的属性。语法: __attribute__ (parameter)对于变量: int a
阅读全文
C语言 void 万能类型
摘要:C中 void类型其实是一种万能类型, 也就是说 我们的 void 可以代表任意一种类型,也就是说他的范围要比具体的一种类型要宽广, 例如: int *p = NULL;void *ptr = p; // 这是可以的,因为void *类型包含了int *类型,但是你要在使用ptr之前必须要强制转化为
阅读全文
关于C语言中的转义字符
摘要:转义字符从字面上去理解其实就是对后面的字符的意义进行转换例如:常用的转义字符十六进制和八进制方式: \ddd: ddd就是3个连续的8进制数据 所以他的意思就是对后面的字符进行转义,表示不是直接打印ddd3个数字,而是打印ASCII表中 ddd 对应的字符,ddd其实就是我们的ASCII表中的编号码
阅读全文
编译驱动的Makefile解析
摘要:一个典型的编译驱动模块的Makefile文件如下所示: KERN_DIR = /root/driver/kernel obj-m += module_test.o all: make -C $(KERN_DIR) M=`pwd` modules .PHONY: clean clean: make -
阅读全文
Linux下编译busybox时出现的问题
摘要:编译busybox的时候出现了一个问题: sync.c:(.text.sync_main+0x78): undefined reference to `syncfs' collect2: ld returned 1 exit status make: *** [busybox_unstripped]
阅读全文
Linux系统下安装ncurses库
摘要:ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单。 今天在安装ncurses库的时候遇到了一些问题,现将遇到的问题所叙如下: 首先说明:本次安装采用的是源码包的安装方式,并没有直接使用一键命令的方式,并不是源码包安装方式有多牛逼,只是实在是我的虚拟机连不上外网
阅读全文