自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式第四十九天(ARM汇编指令)

8bit 常数范围(0~255),位移的步进值是以2为单位(即实际位移 2 * rotate 位),可以表示循环有以(0~30)偶数位: 0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30。如果能找打这个数,那么待保存的数就是立即数,否则就不是。arm体系采用的方案是满减,但是在进行操作之前,我们必须告诉2440栈底的位置,这里我们把栈底设置为0x40001000,从地址0x40000000开始的0x1000这段内存空间对应的是2440内部的一段ram,总共4k。

2025-09-09 22:19:11 594

原创 嵌入式第四十八天(ARM架构,相关寄存器与异常处理)

指令集(Instruction Set)是计算机处理器能够识别和执行的操作命令的集合,是硬件与软件之间的接口。它定义了处理器支持的基本操作,如算术运算、逻辑运算、数据移动和控制流程等。

2025-09-08 19:24:59 694

原创 嵌入式第四十七天(DS8B20简单调试)

【代码】嵌入式第四十七天(DS8B20简单调试)

2025-09-08 18:38:22 39

原创 嵌入式第四十六天(51单片机(通信))

一.串行通信与并行通信1.- 串行通信:数据一位一位地依次传输,只需要一条或很少的几条传输线,适合长距离传输,但传输速度相对较慢。例如,计算机的串口(COM口)通信就是串行通信。2.- 并行通信:数据的各位同时传输,需要多条传输线(一般为8的倍数,如8位、16位、32位等),传输速度快,但传输线多,成本高,适合短距离高速传输。例如,计算机内部的总线(如PCI总线)、打印机的并行口通信都属于并行通信。3.

2025-09-05 20:44:26 1030 1

原创 嵌入式第四十六天(51单片机(中断,定时器))

中断向量表是存储于内存固定地址的核心数据结构,其本质是建立 “中断号(唯一中断标识)” 与 “中断服务程序(ISR)入口地址” 的一一映射,为 CPU / 内核提供中断响应时快速定位服务程序的 “索引表”,是中断机制高效寻址的基础。当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完成以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。内核跳转到该中断对应的 “中断服务程序” 入口,执行预设的处理逻辑,这是中断的核心处理环节。

2025-09-04 20:47:17 760

原创 嵌入式第四十五天(51单片机(led,数码管))

MCU(微控制器):集成了CPU、内存、外设等的单片芯片,常用于嵌入。CPU(中央处理器):计算机的核心部件,负责执行指令和处理数据。可编程的引脚,可通过软件控制其输入或输出模式,用于连接外部设备。MPU(微处理器):通常指更通用的处理器,强调计算能力。GPU(图形处理器):专用于图形和并行计算的处理器。P1寄存器:在数码管模块中使用,用来选择点亮的位区。是指能够操作硬件的,具有固定地址的内存空间。P0寄存器:用来选择点亮的段区。P2寄存器:LED灯点亮。

2025-09-03 21:20:46 224

原创 嵌入式四十三,四十四天(WEB信息系统查询)

一.

2025-09-03 21:03:05 388

原创 嵌入式第四十二天(数据库,网页设计)

SQLite3 通过事务机制确保数据操作的原子性、一致性、隔离性和持久性(ACID)。事务的开启方式直接影响性能和数据安全。

2025-09-03 21:00:33 164

原创 嵌入式第四十一天(数据库)

【代码】嵌入式第四十一天(数据库)

2025-08-29 23:05:03 301

原创 嵌入式第四十天(TCP并发服务端(IO多路复用))

用户调用 epoll_wait 时,只需直接从就绪链表中获取就绪的 FD 即可,无需遍历所有注册的 FD,这也是 epoll 相比 select/poll 高效的关键原因之一。红黑树的特性(有序、查找/插入/删除效率高,时间复杂度为 O(log n))保证了 epoll 能高效管理大量的文件描述符,即使监控的 FD 数量庞大,相关操作也能保持较好的性能。总结来说:epoll 通过红黑树存储所有注册的待监控 FD,通过就绪链表存储已触发 IO 事件的 FD,两者配合实现了高效的 IO 多路复用管理。

2025-08-28 18:59:49 336

原创 嵌入式第三十九天(TCP多任务并发)

多线程相对于进程资源开销小,相同资源环境下,并发量比进程大.一.TCP服务端并发模型。

2025-08-27 19:44:42 270

原创 嵌入式第三十八天(天气爬虫)

