自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GNU工具链常用工具说明

编译器(Compiler):目标文件分析器/反汇编器。:链接器(Linker):目标文件格式转换器。

2025-09-12 10:09:13 424

原创 内存段(Memory Segments)总结

SECTIONS.text : { ... } // 代码段.rodata ALIGN(4) : {*(.rodata*)} // 只读数据段.data ALIGN(4) : {*(.data)} // 已初始化数据段.bss ALIGN(4) : {*(.bss) *(COMMON)} // 未初始化数据段。

2025-09-12 09:19:17 433

原创 arm异常向量表与arm汇编

本文展示了ARM架构下异常向量表的实现与LED控制程序开发过程。首先在_start处定义了完整的异常向量表,包括复位、未定义指令、中断等7种异常处理入口。复位处理函数_reset_handler中配置了IRQ和系统模式下的堆栈指针,并依次调用时钟使能、LED初始化和点亮LED的函数。LED控制通过配置GPIO复用功能、电气属性和方向寄存器实现。编译过程包括使用arm-linux-gnueabihf-gcc编译汇编文件,通过arm-linux-gnueabihf-ld链接生成可执行文件,最后用objcopy转

2025-09-10 19:53:49 457

原创 arm汇编指令

通过**栈操作指令(stmfdldmfd)**对寄存器和返回地址(lr函数调用时寄存器被修改,影响主程序或上层调用函数。函数嵌套调用时,lr被多次覆盖导致无法正确返回初始调用处。栈的“先进后出”特性,完美适配了函数调用“先调用、后返回”的执行顺序,是 ARM 汇编中实现健壮函数调用的核心机制。工作模式由CPSR寄存器控制0b10000:用户模式(usr,正常程序执行模式)0b10011:管理模式(svc,系统调用模式)0b10111:中断模式(irq,外部中断响应模式)

2025-09-09 22:22:09 1171

原创 ARM内核知识概念

ARM架构与计算机体系核心知识总结 本文系统介绍了计算机体系结构中的核心概念,重点解析了ARM架构的关键技术。主要内容包括:1) RISC与CISC架构的区别及ARM的RISC属性;2) ARM内核的组成结构;3) ARM9与Cortex-A系列处理器的工作模式及作用;4) 异常处理机制和向量表原理;5) 状态寄存器(CPSR/SPSR)的功能;6) 内存管理单元(MMU)的作用与缓存管理;7) 高速缓存(Cache)的分类与架构影响;8) AHB/APB总线系统;9) RISC-V架构的编译流程与存储特性

2025-09-08 19:14:26 1105

原创 c51串口通信原理及实操

1:确认工作方式:8位:数据位比特数9位:数据位比特数加上一比特的的奇偶校验位所以我们选择方式一//1:初始化函数t=SCON;//先将第SM0和SM1清零t |=(1<<6);//使用方式一:SM1置1SCON=t;REN置1,t=SCON;//先将第SM0和SM1清零//使用方式一:SM1置1SCON=t;t=SCON;//先将第SM0和SM1清零//使用方式一:SM1置1SCON=t;

2025-09-05 21:08:39 2275

原创 C52单片机独立按键模块,中断系统,定时器计数器以及蜂鸣器

本文介绍了8051单片机的中断系统和定时器功能。主要内容包括: 中断系统部分: 解释了中断概念、中断优先级和中断嵌套 详细说明了8051的8个中断源分类及其中断服务函数格式 以外部中断0为例,分析了触发条件(下降沿/低电平)和配置方法 提供了中断初始化代码示例,展示如何设置中断触发方式和优先级 定时器部分: 对比了TCON和TMOD寄存器功能差异 介绍了TCON寄存器的位定义(如TF1、TR1等)及其控制功能 说明了TMOD寄存器用于设置定时器工作模式的作用 文章通过代码示例和寄存器位操作说明,展示了如何配

2025-09-04 23:47:38 1442 2

原创 51单片机:发光二极管与动态数码管控制

本文介绍了51单片机裸机开发的基础知识,重点讲解了HC6800-MS单片机控制LED模块的方法。主要内容包括:LED模块工作原理(通过P2寄存器控制8个LED灯)、Keil软件工程创建与配置、hex文件生成、程序下载流程,以及LED控制代码编写(全亮/全灭/指定灯控制等)。文中详细说明了如何通过二进制编码控制LED状态,并提供了延时函数实现灯光闪烁效果。最后给出了具体的.c和.h文件代码示例,展示了LED流水灯效果的实现方法。

