摘要:
1、this指针的用法 this是C++语言中的一个关键字,也是一个const指针,它指向当前对象,通过this指针可以访问当前对象的所有成员,所谓当前对象,是指正在使用的对象,例如:对于stu.show();,stu就是当前对象,而this指针就是指向stu。 下面是this指针用法的一个简单示例 阅读全文
摘要:
列出当前目录下的所有文件,可以使用ls命令: # ls 如果想查看当前目录下各个文件夹以及文件的大小,可以使用下面命令: # du -sh * 查看当前目录所有文件大小的总和,可以使用下面命令: # du -sh ../ 单独查看某个文件的大小,可以先找到该文件,然后使用下面命令: # du -sh 阅读全文
摘要:
1、吞吐量测试 嵌入式Linux设备系统内部集成了iperf测试工具,可以用来测试当前设备的WiFi吞吐量情况,进而反映当前设备的WiFi性能。 测试的环境为PC机通过有线网络和AP进行连接,嵌入式Linux设备通过无线WiFi和AP进行连接,PC机端使用Cmd的ping命令能和嵌入式Linux设备 阅读全文
摘要:
1、前言 本文将基于Quectel的SC20模块进行OV5648 Camera的点亮,并对其过程进行一个简要介绍,SC20模块是一款基于MSM8909的智能模块,视频输入接口基于MIPI_CSI标准,可以支持两个摄像头,后置摄像头接口最高支持8MP像素的Camera,前置摄像头接口可支持2MP像素的 阅读全文
摘要:
1、前言 MIPI_DSI是一种应用于显示技术的串行接口,兼容DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set),以串行的方式发送像素信息或指令给外设 阅读全文
摘要:
1、前言 韦根(Wiegand)协议是国际上统一的标准,是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡片的许多特性,韦根有许多种类格式,常见有的有26bit、34bit以及37bit格式,其中26bit格式是最常用的格式,而标准的26bit格式是一个开放式的格式,意味着任何 阅读全文
摘要:
首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件),而TTL、RS-232、RS-485是指的电平标准(电信号)。 串口:串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。 UART接口:通用异步收发器(Universal Asy 阅读全文
摘要:
1、前言 在学习C语言中发现,"指针函数"与"函数指针"比较容易搞错,最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含的,就是函数指针,反之则是指针函数。 2、指针函数 指针函数是指带指针的函数,即本质上是一个函数,函数的返回类型是某一类型的指针,指针函数的形式如下: 类型 阅读全文
摘要:
1、前言 RGB、YUV以及YCbCr是人为规定的彩色模型或颜色空间,它的用途是在某些标准下用通常可接受的方式对彩色加以说明,本质上,彩色模型是坐标系统和子空间的阐述。 2、各种颜色空间 (1)RGB RGB代表红绿蓝,它是依据人眼识别的颜色定义出的空间,可以用来表示大部分颜色,在科学研究一般不采用 阅读全文
摘要:
1、前言 在Linux系统中可以使用tar和split命令配合使用进行大文件的分卷压缩和解压缩。 2、实例 将文件夹STM32F031K6/分卷压缩为100M的文件,可以使用下面命令: $ tar -cvzf - STM32F031K6/ | split -b 100m - STM32F031K6. 阅读全文
摘要:
1、简介 C语言中的getopt()函数是一个功能强大的命令行解析函数,属于POSIX标准,该函数的原型如下: #include <unistd.h> int getopt(int argc, char *const argv[], const char *optstring); extern ch 阅读全文
摘要:
Windows10系统下,点击我的电脑下的属性按钮,界面打不开,此时如果需要配置环境变量,可以使用快捷键进行: 使用快捷键win+x打开系统,如下: 打开系统后,在查找设置中,输入查看高级系统设置,如下: 选中后,可以继续查看系统属性设置界面,如下: 接下来,就可以继续修改系统的环境变量了。 阅读全文
摘要:
1、MinGW简介 MinGW是Minimalist GNU For Windows的简写,它是个精简的Windows平台C/C++、ADA以及Fortran编译器,和Cygwin相比,体积要小很多,使用起来也更为方便。 MinGW工具最大的特点就是编译出来的可执行文件能够独立在Windows上运行 阅读全文
摘要:
在使用Windows系统的Cmd命令行工具中,如果想清空当前终端显示的所有内容,可以使用下面命令: > cls 如下所示: 输入命令后并回车,即可达到清屏效果。 阅读全文
摘要:
将要缩进的代码块进行选中,按下Shift按键后再按TAB键就是向左缩进,直接按TAB键是向右缩进。 阅读全文
摘要:
1、简介 阅读全文
摘要:
1、联合体简介 在C语言编程中,变量的定义是分配存储空间的过程,一般情况下,每个变量都具有自己的存储空间,但是,使用联合体可以实现在同一个内存空间中存储不同的数据类型,任一时刻存储一种数据类型,不是同时存储。 在C语言中,定义联合体的关键字为union,定义一个联合体类型的一般形式如下: union 阅读全文
摘要:
1、 阅读全文
摘要:
1、基本概念 计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序,尽管系统的具体方式随着时间不断地变化,但是系统内在的概念却没有改变,所有的计算机系统都有相似的硬件和软件组成,它们又执行着相似的功能。 2、信息就是位+上下文 一个最简单的应用程序hello,源文件名为hello.c,内容 阅读全文
摘要:
1、I2C总线概念 I2C总线支持任何IC生产过程(NMOS、CMOS、双极性),两线(串行数据SDA和串行时钟SCL)在连接到总线的器件间传递信息,每个器件都有一个唯一的地址识别(微控制器、LCD驱动器、存储器或键盘接口等),而且都可以作为一个发送器或者接收器(由器件的功能决定),很明显,LCD驱 阅读全文
摘要:
1、简介 gsl3680是上海思立微电子科技有限公司研发生产的一款电容屏多点触摸控制单芯片,其芯片内部框架图如下所示: gsl3680采用了独特的互电容感应技术,可以在1ms内测量多达192个节点,支持广泛的传感器选择,包括单层或双层ITO,玻璃或薄膜,采用了先进的抗电磁干扰信号处理技术,使其对各种 阅读全文
摘要:
1、基本概念 在Linux系统中,中断服务程序的执行是与一般的进程异步的,也就是不存在于进程上下文,要求中断服务程序的执行时间尽可能短,因此,Linux系统在中断处理中引入了顶半部和低半部的分离机制。 2、Linux中断及中断处理架构 设备中断的到来会打断Linux内核中进程的正常调度和运行,对于系 阅读全文
摘要:
用户空间与内核空间示意图如下: 整个Linux内部结构可以分成三部分,从最底层到最上层依次是:硬件、内核空间、用户空间,如下图所示: 需要注意的细节问题: 进程的内核空间存放的是内核代码和数据,用户空间中存放的是用户代码和数据,不管是内核空间还是用户空间,它们都处于虚拟空间中; Linux使用两级保 阅读全文
摘要:
1、电容屏工作原理 触摸屏的工作原理概况来说就是上报坐标值,也就是X轴、Y轴的值,与电阻式触摸屏不同,电容式触摸屏不依靠手指按力创造、改变电压值来检测坐标,电容屏通过任何持有电荷的物体,包括人体皮肤工作,也就是人体所带的电荷,电容式触摸屏是由诸如合金或者銦錫氧化物(ITO)这样的材料去构成,电荷存储 阅读全文
摘要:
1、Linux Input子系统概述 Linux系统的Input子系统处理输入事务,输入设备的驱动程序通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能与用户空间或系统中的其它程序进行交互。整个Input子系统的实现可以看作三层,如下: 输入驱动层(input driver):针对各 阅读全文
摘要:
1、Linux Framebuffer概述 Framebuffer驱动在Linux内核中用于子系统最重要的显示输出,以该驱动为基础,Linux设备才能向用户展现一个色彩斑斓的世界,对于PC而言,就是显卡驱动,对于嵌入式设备,就是显示控制器和LCD模组驱动。 Framebuffer设备是一个字符设备, 阅读全文
摘要:
1、变量的声明和定义有什么区别? 变量的定义为变量分配地址和存储空间,变量的声明不会分配地址,一个变量可以在多个地方声明,但是只能在一个地方定义,加入extern关键字修饰的是变量的声明,说明此变量将在文件以外或者文件后面部分定义。 说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初 阅读全文
摘要:
1、基础题 (1)Linux系统中内核空间与用户空间的区别?用户空间与内核空间的通信方式有哪些? https://blog.csdn.net/bingqingsuimeng/article/details/7924756 (2)Linux系统中字符设备与块设备的区别?请列举一些实际的设备并归档属于哪 阅读全文
摘要:
1、C关键字 C语言中的关键字有32个: 数据类型关键字(12个)char, short, int, long, float, double, unsigned, signed, struct, union, enum, void 控制语句关键字(12个)if, else, switch, case 阅读全文
摘要:
1、什么是static? static是C/C++中常用的修饰符,它可以用来控制变量或函数的存储方式和可见性。 (1)static的引入 在函数内部定义的变量,当程序执行到它的定义处时,就会在栈上分配空间,函数在栈上分配的空间在此函数执行结束后,就会释放掉,如果想将函数中的某个变量的值保存到下一次函 阅读全文
摘要:
1、为什么使用volatile? C/C++中的volatile关键字和const对应,用来修饰变量,通常用于建立语言级别的memory barrier,volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,例如:操作系统、硬件或其它线程等,遇到该关键字声明的 阅读全文
摘要:
1、简介 const是C/C++中的一个关键字,是一个类型限定符,const为constant的缩写,含义为不变的,不易改变的,使用该关键字能限定一个变量不允许改变,产生静态作用,在一定程度上能提高程序的安全性和可靠性。 2、const修饰普通类型变量 const int n = 1; //cons 阅读全文
摘要:
1、前言 在前面的文章《GPT定时器实现高精度延时—基于I.MX6UL嵌入式SoC》中,链接如下: https://www.cnblogs.com/Cqlismy/p/13234708.html 主要介绍了GPT定时器的基本内容,并实现了如何使用GPT定时器实现高精度的延时实例,本文将简单介绍如何去 阅读全文
摘要:
1、前言 在前面的文章《EPIT定时器中断实现—基于I.MX6UL嵌入式SoC》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12977491.html 介绍了EPIT定时器的基本概念以及使用思路,EPIT的全称为Enhanced Periodic Interr 阅读全文
摘要:
1、前言 在前面的文章《GPIO外部中断处理—基于I.MX6UL嵌入式SoC》中,链接如下: https://www.cnblogs.com/Cqlismy/p/12776320.html 实现了一个简单的按键读取功能,是基于GPIO的外部中断功能来实现的,对于按键的消抖则是采用了简单延时的方式,在 阅读全文
摘要:
1、jobs命令 Linux操作系统中的jobs命令能够用于显示任务列表以及任务状态,包括后台运行的任务,使用该命令能够显示任务任务号以及其对应的进程号。 (1)命令语法 jobs(选项)(参数) (2)常用选项 -l:显示进程号; -p:尽任务对应的显示进程号; -n:显示任务状态的变化; -r: 阅读全文
摘要:
1、kill命令 Linux操作系统中的kill命令能用来删除执行中的程序或者工作,kill命令可将指定的信号送到程序,预设的信号为SIGTERM(15),能将指定程序进行终止,如果无法终止程序的话,能使用SIGKILL(9)信号进行强制删除程序,对于程序的进程号能通过ps命令进行查看。 (1)命令 阅读全文
摘要:
1、ifconfig命令 Linux系统中的ifconfig命令能用于显示和配置Linux内核系统中的网络接口相关参数,在Linux终端上,使用ifconfig命令进行网卡信息的配置,当机器重启后,网卡重启,相关的配置信息将不再存在,如果想让配置永久生效的话,可以修改网卡的配置信息。 (1)命令语法 阅读全文
摘要:
1、前言 2、property_get/property_set使用 阅读全文
摘要:
1、前言 定时器是嵌入式SoC常用的外设,通过使用定时器能达到精准定时的功能,一款嵌入式SoC往往会存在多个定时器外设,在嵌入式裸机开发过程中,对定时器的原理以及定时器的使用了解是非常有必要的,本文将简单介绍I.MX6UL嵌入式SoC中的EPIT定时器原理。 2、EPIT基本概述 EPIT的全称为E 阅读全文