- 博客(34)
- 收藏
- 关注
原创 学习嵌入式的第三十四天-数据结构-(2025.7.29)数据库
摘要:数据库是存储管理数据的应用程序,支持SQL操作。主要分为关系型(如Oracle、MySQL)和非关系型(如MongoDB)。SQL语句包括DDL(建表)、DML(增删改)和DQL(查询)。SQLite3是轻量级嵌入式数据库,具有开源、无需安装等特点,支持C语言接口。基本操作包括创建表、增删改查数据,支持模糊查询。C语言编程核心函数为sqlite3_open()、sqlite3_exec()和sqlite3_close()。
2025-07-29 20:48:48
635
原创 学习嵌入式的第三十四天-数据结构-(2025.7.28)数据库
SQLite是一款轻量级嵌入式关系型数据库,具有开源、无服务器进程、单文件存储(最大2TB)等特点。支持标准SQL语法,包括DDL、DML、DQL操作,提供C语言编程接口(sqlite3_open/exec/close等)。安装方式多样,Ubuntu可通过apt-get在线安装,使用命令行工具进行数据库操作和SQL语句执行。相比Oracle、MySQL等大型数据库,SQLite更适用于小型应用场景,是典型的文件型数据库。
2025-07-28 20:50:39
275
原创 学习嵌入式的第三十三天-数据结构-(2025.7.25)服务器/多客户端模型
本文介绍了服务器模型和MQTT协议的关键特点。服务器模型包括循环服务器(适用于简单任务)、并发服务器(支持多任务处理)和多路IO模型(适合高并发)。MQTT协议专为低功耗设备设计,采用发布/订阅模式,通过Broker实现消息路由,支持双向通信。软件安装方法包括在线安装(apt-get)和本地源码编译安装(configure/make/make install)。
2025-07-26 17:40:06
410
原创 学习嵌入式的第三十二天-数据结构-(2025.7.24)IO多路复用
摘要:IO多路复用通过单线程监控多个文件描述符实现高效并发处理,对比了阻塞/非阻塞IO及多线程方案的不足。重点剖析select和epoll两种实现机制:select采用轮询检测,受1024fd限制且需遍历全集合;epoll采用事件驱动,支持更多fd并直接返回就绪集合。两者核心差异体现在检测方式、处理效率及扩展性上,epoll在性能上更具优势,体现了用更少资源处理更多任务的核心理念。(149字)
2025-07-26 17:35:39
298
原创 学习嵌入式的第三十一天-数据结构-(2025.7.23)网络协议封装
摘要:本文介绍网络协议封装流程及常用工具。数据封包通过MAC-IP-TCP分层封装(MTU=1500字节),拆包则逆向解析。关键协议头包含IP(20字节/TTL=64)、TCP(20字节/含SYN/ACK等标志位)和UDP(8字节)。列举核心网络工具:telnet(默认23端口)、netstat(-anp查看连接)、ping(连通性测试)、ssh(远程登录)及Wireshark抓包工具。HTTP请求示例展示报文结构,TCP连接需经历三次握手和四次挥手。文中同步提供Linux环境下的工具安装命令(如opens
2025-07-26 17:33:14
443
原创 学习嵌入式的第三十天-数据结构-(2025.7.21)网络编程
摘要:本文系统梳理了网络编程的核心知识。对比了OSI七层模型与TCP/IP四层模型的结构差异,详细阐述了各层的功能特点。介绍了IP地址分类及子网划分方法,重点讲解了TCP/UDP编程基础,包括服务端/客户端的Socket编程流程、三次握手与四次挥手机制。通过对比TCP(可靠、面向连接)和UDP(不可靠、无连接)的特性差异,分析了不同场景下的适用性。最后总结了C/S与B/S架构的区别,以及P2P模式的直接通信特点。内容涵盖网络配置、协议原理及编程实现三个维度,为网络编程学习提供了完整框架。
2025-07-26 15:50:01
635
原创 学习嵌入式的第二十九天-数据结构-(2025.7.16)线程控制:互斥与同步
以下是您提供的文本内容的排版整理版本。我已根据内容主题将其分为几个主要部分(互斥锁、信号量、死锁、IPC进程间通信、管道操作),并使用清晰的结构组织信息:互斥机制确保多线程中对临界资源的排他性访问(公共资源)。框架包括定义、初始化、加锁、解锁和销毁步骤。定义互斥锁: 初始化锁:加锁:解锁:销毁锁:非阻塞锁(trylock):信号量用于线程或进程间同步,分类为:框架包括定义、初始化、PV操作和销毁。定义信号量: 初始化信号量:PV操作:销毁信号量:死锁产生原因:死锁必要条件:注意:如果资源充足,死
2025-07-25 20:07:40
1278
原创 学习嵌入式的第二十五、六、七天-数据结构-edid项目(2025.7.8-2025.7.10)
1.1介绍:一个用于 解析、查看、修改显示器 EDID 数据 的命令行工具。EDID的全称是Extended Display Identification Data(扩展显示标识数据),VGA、DVI的EDID由主块128字节组成,HDMI的EDID增加扩展块(128字节),包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。1.2名字:EDID 检视与编辑器。1.3项目目标核心功能EDID信息的显示。
2025-07-10 19:29:10
575
原创 学习嵌入式的第二十四天-数据结构-目录操作(2025.7.7)
本文介绍了Linux系统文件操作和时间处理相关内容。第一部分讲解stat函数的使用,该函数用于获取文件属性,包括文件类型、大小、权限、时间戳等信息,并详细说明了如何判断文件类型和处理权限。第二部分介绍时间处理函数time()及其相关函数ctime()、localtime()的用法,以及如何获取和格式化文件时间属性。此外,还说明了用户/组ID与名称的转换方法,通过getpwuid()和getgrgid()函数访问/etc/passwd和/etc/group文件信息。最后解释了这些结构体与系统文件的对应关系。
2025-07-07 19:24:09
336
原创 学习嵌入式的第二十三天-数据结构-文件IO(2025.7.1)
读写两端的结构体定义必须完全一致(包括成员顺序、类型、字节对齐),否则会导致解析错误。
2025-07-01 20:25:49
1286
原创 学习嵌入式的第十七天-数据结构-数据结构初识(2025.6.23)
今天是学习数据结构的第一天,数据结构本身包含了结构和系统编程两个大的模块,接下来几周的时间都将学习好这一个板块的内容。
2025-06-23 20:02:21
396
原创 学习嵌入式的第十六天-c语言-结构体(2)(2025.6.18)
摘要:本文总结了结构体、共同体、枚举和typedef的使用要点。结构体用于组合不同类型数据,需先定义类型再创建变量,建议指针传参提高效率;共同体成员共享内存空间,适合数据转换和节省内存;枚举通过enum定义常量集合,提升代码可读性;typedef为复杂类型创建别名。掌握这些数据类型能有效提升代码效率和组织性。(149字)
2025-06-18 20:17:48
400
原创 学习嵌入式的第十五天-c语言-数组(4)和结构体(2025.6.17)
摘要:课程主要涵盖数组最后内容和结构体入门知识。重点讲解了函数指针的概念与使用、动态内存分配操作(malloc/free)、多级指针的解引用方法以及结构体的定义与使用方式。特别强调函数回调机制和qsort应用、内存管理注意事项、结构体数组及指针传递技巧。课程以数组内容收尾,为后续结构体学习打下基础。
2025-06-17 21:13:21
234
原创 学习嵌入式的第十四天-c语言-指针(3)(2025.6.16)
今天的学习涵盖指针操作、字符串处理、函数实现以及对指针操作二维数组及字符型二维数组的操作学习。
2025-06-16 21:12:23
289
原创 学习嵌入式的第十三天-c语言-指针(2)(2025.6.13)
本文总结了指针在算法实现中的关键应用。主要内容包括:1)指针与数组的关系及运算规则;2)通过指针实现的常见排序算法(选择、冒泡、插入、快速排序)及其递归写法;3)二分查找的指针实现方式;4)字符串与指针操作,强调const修饰的重要性;5)函数设计规范,包括参数传递和返回值设计。重点介绍了快速排序"分而治之"的思想及其O(nlogn)的时间复杂度优势。全文系统性地展示了指针在算法实现中的灵活运用,为C语言编程提供了实用参考。
2025-06-13 20:29:19
470
原创 学习嵌入式的第十二天-c语言-指针(1)(2025.6.12)
摘要:本文介绍了C语言指针的核心知识点。包括指针的基本概念(内存地址的引用)、定义语法(基类型变量名)及操作(&和运算符)。重点讲解了指针的三大用途:函数多值返回、动态内存管理和数据结构实现,以及指针在判断大小端存储中的应用。同时阐述了指针运算规则、指针与数组的关系,以及通过指针实现数据遍历的方法。最后强调需要理解指针传递与值传递的区别,避免野指针问题,并建议通过实践巩固指针操作技能。
2025-06-12 20:09:45
352
原创 学习嵌入式的第十一天-c语言-预处理(2025.6.11)
C语言中的预处理、宏定义、文件包含和条件编译等知识点,并通过实例演示了编译过程的各个阶段及其实现细节。
2025-06-11 21:52:13
335
原创 学习嵌入式的第九天-c语言-函数(1)(2025.6.9)
今天主要学习到了函数以及栈和递归问题,三个内容结合起来对函数的相关内容进行了详细的学习,今日后通过练习一些数学问题的表示更加熟练的掌握函数。
2025-06-09 20:47:48
189
原创 学习嵌入式的第八天-c语言-数组(3)(2025.6.6)
摘要:今天主要学习了二维数组和字符型数组的内容。二维数组本质上是一维数组的嵌套,需要注意其存储空间和初始化规则(未赋值元素自动补零)。字符型二维数组可用于批量处理字符串。强调要通过复习来掌握数组这一重要知识点。全文内容涵盖数组的基本概念、使用注意事项和总结建议。(149字)
2025-06-08 20:48:01
227
原创 学习嵌入式的第七天-c语言-数组(2)(2025.6.5)
摘要:今天主要学习了数组的两个重要内容:插入排序和字符数组。插入排序通过有序数列中定位插入位置实现排序,并与选择、冒泡排序进行复杂度比较;字符数组用于处理字符串数据,需注意字符串结束标志'\0'及其操作函数(输入/输出、统计长度、复制等)。通过类比和实践加深了对数组排序方法和字符串处理的理解,完善了数组知识体系。(135字)
2025-06-05 21:01:12
217
原创 学习嵌入式的第六天-c语言-数组(1)(2025.6.4)
本文介绍了C语言数组的核心知识点:数组是相同类型变量的集合,需通过类型说明符、数组名和常量表达式定义。重点讲解了数组内存分配、初始化赋值方式和元素引用规则。详细分析了选择排序和冒泡排序两种算法原理,强调数组操作需配合循环结构。文章指出数组是C语言学习难点,建议通过大量实践掌握排序技巧,并注意C99标准引入的变长数组特性。
2025-06-04 21:18:48
269
原创 学习嵌入式的第五天-c语言-选择判断和循环(2025.6.3)
今天的内容在c语言编程中使用频率非常高,在课堂上和课后都要做大量的练习巩固使用熟练。
2025-06-03 21:06:55
185
原创 学习嵌入式的第四天-c语言-输入输出功能(2025.5.29)
今天的学习过程非常清晰,从两个大的版块一步一步拆分,对每个版块的单一内容深度学习,具体掌握好了语句和输入输出这两部分的内容,在日后的学习中尽量保持这样有逻辑的学习。
2025-05-29 20:45:15
226
1
原创 学习嵌入式的第三天-C语言-运算符和表达式(2025.5.28)
今天相较前两天的内容较少,主要学习了运算符还有表达式的内容,要更加熟悉地址还有进制之间表示数的方法。
2025-05-28 20:43:33
350
原创 学习嵌入式的第二天-C语言-数据类型(2025.5.27)
然后学习了整型具体的存储方式,包括存储以补码的方式存储的规则以及字节序的问题,字节序分为小端和大端两种方式存储,小端的含义是高位数据存储在高地址处,低位存储在低地址处,大端则相反。今天主要是对进制以及基本的数据类型展开了学习,进制主要进行了进制形式的认识和不同进制的转换开展了学习。学习浮点型的过程与整型类似,首先学习浮点型的常量表示和变量表示,变量的类型和变量的空间大小,浮点型变量的存储方式,最后是了解到考点:关于浮点数比较的问题,主要是要主要同一精度进行比较。今天主要学习的是c语言中的数据类型以及进制。
2025-05-27 21:03:30
201
原创 学习嵌入式的第一天-了解Linux系统(2025.5.26)
首先明确了Linux环境下的编程环境与以往的集成开发环境不同,要分别从编写、编译、运行、调试四个步骤分开细致的学习。例如pwd、ls、cd、cp等开发过程中必不可少的指令进行了学习和一定量的练习让自己快速上手,并且学会了一定的进阶操作让自己在使用的过程中更加便捷,所花的时间更少、思路更加清晰。我对终端上常见的符号意义进行了拆分的学习,例如标准的Linux的命令是怎样的,‘:’、‘$’、‘@’等符号的含义。今天是学习嵌入式的第一天,主要目标是了解Linux系统的基本操作和相关的软件。Linux环境下编程。
2025-05-26 20:11:05
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