2025-09-03 22:16:37 912

原创 专业的储存数据的结构:数据库

create table 表名(列名1 该列的数据类型,列名2,数据类型,列名3,数据类型);insert into 表名 values(值1,值2,值3…select 列名1,列名2,列名 n from表名。BLOB:相当于(void *)根据输入进行存储。.headers on/off 打开或者隐藏表头。.tables查看当前数据库中的表。TEXT:相当于字符串类型。.help 查看支持的命令。.quit:退出数据库。

2025-08-29 20:23:12 1062

原创 TCP并发服务器构建

在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5dcb7b86bd32400da9d5efe0df4f9a7f.png。(4) 当内核监测到时间时,应用层select将解除阻塞,(3)使用select传递集合表给内核,内核检测事件。(5)并将获得相关的事件结果做不同的任务处理。(2)添加关注的文件描述符到集合。(1)创建文件描述符集合。

2025-08-27 18:42:18 645

原创 天气查询小程序项目报告

本项目开发了一款基于C语言的天气查询小程序,通过调用第三方天气API实现城市天气信息查询功能。程序采用模块化设计,包含界面展示、用户输入处理、网络通信和数据处理等核心模块。其中网络通信模块通过TCP套接字与API服务器建立连接,发送HTTP请求并接收JSON格式的天气数据;数据处理模块利用cJSON库解析返回的天气信息,最终以清晰界面展示给用户。程序支持实时天气和未来天气预报两种查询方式,具有操作简单、响应快速的特点,为用户提供便捷的天气信息服务。

2025-08-26 13:12:07 950 1

原创 万维网以及http协议

例子:链接会保持一段时间:链接会立马断开;

2025-08-25 16:54:56 540

原创 TCP:传输控制协议

TCP协议是一种面向连接、安全可靠的传输协议,其特点包括基于数据流、一对一通信机制以及复杂的网络资源开销。为确保可靠性,TCP采用三次握手建立连接(SYN+ACK标志位)和四次挥手断开连接(FIN+ACK标志位)。编程流程涉及socket创建、bind绑定、listen监听、accept接收连接以及recv/send数据收发。TCP存在粘包问题,可通过四种方法解决:1)降低发送速度;2)固定数据包大小(注意跨平台对齐问题);3)添加分隔符;4)自定义数据帧格式(含帧头、帧尾、长度和校验字段)。实际应用中需根

2025-08-23 17:18:21 731

原创 网络通信——UDP协议。

路由器:负责数据的路径选择,是信息的中转站,路径选择:根据路由器路径规划的相关算法计算数据传输的对象,后到达接收方主机对应的路由器,该路由器将数据转发给接收方所在的交换机,最后将数据传到目标主机。上图表示每个路由器包含的:存储从源网络到目标网络的最优路径信息,是路由器进行路径选择的核心依据。

2025-08-22 17:14:03 1020

原创 信号以及共享内存

别称:软中断(软件层面模拟“中断”,实现进程异步通知 )。作用进程间异步通信(发送方主动通知,接收方被动响应 )。控制进程行为(如终止、暂停、资源清理 )。graph LRA[信号:软中断] --> B[基础概念: 异步通知、进程控制]A --> C[常用信号: SIGINT/SIGKILL/SIGCHLD 等]A --> D[处理流程: 产生→传递→响应→恢复]B --> B1[同步 vs 异步通信]C --> C1[信号速查表+系统支持]D --> D1[默认/忽略/捕获逻辑]

2025-08-19 22:01:21 808

原创 2025_08_19

多线程/进程环境中,每个执行流持有未释放的资源,又相互请求对方占有的资源,最终陷入永久等待。

2025-08-19 08:21:51 371

原创 关于linux操作系统下的文件操作方法:

本文总结了Linux文件操作的核心知识点,重点围绕标准I/O操作展开。 主要内容包括: Linux应用开发的四大方向:文件操作、多任务、网络编程和数据库 Linux七种文件类型及其标识(块设备、字符设备、目录、普通文件等) 文件操作三步流程:打开-读写-关闭,对比了标准I/O和文件I/O的关键函数 详细解析了fopen函数的六种打开模式(r/r+/w/w+/a/a+)及其行为特点 标准I/O核心函数总结:fopen、fclose、fgetc/fputc等函数的参数和功能 重点强调了文件操作中的注意事项:必须

2025-08-10 17:24:05 1067

原创 数据结构:树

