自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32F103定时器中断详解

详细图解介绍:自动重装载寄存器,CNT计算器,PSC预分频器的工作原理。通用定时器通过PSC预分频器把接入的72MHZ的时钟进行分频。再通过CNT以分频后的时钟频率进行计数。定时器TIMx分为三种定时器:(基本定时器、通用定时器、高级定时器)接下来逐个介绍.....

2024-07-13 10:35:00 1411 3

原创 理解归并排序的两种方法(超详细)

结合图文剖析归并排序的思路;学习分治法、递归思想、gap调整区间优化。分治法(Divide and Conquer):归并排序是一种分治算法,它将问题分解成多个小问题,解决这些小问题,然后将它们的解决方案组合起来解决原始问题。递归(Recursion):归并排序的实现通常依赖于递归,这是一种在函数内部调用自身的方法。递归是解决某些问题(如树的遍历、排序等)的强大工具。稳定性(Stability):归并排序是一种稳定的排序算法,这意味着相等的元素在排序后保持它们原始的相对顺序。这对于某些应用场景非常重要。

2024-04-27 01:58:27 705

原创 屏幕帧缓冲机制

屏幕多缓冲显示通常涉及帧缓冲(Framebuffer)的使用,这是一块与屏幕大小和分辨率相关联的内存区域。在图形用户界面(GUI)中,所有绘制操作都是通过对帧缓冲的操作完成的,这些操作包括内存设置(memset)和内存复制(memcpy)。这些操作的速度直接影响到帧缓冲的处理速度,因此为了优化性能,开发者通常会编写多个版本的 memset 和 memcpy。

2024-04-06 21:48:17 699

原创 LCD屏幕mmap显示

mmap是一种内存映射文件的方法,它允许将文件或其它对象映射到进程的地址空间。使用mmap映射函数进行映射显示,与屏幕普通直接显示相比有很大的优势。

2024-04-06 00:41:24 1065

原创 系统IO函数接口

系统I/O接口提供了一系列的函数,如 open、read、write、close 等,用于打开、读取、写入和关闭文件。这些函数是进行文件处理的基础,允许程序访问磁盘上的文件资源。

2024-04-02 20:55:09 1153

原创 arm-linux-gcc配置安装

本次下载的交叉编译工具是:arm-linux-gnueabi-5.4.0.tararm-linux-gcc编译工具用于将代码编译成适用于ARM架构的Linux系统上的可执行文件。

2024-03-29 00:12:26 1975

原创 Makefile 变量与函数替换

系统变量进行Makefile操作自定义变量顾名思义就是用户自己定义的变量A = apple # 定义并赋值变量C = $(A) tree # $() 则是对某一个变量进行引用Even:@echo $(A)@echo $(B)@echo $(C)Makefile预定义变量B = ChinaEven :echo $(A);直接定义条件定义方式A = appleA?多命令行定义方式。

2024-03-27 10:32:36 776

原创 Makefile 目标-依赖

Makefile是一个定义了如何构建一个软件项目的文本文件。Makefile通常包含了一系列的规则和指令,这些规则和指令描述了如何从源代码和其他资源文件构建出一个软件项目的目标文件(如可执行文件或库文件)。它的主要作用是自动化编译过程,确保只编译修改过的源文件,从而提高编译效率。以下是Makefile的一些关键点:

2024-03-24 16:14:54 1018

原创 动态库的制作与链接详解

这里介绍3种方法:方法一:把动态库文件放到系统默认的路径下即可 (/usr/lib 或者 /lib );方法二:把库所在的路径写入(添加)到环境变量中;方法三:在系统的默认路径下添加一个新的路径

2024-03-24 14:43:05 1662

原创 GCC制作静态库详解

带大家快速入门,学会制作静态库。本文详细介绍在Linux系统中使用gcc制作静态库的各种细节:库文件的命名: 必须使用lib作为前缀: 比如 libDeployPkg.so.0 / libhgfs.so.0 .....;静态库一般以 .a 为后缀 ;动态库一般以.so为后缀 库文件会有不同的版本, 一般写在后缀后面, 比如 lib.a.so.0.1.2;不管需要制作的是静态库还是动态库,原材料都是.o文件 (可重定位文件) 库文件内部不允许出现主函数main();

2024-03-23 17:03:25 1086

原创 GCC编译过程与实现

详细讲解gcc编译过程:预处理,编译,汇编,链接;使用gcc生成对源文件.c和.h文件进行编译运行,带大家区分它们的区别。一.GCC编辑器以下是常用的编辑器选项,不同的选项可以指导编译器有不同的行为表现,具体如下二.编译过程gcc编译过程分为四个步骤:预处理,编译,汇编,链接;接下来逐个进行介绍2.1 预处理#include 宏定义会被替换:#define 取消宏定义:#undef 条件编译:修改行号以及文件名:#line 998 "Hello.c"清除注释。