【代码】嵌入式第三十八天(天气爬虫)

2025-08-27 09:16:34 236

原创 嵌入式第三十七天(TCP补充,应用层协议(HTTP))

【代码】嵌入式第三十七天(TCP补充,应用层协议(HTTP))

2025-08-25 19:17:14 236

原创 嵌入式第三十三天三十四天(简单音频播放)

【代码】嵌入式第三十三天三十四天(简单音频播放项目)

2025-08-25 17:50:34 90

原创 嵌入式第三十六天(网络编程(TCP))

4. 客户端→服务器(ACK=1,seq=u+1,ack=w+1):客户端收到服务器的FIN后,回复确认报文(ACK=1),ack=w+1(确认收到服务器的终止请求),序列号为u+1。3. 服务器→客户端(FIN=1,ACK=1,seq=w,ack=u+1):服务器数据发送完毕后,发送自己的终止请求(FIN=1),同时再次确认ack=u+1,序列号为w。1. 客户端→服务器(FIN=1,seq=u):客户端数据发送完毕,发送终止连接请求(FIN=1),序列号为u。客户端进入“FIN-WAIT-1”状态。

2025-08-24 23:12:26 623

原创 嵌入式第三十五天(网络编程(UDP))

Linux下的网络编程:目的:不同主机进程间通信。1.主机与主机之间物理层面必须互通。2.进程与进程间在软件层面必须互通。

2025-08-22 22:41:45 206

原创 嵌入式第三十二天(信号,共享内存)

3.其他发送信号的函数接口。6.共享内存其他相关操作。7.实现进程间同步方法。

2025-08-19 18:12:15 149

原创 嵌入式第三十一天(线程间的机制,IPC机制)

死锁是指在多进程或多线程环境中,两个或多个进程(线程)相互等待对方释放资源,而陷入无限期阻塞的状态。- 不可剥夺条件:已分配的资源不能被强制剥夺,只能由持有资源的进程(线程)主动释放。- 持有并等待条件:进程(线程)已经持有至少一个资源,同时又在等待其他资源。- 循环等待条件:多个进程(线程)之间形成一种头尾相接的循环等待资源关系。- 互斥条件:资源只能被一个进程(线程)占用,无法同时被多个使用。进程间空间独立,无法直接通信,需要IPC机制实现通信。1.进程间通信:IPC机制。信号:进程间通知机制。

2025-08-18 18:47:44 272

原创 嵌入式第三十天(线程相关操作)

方式:全局变量,全局队列,共享内存区域.一.线程操作相关函数。

2025-08-16 17:30:00 166

原创 嵌入式第二十九天(进程的回收,线程)

编译:使用 pthread 库的程序在编译时,需要链接 pthread 库,例如在 Linux 下使用 gcc 编译时,需要加上 -pthread 选项,如 gcc your_file.c -o your_program -pthread。- execl(path, arg0, arg1, ..., (char*)NULL) :参数以列表形式传递, path 为程序路径,后续参数为命令行参数,需以 NULL 结尾。如果将其设置为 NULL ,则表示使用默认的线程属性。

2025-08-15 19:08:38 492

原创 嵌入式第二十八天(程序与进程)

fork() 是 Unix/Linux 系统中用于创建新进程的系统调用,它会复制当前进程(称为“父进程”),生成一个新进程(称为“子进程”)。- 调用一次,返回两次:父进程中返回子进程的 PID(进程 ID,非负整数),子进程中返回 0。- 优先级调度:为进程分配优先级,高优先级进程优先获得CPU,可分为抢占式(高优先级进程可打断低优先级进程)和非抢占式。- 先来先服务(FCFS):按进程到达顺序分配CPU,简单但可能导致“短进程等待长进程”。- 缩短周转时间:进程从提交到完成的总时间更短。

2025-08-14 19:10:27 232

原创 嵌入式第二十七天(UI相关技术(framebuffer))

原理:将显卡硬件结构抽象掉,通过Framebuffer的读写直接对显存进行操作,用户可将其看成显示内存的映像,映射到进程地址空间后进行读写,写操作会立即反映在屏幕上。- 定义:Framebuffer是一段随机访问内存(RAM)区域,包含用于驱动视频显示的位图,其中的数据代表了一帧完整视频图像中的所有像素。一.framebuffer显示操作流程。

2025-08-13 21:37:36 201

原创 嵌入式第二十六天(文件IO相关操作)

