12 2020 档案

摘要:##基本概念 JPG是一种面向连续色调静止图像的有损压缩,压缩比例大,但是图片的质量也会被牺牲。它允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1,压缩比越大,图像品质就越低;相反地,压缩比越小,图像品质就越高。同一幅图像,用JPEG格式存储的文件是其他类型文件 阅读全文
posted @ 2020-12-22 23:59 ding-ding-light 阅读(254) 评论(0) 推荐(0) 编辑
摘要:##基本概念 BMP是英文Bitmap的缩写,由称作像素(图片元素)的单个点组成的,每个像素点由三个字节(用char型定义)组成,按照蓝绿红排列。这些点可以进行不同的排列和染色以构成图样。如下图所示,当读取图片信息时,文件指针由左下角开始增长。如下图所示,BMP图片包含了14个字节的文件头信息,和4 阅读全文
posted @ 2020-12-21 23:37 ding-ding-light 阅读(2597) 评论(0) 推荐(0) 编辑
摘要:##触摸屏工作原理(输入子系统) 如上图所示,Linux在处理这些纷繁各异的输入设备的时候,采用的办法是找中间层来屏蔽各种细节。硬件设备通过输入子系统接入到系统中去,当硬件设备产生脉冲信号的时候,会将信号传递到驱动层,驱动层将此信号转换成数字信号,并这些数字信号转换成一个结构体,输入子系统则分辨出是 阅读全文
posted @ 2020-12-20 23:49 ding-ding-light 阅读(415) 评论(0) 推荐(0) 编辑
摘要:##LCD屏幕简单概述 如上图所示,每个像素点都是由红绿蓝混色而成,目前市面上主流的屏幕每一个原色的色阶都是采用8位元来表示,所以每个像素点可以表示大约1600万中颜色,LCD屏幕由背光层,偏光层,电极层,液晶层,滤光片等组成,液晶是一种介于固体和液体之间的有机化合物,本身不会发光,而是作为一种可透 阅读全文
posted @ 2020-12-19 23:56 ding-ding-light 阅读(701) 评论(0) 推荐(0) 编辑
摘要:##概述 内核空间与外围设备交换数据,用户空间与内核空间交换数据实际上是非常消耗时间的,应该尽量减少它们之间相互访问的次数,就应用了缓冲技术。其本质就是一次性读取大量数据(顺序读写)进缓冲,当需要数据的时候进入缓冲区读取数据,这样能够大大减少消耗的时候被消耗的时间,所以内核缓冲技术对于文件IO是非常 阅读全文
posted @ 2020-12-18 21:32 ding-ding-light 阅读(252) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h> #include <string.h> #include <unistd.h> #include 阅读全文
posted @ 2020-12-17 22:14 ding-ding-light 阅读(110) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <string.h> #include <errno.h> #define BUF_SIZE 32 int main(int argc, char *argv[]) { if (argc != 3) { printf("Uage: ./copy 阅读全文
posted @ 2020-12-17 22:01 ding-ding-light 阅读(102) 评论(0) 推荐(0) 编辑
摘要:##标准IO 标准IO是由标准C库所提供的函数接口,接口功能丰富,有提供缓冲区,因此对于处理海量数据时效率比较高,所以编程过程中应该尽可能的使用标准IO,而非系统IO。 ##标准IO接口 fopen (打开文件) 头文件: #include <stdio.h> 定义函数: FILE * fopen( 阅读全文
posted @ 2020-12-16 23:34 ding-ding-light 阅读(202) 评论(0) 推荐(0) 编辑
摘要:##系统IO 系统IO是由linux内核定义的一些文件IO操作函数,系统IO有如下特点: 1.由操作系统提供的接口函数,特点是特别简洁,功能单一; 2.没有提供缓冲区,因此对于处理海量数据时效率比较低; 3.套接字、设备文件只能使用系统IO来访问。 ##系统IO接口 open (打开、创建文件) 头 阅读全文
posted @ 2020-12-16 23:00 ding-ding-light 阅读(182) 评论(0) 推荐(0) 编辑
摘要:##树 树属于非线性结构。逻辑上的树指的是:一堆数据中包含一个称之为根的节点,其他的节点又组成了若干棵树,成为根节点的后继。 如上图所示,根节点与子树只是相对概念,在任何一棵树中都有一个根节点,而这棵树本身又可以是别的树的子树。 ##树的基本概念 双亲(parent)和孩子(children):一个 阅读全文
posted @ 2020-12-14 21:10 ding-ding-light 阅读(207) 评论(0) 推荐(0) 编辑
摘要:参考文章,基本点点就可以了 https://blog.csdn.net/weixin_37714383/article/details/85239886 阅读全文
posted @ 2020-12-13 22:24 ding-ding-light 阅读(124) 评论(0) 推荐(0) 编辑
摘要:##内核链表 内核链表是纯粹的链表结构,只有向前向后的两个指针。将内核链表嵌套到我们自己所写的,有数据的结构体里面,这样便可以将我们所输入的数据连接起来。 参考文件:/usr/include/btrfs/list.h 下面先来分析list.h的一些基本功能。 ##插入数据 内核链表有很多巧妙之处,比 阅读全文
posted @ 2020-12-12 17:14 ding-ding-light 阅读(329) 评论(0) 推荐(0) 编辑
摘要:##链表队列 链表队列是受到限制的单向链表,采用链式存储结构,符合队列先进先出逻辑。 ##构造链式队列 使用一个结构体来构造一个链表队列,其中成员num用于存储数据,*next使用指向下一个节点。 typedef struct list_queue { int num ; struct list_q 阅读全文
posted @ 2020-12-12 11:36 ding-ding-light 阅读(105) 评论(0) 推荐(0) 编辑
摘要:##顺序队列 顺序队列是受到限制的顺序表,是顺序表的一种,符合队列先进先出逻辑。 ##队列构造 使用结构体构造一个顺序队列,其中ent用来指向一个连续内存,size用来指定内存的大小,r_pos和w_pos用来读取和写数据时作为ent的下标。 typedef struct queue { int * 阅读全文
posted @ 2020-12-11 23:50 ding-ding-light 阅读(207) 评论(0) 推荐(0) 编辑
摘要:##链表栈 链表栈是一种受到限制的单向链表,数据只能从栈顶压入(相当于头插),先进后出原则,遵从栈的逻辑。 ##构造链表栈 使用结构体来构造链表栈,其中data用来存储数据,*next用来指向下一个节点。 typedef struct listStack{ int data; struct list 阅读全文
posted @ 2020-12-10 21:14 ding-ding-light 阅读(287) 评论(0) 推荐(0) 编辑
摘要:##顺序栈 顺序栈是一种受到限制的顺序表,数据只能从栈顶压入,先进后出原则,遵从栈的逻辑。 ##构造顺序栈 使用结构体来构造顺序栈,其中stack是用来存储数据的,size是用来指明数据的个数,top是用来指明栈顶的位置。 typedef struct seqlist_stack{ int *sta 阅读全文
posted @ 2020-12-10 20:59 ding-ding-light 阅读(213) 评论(0) 推荐(0) 编辑
摘要:##双向循环链表 双向循环链表和单向循环链表一样都是线性链式存储结构,顾名思义双向循环链表就是在两个方向都可以访问任一数据。 ##头节点设计 调用下面代码创建一个结点作为头结点,让它的头指针prev和尾指针next都指向自己,最后返回这个头结点的堆地址。 p_douoble_crclist new_ 阅读全文
posted @ 2020-12-09 20:45 ding-ding-light 阅读(419) 评论(0) 推荐(0) 编辑
摘要:##单向循环链表 单向链表是最简单的线性链式存储结构。可以通过头结点遍历整个链表。 如上图所示,单向循环链表就是申请的一块块堆空间,通过指针将其串联起来,其中head指针存在栈空间,其内容存的是堆空间头结点的地址,所有操作都需要通过head指针来实现。 使用结构体来实现单向循环链表,结构体中有数据域 阅读全文
posted @ 2020-12-08 22:21 ding-ding-light 阅读(1205) 评论(0) 推荐(0) 编辑
摘要:##顺序表 顺序表属于顺序存储结构,是最简单的顺序表,基本思想是用一段连续的储存单元依次存储线性表的数据元素,一般使用数组来定义,就能实现增,删,改,差等基本操作。 使用结构体来实现顺序表,结构体中有一个data数组,用来连续存储数据。变量last用来指明当前顺序表中有几个数据,方便访问顺序表。 t 阅读全文
posted @ 2020-12-07 23:28 ding-ding-light 阅读(325) 评论(0) 推荐(0) 编辑
摘要:##数据结构的基本概念 数据结构是一门研究如何有效组织数据,并提供高效的处理数据的学科。我们主要研究如何有效的处理数据间的逻辑关系,使得数据在存储于操作是更加高效。 ##逻辑结构和物理结构 逻辑结构:数据对象中数据元素之间的相互关系;物理结构:是指数据的逻辑结构在计算机中的存储形式。 ###逻辑结构 阅读全文
posted @ 2020-12-07 21:01 ding-ding-light 阅读(197) 评论(0) 推荐(0) 编辑
摘要:##头文件的作用 一个C语言的程序一般都会包含多个.C文件以及多个.h头文件,假设我们的项目中有一个代码需要被多次使用,为了避免多次编写同一份代码,可以把一些公共的资源写在头文件中,然后在其他的.C文件中如果想要使用则只需要包含该头文件即可。 ##头文件的内容 头文件用来存放一些公共资源,各个.C文 阅读全文
posted @ 2020-12-06 22:14 ding-ding-light 阅读(307) 评论(0) 推荐(0) 编辑
摘要:##无值宏定义 定义宏的时候不指定一个值得时候就被称为无值宏定义,一般无值宏会使用在条件编译当中: #define __MAIN_H__ #define __TYPE_H__ 注意 对于无值宏来说我们只能判断它是否被定义,而无法判断他的值 ##保护宏 在一个工程中,为了防止某个头文件被多次包含,就会 阅读全文
posted @ 2020-12-06 22:02 ding-ding-light 阅读(147) 评论(0) 推荐(0) 编辑
摘要:##预处理 预处理是程序编译前的一个预先处理的动作,编译一共有4个步骤:C原文件 --> 预处理 --> 编译 --> 汇编 → 链接 --> 可执行文件。 预处理的工作主要是展开我们C源码中的#开头的语句,去掉了所有的注释,在严格的意义来说,这些语句它并不属于C语言的语法范畴。 以下是预处理的一些 阅读全文
posted @ 2020-12-06 21:36 ding-ding-light 阅读(488) 评论(0) 推荐(0) 编辑
摘要:##联合体基本概念 联合体也叫共同体,共用体,从外表看联合体与结构体长得很类似,结构体每一个成员都有自己独立的内存空间,但是联合体则共用同一片内存空间,也就是联合体同时只能允许一个变量存在。 特点: 1.联合体的内部是以堆叠的形式存在的; 2.整个联合体的尺寸取决于,成员中尺寸最大的那个成员; 3. 阅读全文
posted @ 2020-12-06 20:53 ding-ding-light 阅读(496) 评论(0) 推荐(0) 编辑
摘要:##结构体的概念 C语言中有很多的基础数据类型,除了这些我们可以通过一个结构体来把一部分基础数据类型整合为一个新的自定义类型。 struct 结构体的标签 { 成员1 ; 成员2 ; ..... }; // 最后用一个分号来表示结束 结构体的标签 : 用来区分各个不同类型的结构体 (也可以省略)。 阅读全文
posted @ 2020-12-05 20:04 ding-ding-light 阅读(681) 评论(0) 推荐(0) 编辑
摘要:###strstr 函数功能:在一字符串中查找指定的字符串) 头 文 件: #include <string.h> 定义函数: char *strstr(const char *haystack, const char * needle); 参数分析:haystack --> 需要搜查的字符串 (被 阅读全文
posted @ 2020-12-05 11:03 ding-ding-light 阅读(278) 评论(0) 推荐(1) 编辑
摘要:##基本概念 当一个的主函数太过庞大时,会将主函数按功能进行拆分,根据是否需要向外部提供接口,分为静态函数和普通函数, 普通的函数是跨文件可见的, 但是如果是静态函数的话他的可见范围会被缩小到本文件可见,外部文件是无法进行调用的。 static int max (int x, int y) { // 阅读全文
posted @ 2020-12-05 09:39 ding-ding-light 阅读(92) 评论(0) 推荐(0) 编辑
摘要:##虚拟内存 系统中的每一个进程运行的时候都会认为自己有连续和完整的的地址空间,这些地址空间被称作虚拟地址。数据和程序被存储在固态介质中,当系统系统需要某一段数据或程序时就会被搬运到内存当中,而不是将整个程序搬运到内存当中再运行起来,这样大大提高了程序的运行效率,和节约了内存空间。 如上图所示,每个 阅读全文
posted @ 2020-12-05 01:35 ding-ding-light 阅读(95) 评论(0) 推荐(0) 编辑
摘要:基本概念 静态库 在编译程序的时候把这个库的内容加载到程序中。 优点: 程序以后就不需要依赖库、执行效率有所提高 缺点: 浪费一定的程序空间,无法对用户进行升级迭代 动态库 编译时程序只是确认一下库中的接口是否合适匹配,并没有拷贝任何的代码,所以程序较小。 优点: 节省一定的存储空间,后期对项目的升 阅读全文
posted @ 2020-12-04 20:53 ding-ding-light 阅读(215) 评论(0) 推荐(0) 编辑
摘要:Makefile文件 在编译程序的时候,通常需要用到多个文件,当工程很大时,编译一个一个程序太过浪费时间。当使用Makefile文件的只需要执行make命令便可以将整个工程一次性编译下来, 还可以根据自己的需求编译出需要的文件,这些都可以通过编写Makefile文件实现。 ##########定义变 阅读全文
posted @ 2020-12-04 20:36 ding-ding-light 阅读(70) 评论(0) 推荐(0) 编辑
摘要:内存地址 字节: 是内存的单位byte, 一个字节8位 bits 地址: 系统为了方便访问内存,而对他们以一个字节为单位来进行逐一编号,称为内存地址 基地址 对于单字节的数据来说他的基地址就是他自己的地址本身。 对于多字节的数据来说他的基地址是他地址中地址值最小的那个, 称为该数据的基地址。 取址符 阅读全文
posted @ 2020-12-04 01:10 ding-ding-light 阅读(123) 评论(0) 推荐(0) 编辑
摘要:开发板硬件介绍 开发环境搭建 本人觉得使用SSH服务或者是tftp用来登入开发板,或者是传递文件实在是太过麻烦。所以想用VS code+WSL+共享目录,利用VS code的可以打开多个WSL终端来实现 只需要打开一个VS code软件便可以进行开发。但是经过了一上午的奋战发现WSL好像并不支持NF 阅读全文
posted @ 2020-12-03 21:02 ding-ding-light 阅读(904) 评论(0) 推荐(0) 编辑
摘要:##数组的基本概念 数组就是一个可以一次性定义多个相同类型的变量,并可以放到一个连续的内存中去。 ##初始化 只有在定义的时候顺便赋值才叫初始化。 int a = 1024 ; int arr[5] = {1,2,3,4,5}; // 完全初始化 int arr1[] = {1,2,3,4,5,6, 阅读全文
posted @ 2020-12-03 00:58 ding-ding-light 阅读(424) 评论(0) 推荐(0) 编辑
摘要:连接开发板 1. 使用串口线将电脑和开发板连接起来; 2. 检查驱动是否安装妥当 可以选择使用驱动精灵之类的软件帮你自动识别并安装,或者询问厂家索要驱动串口驱动程序; 3. 安装调试工具,secureCRT 链接:https://pan.baidu.com/s/1MEzsdEbJfpeOvA2DOU 阅读全文
posted @ 2020-12-02 19:41 ding-ding-light 阅读(420) 评论(0) 推荐(0) 编辑
摘要:交叉编译 一个专门为ARM平台的Linux 系统而设计的一个编译工具, 使得我们可以在电脑(x86)平台来写代码、编译代码,后生成的可执行文件可以传输到arm平台来使用。 如何安装 1. 获得 arm-linux-gnu5.4.0.rar; 2. 把交叉编译工具链复制到 Linux 的家目录下; $ 阅读全文
posted @ 2020-12-02 18:53 ding-ding-light 阅读(1775) 评论(0) 推荐(0) 编辑
摘要:##命令提示行 ##文件类型 其中会占用磁盘空间的有普通文件,目录和软链接。剩下四种文件:字符设备,块设备,套接字,管道文件不是真正的文件不会占用磁盘空间,它们是被模拟成文件的,所以它们也被称为伪文件,它们只占用内存。 ##man手册 1. Executable programs or shell 阅读全文
posted @ 2020-12-01 21:32 ding-ding-light 阅读(270) 评论(0) 推荐(0) 编辑
摘要:算术运算符: + 加法 , 一目取整 - 减法, 一目 取负 -a * 乘法 / 除法 % 取模、求余 a%b a 和b 必须是整型 ++ 自加 1 a++ / ++a -- 自减 1 关系运算符 > 大于 判断a是否大于 b a > b < 小于 判断a是否大小于 b a > b >= 大于等于 阅读全文
posted @ 2020-12-01 20:04 ding-ding-light 阅读(302) 评论(0) 推荐(0) 编辑
摘要:##标准输出 屏幕和终端就是常用的输出设备,把数据输出到屏幕和终端被称为标准输出。 ##格式控制字符 %d %md %ld %u %lu:十进制整型输出 %md m 表示需要多少个字符空位,如果比实际的小则按实际输出,如果比实际大则用空格填补; %o 八进制整型输出 %x %X %#x %#X 十六 阅读全文
posted @ 2020-12-01 19:36 ding-ding-light 阅读(410) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示