本文总结了树与二叉树的基本概念、性质及遍历方法。树是由n个结点构成的有限集合,具有层次结构和一对多特性。二叉树是每个结点最多有两棵子树的特殊树结构,包含满二叉树和完全二叉树等特殊类型。文章详细介绍了二叉树的四个重要性质,包括结点数与层数关系、叶子结点与度2结点关系等。重点讲解了四种遍历方法:前序(根-左-右)、中序(左-根-右)、后序(左-右-根)和层序遍历,并提供了C语言实现代码示例。最后补充了层序遍历的队列实现方法,展示了通过队列实现广度优先搜索的技术细节。

2025-08-10 16:43:32 1080

原创 哈希表——指针数组与单向链表的结合

哈希表核心原理及应用解析 哈希表通过哈希函数将关键字直接映射到存储位置,实现O(1)平均时间复杂度的快速查找。文章详细解析了哈希表的核心机制:1)哈希函数设计(包括除留余数法、直接定址法等),强调质数取模可减少冲突;2)冲突解决方案(开放地址法和链地址法);3)与二分查找的性能对比,指出哈希表适合动态数据而二分查找适合静态数据。文中还提供了基于姓名首字母分组的哈希表C语言实现代码,展示了实际应用中的链地址法处理冲突方式。最后总结了哈希表适用于字典查询、用户信息检索等需要快速查询的场景。

2025-08-07 19:48:09 987

原创 各类栈与队列的概念及必会操作

栈与队列的概念及基础操作

2025-08-06 21:54:56 1113

原创 数据结构——双向链表

【代码】数据结构——双向链表。

2025-08-05 21:50:33 3925

原创 对于包含大量文件的程序的便捷makefile操作

本文介绍了Linux环境下使用makefile的基本方法。首先在项目目录创建makefile文件,包含以下核心内容:1) 定义目标文件名(OBJ);2) 指定源文件(SRC);3) 设置头文件路径(INC);4) 定义编译器(CC)。通过"$(OBJ):$(SRC)"规则描述编译过程,使用"$^"表示依赖文件,"$@"表示目标文件。还包含clean规则用于删除生成文件。最后执行make命令编译项目,或make clean清除生成文件。这种自动化编译

2025-08-05 21:17:02 356

原创 数据结构总纲以及单向链表详解:

本文系统梳理了数据结构核心概念与实现细节,重点包括: 逻辑结构:集合(独立元素)、线性(顺序关系)、树形(层级关系)、图形(网状关系)四种基本类型; 物理结构:顺序存储(连续内存,快速访问但增删低效)、链式存储(指针链接,增删高效但查找慢)、索引(目录加速查询)、散列(哈希函数直接定位); 链表实现:详解单向/双向/循环链表的结构差异与适用场景,强调指针操作与内存管理; 内存碎片:内部碎片(预分配未利用)与外部碎片(零散释放)的形成机制; 操作基础:依赖指针、结构体和动态内存分配实现灵活存储。 总结:数据结

2025-08-03 20:13:59 1134

原创 C语言:指针部分

这篇文章主要介绍了指针的基础概念及应用。指针是一种存储地址的数据类型,在32位系统占4字节,64位系统占8字节。内容包括指针类型(整型、字符型、数组指针等)、指针定义规范(避免野指针)、const修饰指针的作用、指针与数组的关系(数组指针与指针数组的区别)、指针运算规则(地址偏移量由基类型决定)。重点讲解了指针的核心用途——实现函数间数据修改,并通过实例演示了指针在变量交换、极值查找中的应用。文章还详细分析了二维数组的指针表示方法,以及字符指针的特点和注意事项。最后强调了指针比较应判断地址值是否相同。

2025-07-30 09:00:00 1087

原创 7_27 C语言:预处理命令:

本文介绍了C语言预处理阶段中的宏定义,包括不带参宏和带参宏两种类型。在不带参宏中,重点说明了宏替换的"只换不算"特性,以及使用时的注意事项:避免在宏内容中加分号、为整体表达式加括号等。带参宏部分则强调了参数加括号的重要性,以避免运算符优先级问题。文章通过多个示例演示了正确和错误的宏定义方式,并对比了宏与函数的优缺点:宏更高效但缺乏复用性,函数需要调用栈但可复用。最后指出"宏函数"是不准确的称呼。

2025-07-27 21:26:41 774

原创 我的C语言第一个项目:日历(深挖第八章及之前的基础)