返回值: 成功:返回当前读写位置到文件开头的偏移量, 失败:-1。八进制操作权限获得:原操作值与掩码值按位取反后按位与。返回值: 成功:文件描述符 失败:-1。umask命令:用于查看当前操作系统的的掩码值。文件描述符:操做系统已打开的文件的标识符;范围:0-1023(共1024个);SEEK_CUR:文件当前读写位置。whence:要偏移的相对位置。SEEK_SET:文件开头位置。分配原则:最小未被使用原则;offset:偏移量(字节)SEEK_END:文件末尾。小的,非负的整形数据;

2025-08-12 21:35:56 247

原创 嵌入式第二十五天(基于Linux操作系统的编程,标准IO相关操作)

二.fwrite与fread。

2025-08-11 22:22:08 212

原创 嵌入式第二十四天(基于linux操作系统的编程,标准IO相关操作)

1.利用fgetc和fputc实现cat功能。

2025-08-09 22:54:28 163

原创 嵌入式第二十三天(二叉树)

* 左右孩子指针 */DATATYPE data;/* 结点数据 */typedef struct BiTNode /* 结点结构 */二.二叉树示例(前序,中序,后续)

2025-08-08 19:24:32 712

原创 嵌入式第二十二天(哈希表)

一.哈希表:2.实列及基本操作。

2025-08-07 19:05:04 114

原创 嵌入式第二十一天

1. 在被调函数中,想要修改主调函数中的指针变量,需要传递该指针变量的地址,形参用二级指针接收。2.指针数组的数组名是一个二级指针,指针数组的数组名作为参数传递时,可用二级指针接收。内核链表:双向循环链表,不再将数据存储在链表节点中,而是将结点嵌入到存储的数据中。container_of:通过偏移量,获取结构体的首地址(结点首地址-偏移量)。offset_of : 获取内核链表中链表结点到结构体起始位置的偏移量。指针数组:保存多个指针的数组。示例:基本操作(链式队列)数组名:数组首元素地址。

2025-08-06 22:32:34 150

原创 嵌入式第二十天

时间戳:在编译代码时,只级译修改后的源文件,其他没有修改的,只进行链接即可。gcc main.c fun.c -o a.out目标文件:a.out。-I : 指定头文件所在位置\n-L:指定使用到的库所在的位置。Makefile :用来管理代码的编译和链接。依赖文件:main.c fun.c。链接:处理多文件及函数的链接关系。汇编:将汇编指令生成二进制指令。编译:将源程序转换成汇编指令。预处理:处理和#相关的指令。2.双向链表的尾插和尾删。3.双向链表的头删和销毁。

2025-08-05 20:56:19 304

原创 嵌入式第十九天

valgrind ./a.out :内存探测工具,用于检测内存错误和泄露.

2025-08-04 21:28:37 133

原创 嵌入式第十八天

例如:内存中依次分配10KB、20KB、10KB,释放中间20KB后,剩余两个10KB空闲块,无法满足15KB进程的需求,这两个10KB块即为外碎片。④散列结构(哈希结构):从数据的存储位置和元素之间的关键字建立起对应的关系(哈希函数:根据该关系进行数据存储和查找)①顺序结构:需要预定内存分配,可能造成大量内存碎片,数据访问方便,插入和删除需移动大量数据。- 产生原因:多次分配和释放不同大小的内存块后,空闲内存被分割成多个不连续的小块。程序设计=数据结构+算法。

2025-08-02 22:08:45 341

原创 嵌入式第十七天

/修改new中的ECHO和ICANON参数,使得new为不回显输入内容。#include <termios.h> //关于终端输入输出设置的头文件。printf("完成拼图\n");printf("按回车键进入游戏\n");//用完之后,恢复原来的终端属性。//获取终端属性信息。//修改终端属性信息。

2025-08-02 21:37:25 325

原创 嵌入式第十六天

在C语言中,共用体(union) 是一种特殊的数据类型,允许不同类型的成员变量共享同一块内存空间,其核心特点是“内存复用”,适合在不同场景下使用同一内存区域存储不同类型数据的场景。在C语言中,枚举( enum )是一种用户自定义的数据类型,用于定义一组具有离散值的常量,目的是提高代码的可读性和可维护性,尤其适合表示状态、选项等固定集合的场景。同一时间只有一个成员的值是有效的(最近被赋值的那个),访问其他成员可能得到无意义的结果(除非有明确的内存解析需求)。// 输出'A'(65对应ASCII码的'A')

