- 博客(87)
- 收藏
- 关注
原创 TCP/IP、HTTP 和 HTTPS简介
特性TCP/IPHTTPHTTPS层级网络层、传输层应用层应用层(HTTP + SSL/TLS)角色互联网通信的基础架构Web内容的传输协议安全版的Web内容传输协议安全性不直接提供安全保证不安全,明文传输安全,加密传输功能寻址、路由、建立可靠连接定义Web请求和响应的格式在HTTP基础上增加加密、认证比喻高速公路和交通规则在高速公路上运输的明信片在高速公路上运输的。
2025-09-08 19:37:25
1517
2
原创 文件系统简介
文件系统是计算机科学中一个核心且基础的概念。它就像是计算机存储设备的"图书管理员",负责用一套巧妙的方法来组织、管理、存储和检索我们所有的数据。
2025-09-08 17:52:57
496
原创 linux可以直接用指针操作物理地址吗?
场景能否直接使用物理地址指针?原因与正确方法用户空间应用程序绝对不能所有地址都是虚拟地址,且无权限访问硬件。内核空间驱动程序强烈不建议直接使用必须通过ioremap()将物理地址转换为虚拟地址,并使用readlwritel等安全接口访问。这是唯一正确、安全、可移植的方法。核心思想:Linux 通过虚拟内存机制抽象并保护了硬件资源。直接操作物理地址违背了这一设计哲学,会破坏系统的稳定性和安全性。必须通过内核提供的标准接口来安全、可控地访问硬件。
2025-09-03 19:18:36
595
原创 UART和SPI区别
一个通信速率(即波特率,如9600bps)。发送方在数据前加上一个“起始位”来告知接收方数据开始,接收方则根据这个约定的波特率来采样数据。如果双方时钟有微小误差,长时间通信可能会产生错位。主设备控制时钟,从设备在时钟的上升沿或下降沿读取数据。:有一根独立的时钟线 (。这是两者最根本的区别。
2025-08-29 20:06:36
902
原创 克隆态驱动给用户态使用流程
光有电话不行,还得有通话规则。访客不能说“帮我打印”,而必须使用标准的指令,比如:“指令1:查询状态”“指令2:打印一份文件”在内核中,这是通过一个叫 ioctl 的机制实现的。驱动程序员会定义好各种指令(比如CMD_PRINT),并编写好处理这些指令的函数。关键点:数据传递必须通过“安检”。内核和用户程序的内存是隔离的,不能直接传递指针。驱动必须使用和这两个函数来安全地接收和发送数据,防止系统崩溃。简单来说,这个过程就是:驱动在内核层:创建一个设备文件(如。
2025-08-29 19:58:21
401
原创 CAN协议及其核心精髓——仲裁机制。
CAN,全称为,即控制器局域网。它是由德国博世公司开发的一种主要用于汽车和工业控制领域的串行通信协议。其设计初衷是为了解决汽车中大量电子控制单元之间的可靠、实时、抗干扰的通信问题。CAN协议是一种为高可靠性、多主、实时控制场景设计的通信协议。其核心非破坏性仲裁机制通过巧妙的“线与”逻辑和标识符优先级,优雅地解决了总线冲突问题,确保了关键消息能够及时送达。这正是它成为汽车和工业领域绝对主流总线技术的根本原因。它与IIC的仲裁(基于地址和时钟同步)有本质区别,是。
2025-08-27 14:27:25
1092
原创 volatile关键字:硬件编程的「防优化盾牌」
/ 寄存器映射标准写法// 控制寄存器// 状态寄存器// 数据寄存器// 启用UARTwhile (!// 等待发送就绪// 发送字符「一变三外用volatile」变量值会变 + 外部因素修改 = 必须volatile三种「外部因素」场景:硬件寄存器(外部设备修改)中断服务程序修改的全局变量多线程共享变量(需配合其他同步机制)记住:volatile不是万能的,但在硬件编程中,没有volatile是万万不能的!
2025-08-26 11:38:07
246
原创 结构体与联合体:内存布局、应用场景与技术实践详解
在C/C++系统编程中,和是两种基础且强大的复合数据类型。它们虽然语法相似,但在内存管理、数据组织和应用场景上存在根本性差异。理解这些差异对于编写高效、内存敏感的系统级代码至关重要。本文将深入剖析两者的技术特性,并通过实际案例展示其最佳实践。
2025-08-26 11:09:11
331
原创 内联函数(Inline Functions)详解
内联函数是 C++ 中的重要特性,用于优化小型、频繁调用的函数:使用inline关键字声明或定义减少函数调用开销,提高性能适合小型函数和访问函数可能导致代码膨胀,需谨慎使用编译器最终决定是否内联比宏更安全,提供类型检查和作用域正确使用内联函数可以提高程序性能,但过度使用可能导致代码膨胀,反而降低性能。通常建议只对小型、频繁调用的函数使用内联。
2025-08-26 10:23:15
781
原创 STM32串口通信指南
测试条件:发送1KB数据包,间隔100ms,持续60秒。(Modbus为例)2️⃣ 复杂协议增加。3️⃣ 量产前进行。
2025-08-06 16:04:21
308
原创 交叉编译器介绍
交叉编译器(Cross Compiler)是一种在(Host Machine,如x86 PC)上运行,但生成(Target Machine,如ARM嵌入式设备)可执行代码的编译工具链。它解决了不同硬件架构或操作系统间的代码转换问题,是嵌入式开发、操作系统移植和跨平台软件开发的核心工具。
2025-08-06 15:38:07
1089
原创 页表实现机制,分页的缺点,三层页表的原理,页表的意义
页表(Page Table)是现代操作系统内存管理的核心机制,通过多级分页实现虚拟地址到物理地址的转换。
2025-08-05 20:31:40
1340
原创 Uboot 启动的流程/Linux启动流程
Uboot与Linux的启动流程是嵌入式系统从硬件上电到操作系统就绪的核心过程,二者紧密协作,共同完成硬件初始化、内核加载及系统启动。
2025-08-05 20:25:11
1636
原创 FreeRTOS源码如何实现任务调度
FreeRTOS 的任务调度通过 TCB 管理任务状态、双中断协作切换上下文(SysTick 触发 + PendSV 执行)、以及 SVC 启动首个任务实现。其抢占式调度保障实时性,时间片轮转确保公平性,而低优先级中断设计避免阻塞关键操作。开发者可通过调整宏定义(如)和任务优先级优化系统性能。
2025-08-05 11:37:22
863
原创 U-Boot(Universal Bootloader)简介
是一种开源的、高度可定制的,专为嵌入式系统和特定硬件平台设计。它负责在设备上电后初始化硬件、加载操作系统内核,并将控制权移交给操作系统,是嵌入式设备启动过程中不可或缺的核心组件。
2025-04-19 17:42:22
1044
原创 Sigma-Delta ADC(ΣΔ-ADC)中的量化器简介
Sigma-Delta ADC(ΣΔ-ADC)是一种高精度的模数转换器,其中的是其核心组件之一。量化器负责将模拟信号转换为数字信号,并通过独特的噪声整形技术实现高分辨率。
2025-04-18 21:04:44
1679
原创 调制器的噪声传递函数(NTF)的零极点配置对其性能的影响
NTF的零点主导噪声整形性能,极点决定稳定性和动态响应。两者的协同设计是Delta-Sigma调制器实现高精度、高稳定性的关键,需结合具体应用需求(带宽、精度、功耗)进行优化。💡小贴士:设计时可以通过巧妙配置零极点的位置,平衡噪声抑制和系统稳定性,从而实现性能最优!⚖️。
2025-04-18 19:40:55
824
原创 #include <bits/stdc++.h> 头文件解析 [特殊字符][特殊字符]
是 GCC 编译器特有的头文件,它可以一次性包含所有标准库头文件,在竞赛编程时非常方便。但它对程序性能的影响,需要从和两个角度来理解。
2025-04-17 16:15:56
428
原创 STL迭代器:C++泛型编程的核心工具 [特殊字符]
在C++中,STL(标准模板库)的迭代器是泛型编程的核心,它不仅解决了指针的局限性,还为算法与容器之间提供了抽象的访问接口。接下来,我们将探讨迭代器的核心作用、与指针的关键区别以及其设计哲学。
2025-04-16 14:53:33
501
原创 可编程逻辑单元(PLD)与数字电路基础:组合逻辑 vs 时序逻辑 [特殊字符]
PLD 是可以通过编程实现定制数字逻辑功能的集成电路。用户可以根据需求配置硬件逻辑,避免了定制专用芯片的高昂成本,适合快速原型设计或灵活修改的场景。
2025-04-16 14:36:33
512
原创 邻接矩阵与邻接链表:选择哪种图表示方式更合适? [特殊字符]
邻接矩阵和邻接链表是两种常见的图结构表示方法。它们的适用性因图的特点而异,选择合适的数据结构能大大提升程序的效率。下面我们将深入探讨它们的特点与适用场景,帮助你做出最佳选择!
2025-04-15 22:30:18
728
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