本文实现了一个日历打印系统,包含5个主要函数:1)判断闰年;2)获取月份天数;3)计算1900年后的总天数;4)计算月份首日星期几;5)打印日历。系统通过函数协作,能正确处理闰年(如2020年2月29天)和各月份天数差异,使用二维数组存储日期数据并格式化输出。测试结果显示2025年10月的日历输出正确,首日为周三。该代码结构清晰,功能完整,实现了基本的日历展示功能。

2025-07-26 00:32:47 443

原创 7/25函数后部分:作用域以及其变量 以及乌班图linux多文件操作方法

以下是对这组 C 语言笔记核心知识的总结与补充,围绕及。

2025-07-26 00:19:35 2064

原创 7/24函数部分

本文总结了C语言函数相关的核心知识点,包括函数定义、参数传递、调用方式及数组参数处理。主要内容如下: 函数定义:分为无参函数(无返回值用void声明)、有参函数(需指定形参列表)和空函数(占位用途)。 参数传递:区分形式参数(函数定义时声明)和实际参数(调用时传递),强调类型匹配要求。函数返回值通过return实现,需注意类型转换问题。 函数调用:支持三种方式(独立语句、表达式和参数嵌套),使用前需声明函数原型以确保类型安全。 递归调用:需包含终止条件和递归表达式,通过自身调用实现问题分解。 数组参数:数组

2025-07-24 21:12:12 1240

原创 二维数组概念以及函数习题

摘要(148字) 本文系统讲解了二维数组的核心概念与操作:1)定义与访问方式,强调下标从0开始;2)内存按行优先连续存储的特性;3)数组名、行地址与元素地址的层级关系;4)完整/省略行的初始化规则;5)通过嵌套循环实现输入输出;6)作为函数参数需指定列数。附加两个典型应用:计算数组元素总和(嵌套遍历累加)与外围元素求和(边界条件判断),以及同行逆序算法(对称位置元素交换)。代码示例均采用动态行列计算增强通用性,体现C语言对二维数据的灵活处理能力。

2025-07-24 00:32:45 800

原创 C语言一维数组字符串操作与二分查找精要

本文总结了C语言中二分查找和字符串操作的核心知识。二分查找部分演示了在有序数组中快速定位元素的经典算法,强调其O(logn)的时间复杂度优势。字符串操作部分详细讲解了字符数组的存储特性、输入函数对比(gets、scanf、fgets)及安全处理技巧,并提供了字符串大小写转换、字符统计等实用代码示例。特别提醒使用strcpy时需注意目标数组空间问题,避免内存越界。这些基础概念和注意事项对C语言编程至关重要,尤其适合初学者系统掌握字符串处理的基本方法。

2025-07-22 19:34:10 1133

原创 一维数组核心知识点全解析 7/21

我的笔记。

2025-07-21 22:04:45 760

原创 嵌入式学习第六天:c语言第六章—循环控制 7-19

2025-07-20 17:28:27 1323

原创 7/18 选择结构程序设计

本文介绍了C语言中选择结构程序设计的相关知识,主要包括:1)使用scanf函数检测用户输入错误的方法,通过返回值判断正确输入个数,配合getchar清除缓冲区;2)关系运算符和逻辑运算符的使用规则及优先级;3)if语句的正确书写格式和注意事项,包括等式比较不能用单等号、花括号位置等;4)通过例题演示了判断数字整除性、字符大小写转换等实际应用。文中还穿插了多个编程习题,涉及输入输出格式控制、运算符优先级、类型转换等常见考点。

2025-07-18 21:33:08 822

原创 嵌入式第三天学习总结

个人当天学习总结,不是很熟练,打字也很慢,加油,坚持会有好结果。

2025-07-17 22:42:47 615

原创 Windows计算器快速进制转换

选择相应进制数(hex,DEC,OCT,BIN)输入对应进制的数值,其他进制符号后就会出现对应的数值。

2025-07-16 20:51:14 235

原创 注释一段c语言代码

开头#if 0加结尾#endif。

2025-07-16 20:32:39 100

原创 linux基础操作(只有自己看得懂版)

2025-07-16 19:29:25 128

c语言扩展题,用于作为我的作业笔记

c语言扩展题,用于作为我的作业笔记

2025-07-17

IMG_20250716_214451.jpg

IMG_20250716_214451.jpg

2025-07-16

IMG_20250716_214438.jpg

IMG_20250716_214438.jpg

2025-07-16

空空如也

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

TA关注的人

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