2025-07-31 21:18:00 514

原创 嵌入式第十五天

这里, 数据类型 表示最终所指向的数据的类型。- 参数: size 表示要分配的内存字节数,其类型为 size_t ,这是一个无符号整数类型,通常用于表示内存大小、数组长度等。这个 ptr 就是一个指向 int 类型指针的指针,它可以存储一个指向 int 型数据的指针的地址。其中, 数据类型 是指针所指向的数据的类型,[]的优先级高于 *,因此先构成数组,再说明数组元素是指针。在C语言中,指针数组是一个数组,其每个元素都是指针类型,简单来说,就是“存储指针的组”

2025-07-30 21:15:26 499

原创 嵌入式第十四天

指向“整个数组”: p 存的是数组 arr 的首地址,但类型是 “指向 int[5] 的指针”,和普通指针(如 int *q = arr;- 解引用操作数组: (*p)[i] 等价于 arr[i] ,也能直接用 p[0][i] (把数组指针当二维数组首行用,逻辑类似二维数组名)。- (*p) 括号不能少,否则会变成 “指针数组”( int *p[5] 是存 5 个指针的数组)。- 指针数组: int *p[5] → 一个数组,存5 个 int 指针(强调“数组里装指针”)。

2025-07-29 19:17:38 881

原创 嵌入式第十三天

对指针可以进行加法运算,即p+n。其结果依旧是一个指针,新的指针是在原来的地址值基础上加上n* (sizeof (基类型))个字节。指针与指针之间不能进行求和运算。两个指针相减必须保持基类。①从数组中选择一个元素作为基准数。通常选择数组的第一个元素。⑥对基准值左右两侧的子数组分别重复上述步骤(函数的递归)。⑤当两数的位置重合时,交换该数与基准数。三.快速排序法(算法复杂度为nlgn)型一致,相差为基类型的个数。②自右往左找比基准数小的数。③自左往右找比基准数大的数。

2025-07-28 21:05:15 111

原创 嵌入式第十二天

在C语言中,指针是一个非常重要的概念,它存储的是另一个变量的内存地址。简单来说,指针就像一个“地址标签”,通过它可以找到对应的变量在内存中的位置,进而操作该变量的值。- 地址:内存中每个字节的唯一编号,C语言中可用 & 运算符获取变量的地址(如 &a 表示变量 a 的地址)。- 指针变量:用于存储地址的变量,定义时需要指定指向的数据类型(如 int* 表示指向整数的指针)。- 解引用:通过 * 运算符访问指针所指向的变量的值(如 *p 表示指针 p 指向的变量的值)。会将a的值改为20(因为p指向a)。

2025-07-26 19:36:04 359

原创 嵌入式第十一天

从调用分配函数(如 malloc )时创建(获得内存),直到调用 free 函数手动释放内存时销毁,或程序结束时由系统回收。- 例如:全局变量的作用域是整个文件,但在某个函数内若定义了同名局部变量,则全局变量在该函数内不可见(被隐藏)。- 函数声明时, extern 可省略(函数默认外部可见),但变量声明时若跨文件使用, extern 不可省略。从变量所在的函数/块被调用时创建(分配内存),到函数/块执行结束时销毁(释放内存),仅在执行期间占用内存。// 静态全局变量,静态生存期(仅当前文件可见)

2025-07-25 22:04:50 701

原创 嵌入式第十天

③调用规则:(涉及到栈的使用,栈存储的特点:先进后出,单向出口)入栈:即保护现场,当函数执行到被调函数的语句时,会将当前函数的位置保存到栈中,便于后续跳转回该函数。出栈:恢复现场,当被调函数执行到return语句时,pc会从栈中获取入栈时的主调函数位置,一层一层的回值,至到达主函数。这两种递归调用都是无终止的自身调用,可以用if语句来控制递归调为有限次数的、有终止的递归调用,只有在某一条件成立时才继续执行递归调用;在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。

2025-07-24 21:02:23 214

原创 嵌入式第九天

动态初始化只指定行数时(如 int arr[][] = new int[3][] ),需先为每行分配空间(如 arr[0] = new int[2] ),否则直接访问 arr[0][0] 会报错。示例: int matrix[][] = new int[2][3];数据类型 数组名[][] = new 数据类型[行数][列数];

2025-07-23 20:33:24 264

空空如也

空空如也

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

TA关注的人

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