2024-03-23 15:37:01 1214

原创 传值、传址、空间释放详细图解

详细介绍函数传值和传地址区别:进行数据操作的区别,函数传值为临时拷贝,不会对实参影响。而传地址时,就是传实参,是可以影响到实参的..........

2024-03-18 22:25:07 890

原创 指针数组/数组指针详解

了解指针数组,数组指针,一维数组,二位数组,数组首元素地址,整个数组地址等........

2024-03-17 17:13:07 392

原创 九大运算符详解

C语言中的九大运算符分别是:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、杂项运算符。算术运算符:用于执行数学计算,如加(+)、减(-)、乘(*)、除(/)和取模(%)等。还有自增(++)和自减(--)运算符。关系运算符:用于比较两个值之间的关系,包括大于(>)、小于(=)和小于等于(

2024-03-16 16:00:47 895

原创 linux中tar归档与(zip,gzip,bzip格式)压缩和解压

学会在linux中使用tar归档与(zip,gzip,bzip)压缩和解压。在Linux中,文件归档指的是将一个或多个文件或目录集合储存在一个文件中,这个过程也被称为打包。归档本身并不涉及数据压缩,所以生成的归档文件大小是所有包含文件大小的总和。归档通常用于备份和传输操作,方便管理和存储。归档后的文件可以通过不同的命令进行压缩以节省空间和加快传输速度。下面是一些常用的归档和压缩命令:

2024-03-16 14:15:18 1685

原创 死磕Shell命令

熟悉掌握最重要的几个Shell基础命令,在普通的linux日常操作中就显得游刃有余了。top 动态进程信息(类似进程管理器);sort 对文件的内容进行排序;which 查看命令所在的位置;uniq 去掉文件中重复项然后输出等.........

2024-03-13 23:30:51 1055

原创 程序员如何选择职业赛道?

程序员的学历,职位的市场需求,不同技术岗位工资等,都会影响程序员选择职业赛道,我们需要重视评估自己,来确定最适合自己的路径.............

2024-03-13 00:52:07 865

原创 vim基础命令

启动vim编辑器后自动进入编辑模式,在此模式中输入命令对应vim一个动作,比如:进入编辑模式、复制粘贴、保存文本、查找替换等等,如下表。

2024-03-10 22:07:40 1172 1

原创 程序员的金三银四求职宝典

金三银四是指每年的3月和4月,这两个月是求职的高峰期,很多企业开始大量招聘新员工。对于程序员来说,这是一个寻找更好工作机会的黄金时期。为了在竞争激烈的求职市场中脱颖而出,以下是一些面试技巧分享:

2024-03-10 22:03:44 980

原创 I2C(IIC)---EEPROM超详细图解

图解IIC--EEPROM的通信使用过程,使用单片机的IO口,进行模拟IIC时序与AT24C20进行双向通信(读写)。

2024-03-09 23:36:15 5587 2

原创 STC89C52串口通信详解

详细图解,同步和异步通信原理,单片机串口,通信速率计算,串口寄存器与工作方式

2024-03-05 23:59:12 3201 1

原创 STC89C52定时器中断详解

细节图解分析定时器0/1中断细节,T0和T1的使用,以及机器时序的计算.........

2024-03-05 08:13:38 1278

原创 STC89C52外部中断详细解析

分析STC89C52外部中断的硬件组成与细节。中断:为了响应外部或内部的事件而暂停当前正在执行的任务,转而去处理这些事件的一种机制。

2024-02-21 18:34:10 2452

原创 STC89C52 动态数码管详解

快速理解STC89C52数码管模块的组成细节与动态显示原理,配合74HC245 和 74HC138 芯片使用

2024-02-17 15:21:43 1572 1

原创 C++支持函数重载的原理

C/C++编译过程是什么?为什么C++支持函数重载,而C语言不支持函数重载呢?在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接。接下来逐个进行详细介绍..........

2024-02-04 15:06:23 718 1

原创 LINUX入门命令(CentOS7)

在Linux系统下一共有七种文件类型 普通文件(mp3,avi,mp4,ppt....)d 目录文件(文件夹)p 管道文件(一般用于进程通信)l 连接文件(相当于快捷方式)s 套接字文件(一般用于网络通信)b 块设备文件(驱动设备文件由驱动生成)c 字符设备文件(驱动设备文件由驱动生成)

2024-01-31 15:45:24 847

原创 搞懂排序(稳定和非稳定性)

相同元素的相对位置排序完没有改变,则为稳定排序。若排序后相同元素的相对位置发生变化,则为不稳定排序。

2024-01-23 23:24:50 567 1

原创 计数排序(罕见时间复杂度O(n))

优点:时间复杂度O(n);时间复杂度快的比较罕见缺点:需要额外的空间来存储计数数组,它的空间复杂度也是O(n)。适用于:数据范围不是很大

2024-01-23 13:24:00 1081 1

原创 外排序(磁盘I/O文件)(c语言)

外排序是一种处理超出内存容量的大量数据的排序算法。外排序的核心思想在于将大数据集分割成小部分,每部分单独排序后,再将这些有序的部分合并成一个大的有序文件。具体来说,外排序包括两个主要步骤:

2024-01-21 23:05:15 1065 2

原创 归并排序(递归和非递归方法)

重点图解实现归并排序的2种方法(递归和非递归版)(含全部代码);归并排序可以进一步被划分为分割和归并两个步骤。分割是将数组二等分,得到的子数组继续二等分,直到每个子数组只剩下一个元素为止。而归并则是不断将原本属于同一个数组的两个子数组归并成一个新的有序表。

2024-01-20 16:58:03 1018

原创 快速排序3种实现方法及优化(详细图解)

快排(Quick sort)三种的方法及优化:左右指针法,挖矿法,左右指针法;优化:三位取中以及利用数据结构栈的非递归版,详细图解

2024-01-17 13:35:51 1583

原创 插入排序和希尔排序(详细图解)

希尔排序是插入排序的优化排序,时间复杂度更优。希尔排序:实际是插入排序中加入gap,进行多组并排,使排序速度得到巨大提升。本文先图解直接插入排序,再重点图解希尔排序

2024-01-12 16:18:10 896 1

原创 平衡二叉树及优化(细节图解)(时间复杂度O(N))

含平衡二叉树判断的思路:时间复杂度从O(N^2)优化成O(N),含细节图解,及全部代码

2023-12-29 21:15:28 1373 1

原创 栈和队列的基础(C语言)(全部代码,详细图解)(​创建,初始化,入队,出队,入栈,出栈​,获取队顶数据,注销等.....)

栈和队列(含详细图解): (创建,初始化,入栈,入队,出栈,出队,获取栈中数据个数,获取栈顶数据,注销栈等........) ​

2023-12-21 13:29:18 673 1

原创 栈的基础细节(c语言)(全部代码,详细图解):入栈,出栈,获取栈中数据个数,栈顶数据等.....

栈的基础(详细的图解):(栈的创建,栈初始化,入栈,出栈,获取栈中数据个数,获取栈顶数据,注销栈....)

2023-12-16 16:01:22 1875 1

原创 二叉树和堆的构建(含全部代码,详细剖析图解)

二叉树建堆实现代码及详细图解(C语言)(建大堆,建小堆,堆插入,堆删除,堆排序,向上和向下调整算法):对数组(堆)进行剖析,分析建堆过程和向上向下调整算法,实现堆排序,堆插入,堆删除等操作,含详细剖析图解。

2023-12-10 21:57:50 1024

原创 二叉树递归代码及图解(c语言):(前序,中序,后续,节点与叶子个数)

二叉树遍历代码,递归详细图解(c语言):我们用链式结构创建一棵二叉树,对树的前序,中序,后序,树节点个数,叶子个数,树的高度进行递归分析,有详细的图解。

2023-12-08 13:11:09 1257

原创 线性表单链表的基本操作:添加、插入、删除、查找(非常全面,C语言实现)

​链表的创建;插入(头插、尾插);删除(头删、尾删、指点元素删除);查找元素;注销链表​

2023-11-11 15:36:18 573

原创 顺序表的基本操作:增删改查(含全部代码,C语言实现)——数据结构线性表

数据结构学习基础---基本操作,C语言。1顺序表定义;2顺序表初始化;3检查增容;4销毁顺序表;5尾插;6尾删;7头插;8头删;9打印元素;10查找元素返回下标;11指定元素插入;12删除指定元素;完整代码

2023-10-29 00:58:36 355 1

arm-linux-gnueabi-5.4.0.tar

arm-linux-gcc交叉编译工具: 备注:使用此资源时需要解压两次,因为上传时显示资源重复上传失败,于是套了两层压缩。建议使用window系统下载先解压一次再到Linux中进行解压,这样方便查看 此外,如果把编译器gcc替换成arm-linux-gcc时。 使用arm-linux-gcc 出现一下问题: rm-linux-gcc src/Output.c -o src/Output.o -I./inc -c /usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory 解决方法: $sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

2024-03-28

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

TA关注的人

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