- 博客(57)
- 收藏
- 关注
原创 U-Boot(Universal Bootloader)简介
是一种开源的、高度可定制的,专为嵌入式系统和特定硬件平台设计。它负责在设备上电后初始化硬件、加载操作系统内核,并将控制权移交给操作系统,是嵌入式设备启动过程中不可或缺的核心组件。
2025-04-19 17:42:22
832
原创 Sigma-Delta ADC(ΣΔ-ADC)中的量化器简介
Sigma-Delta ADC(ΣΔ-ADC)是一种高精度的模数转换器,其中的是其核心组件之一。量化器负责将模拟信号转换为数字信号,并通过独特的噪声整形技术实现高分辨率。
2025-04-18 21:04:44
1264
原创 调制器的噪声传递函数(NTF)的零极点配置对其性能的影响
NTF的零点主导噪声整形性能,极点决定稳定性和动态响应。两者的协同设计是Delta-Sigma调制器实现高精度、高稳定性的关键,需结合具体应用需求(带宽、精度、功耗)进行优化。💡小贴士:设计时可以通过巧妙配置零极点的位置,平衡噪声抑制和系统稳定性,从而实现性能最优!⚖️。
2025-04-18 19:40:55
481
原创 #include <bits/stdc++.h> 头文件解析 [特殊字符][特殊字符]
是 GCC 编译器特有的头文件,它可以一次性包含所有标准库头文件,在竞赛编程时非常方便。但它对程序性能的影响,需要从和两个角度来理解。
2025-04-17 16:15:56
266
原创 STL迭代器:C++泛型编程的核心工具 [特殊字符]
在C++中,STL(标准模板库)的迭代器是泛型编程的核心,它不仅解决了指针的局限性,还为算法与容器之间提供了抽象的访问接口。接下来,我们将探讨迭代器的核心作用、与指针的关键区别以及其设计哲学。
2025-04-16 14:53:33
430
原创 可编程逻辑单元(PLD)与数字电路基础:组合逻辑 vs 时序逻辑 [特殊字符]
PLD 是可以通过编程实现定制数字逻辑功能的集成电路。用户可以根据需求配置硬件逻辑,避免了定制专用芯片的高昂成本,适合快速原型设计或灵活修改的场景。
2025-04-16 14:36:33
362
原创 邻接矩阵与邻接链表:选择哪种图表示方式更合适? [特殊字符]
邻接矩阵和邻接链表是两种常见的图结构表示方法。它们的适用性因图的特点而异,选择合适的数据结构能大大提升程序的效率。下面我们将深入探讨它们的特点与适用场景,帮助你做出最佳选择!
2025-04-15 22:30:18
563
原创 指针 vs 引用:C++ 中的核心区别
指针和引用都是 C++ 中用于间接访问数据的机制,但它们在和上有显著区别。nullptr->int**:都能通过间接方式操作目标对象。:传递大型对象时,二者均可避免值拷贝的开销。:通过指针或引用均可修改其指向的对象的值。:可以随时指向其他对象。:初始化后无法更改绑定的对象。:需显式传递地址,可能引入空指针风险。:隐式传递地址,无空值风险。:可用于动态内存管理(如newdelete:不直接参与内存管理,仅作为别名使用。:直接对应内存地址,操作透明。
2025-04-15 00:46:13
1973
原创 *p++、*(p++)、(*p)++、*++p 和 ++*p 的详细区别
表达式行为副作用*p++解引用原指针值,然后指针自增p的值增加*(p++)等价于*p++p的值增加(*p)++解引用指针,对指向的值自增p指向的值增加*++p指针自增,然后解引用新指针值p的值增加++*p解引用指针,对指向的值前置自增p指向的值增加。
2025-04-14 15:27:44
395
原创 CMOS传输门(互补开关)详解 | 原理 + 特性 + 应用
CMOS 传输门由一对 **NMOS 和 PMOS 晶体管**并联组成,利用二者在不同输入电平下的导通特性互补,从而实现稳定传输。> 💡 CMOS传输门可在导通时传输完整的高低电平信号,克服了 NMOS/PMOS 单独传输信号的缺陷。相比只用 NMOS 或 PMOS,CMOS传输门可实现 **0 到 VDD** 的完整电平传输,不失真。NMOS 在高电平信号下导通性变差,但 PMOS 在高电平时导通性更强,互补抵消,保持较低的整体电阻。- **时钟馈通**:控制信号通过寄生电容影响输出电压。
2025-04-12 13:49:32
924
原创 [特殊字符] 各领域 Dummy 开关实现方式大集合
用虚拟化手段替代物理依赖”💡🔌 硬件:跳线帽、GPIO💻 软件:布尔变量、配置文件🏭 工控:PLC仿真、Modbus🎮 游戏:脚本逻辑、触发器🌐 网络:虚拟接口、模拟拓扑🧠通过 Dummy 开关助力原型测试、风险规避、功能隔离,是工程开发中不可或缺的利器!
2025-04-11 22:28:22
825
原创 POSIX线程(pthread)库:线程的终止与管理
在POSIX线程(pthread)库中,线程的终止和管理涉及多个关键函数。以下是关于线程终止的pthread。
2025-04-10 20:22:31
477
原创 在 Linux 或 Unix 系统中使用 pthread_create 创建新线程的步骤
主线程退出时,所有子线程会被强制终止。若需等待子线程结束,需使用。是传递给线程的参数(可以是任意类型的数据指针)。在 Linux 或 Unix 系统中,使用。函数可以创建新线程。通过以上步骤,即可成功创建并运行一个新线程。多线程访问共享数据时需使用互斥锁(可让线程在结束后自动释放资源。:线程结束时返回一个。
2025-04-10 00:18:08
323
原创 Sigma-Delta ADC调制器的拓扑结构分类
通过级联积分器或前馈/反馈优化,增强高频噪声抑制,但稳定性挑战较大,需进行零点优化(如NTF零点配置)或采用前馈结构(如CIFF)来维持稳定。:经典结构(如Bosch二阶调制器),噪声整形效果显著,稳定性较好,广泛应用于音频等领域。:结构简单,但噪声整形能力较弱,可能存在稳定性问题(如极限环振荡),适用于低精度场景。:在环路中引入谐振器(如复数积分器),使噪声传递函数(NTF)在特定频率处形成陷波。:降低运放增益需求,改善稳定性,适用于高阶设计(如CIFF拓扑)。:每级独立,稳定性较高;
2025-04-10 00:17:36
1141
原创 POSIX 消息队列:mq_close vs mq_unlink
以(如 Linux 的实现)为例,释放消息队列的引用(mq_close)和清除消息队列(mq_unlink)是mq_close。
2025-04-09 10:43:49
1039
原创 POSIX 消息队列 vs System V 消息队列:核心技术对比与实践指南
维度POSIX 消息队列System V 消息队列标准POSIXAPI 设计现代、直观(类似文件操作)传统、依赖整数标识符超时支持是(否(需手动实现)优先级原生支持通过mtype模拟资源管理显式mq_unlink删除显式删除适用场景高实时性、复杂需求简单通信、老旧系统维护最终建议新项目优先选择 POSIX 消息队列,其设计更符合现代开发需求。遗留系统或简单场景可沿用 System V 消息队列,但需注意资源泄漏风险。
2025-04-08 13:02:20
855
原创 消息队列(Message Queue)简介
消息队列是一种进程间通信(IPC)机制,允许不同进程通过发送和接收消息进行。:消息队列解耦了生产者和消费者,简化了系统设计。:支持将消息存储在队列中,保证数据不会丢失。:适用于分布式系统或需要流量控制的场景。在 Linux 系统中,常用的消息队列实现包括和。这里将以为例,介绍其 C 语言 API 的使用方法。
2025-04-08 12:54:25
346
原创 Proteus vs Multisim:电路设计与仿真软件对比
🔄 支持模拟电路与数字电路的混合仿真,工具包括低通滤波、瞬态分析等。,尤其在复杂信号处理如放大器设计、滤波器优化和电源管理方面表现优异。🌐 物联网设备原型验证(支持Wi-Fi、蓝牙模块仿真)。,部分高级功能(如自定义SPICE模型)需要手动配置。(如噪声分析、傅里叶变换)支持更精准的信号处理。⚡ 工业级模拟电路设计(如电源管理、射频电路)。(如按钮、电机控制等),仿真结果接近实际硬件。(如8051、ARM、PIC等),并支持。🧑🏫 教育实验(如模电、数电课程设计)。,但功能有限(如不支持STM32
2025-04-07 17:13:01
2958
原创 [特殊字符] 锁相放大器(Lock-in Amplifier)简介
锁相放大器通过将被测信号与参考信号进行相乘,提取信号的幅度和相位信息。通过正交参考信号(例如 sin(ωt)\sin(\omega t) 和 cos(ωt)\cos(\omega t)),能够同时获取信号的实部(X)和虚部(Y),从而计算信号的幅度和相位。锁相放大器具有极窄的噪声带宽(ENBW),能够仅通过锁定频率的信号,因此 Q 值可以高达 10610^6 以上。,通过锁定被测信号的频率和相位,大幅抑制噪声,提高信噪比(SNR)。:调节参考信号的相位,使其与被测信号同步。:用来放大微弱的输入信号。
2025-04-07 16:52:57
531
原创 嵌入式AI的本地化部署的好处
金融、医疗等涉及隐私的行业,本地化处理可避免数据上传云端,符合GDPR等法规要求,降低泄露风险。未来随着端侧大模型(如蒸馏版GPT)和异构计算芯片的普及,嵌入式AI本地化处理将进一步突破算力限制,成为智慧城市、机器人等领域的核心技术。本地处理无需网络传输,如自动驾驶在隧道中实时识别障碍物,延迟降低至毫秒级,避免云端往返导致的决策滞后。结合TEE(可信执行环境)等技术,嵌入式设备可实现硬件级数据加密,增强端侧处理的安全性。减少对云服务的依赖,降低因云端故障引发的连锁风险,如智能电网本地调控电力负载。
2025-04-05 23:40:43
459
原创 嵌入式AI简介
嵌入式AI是一种将人工智能算法部署在终端设备中运行的技术,使智能硬件能够在本地实时完成感知、交互和决策功能,无需依赖云端计算。1. 本地化处理:数据在设备端直接处理,无需联网,减少延迟并提升实时性(如自动驾驶的隧道环境识别)。1. 算力限制:传统嵌入式设备(如单片机)难以运行复杂神经网络,需优化模型或专用硬件(如NPU)。2. 软件优化:使用嵌入式AI框架(如Tengine、FastCV)简化部署,支持跨平台异构计算。1. 自动驾驶:实时处理传感器数据(如激光雷达、摄像头),应对复杂路况和网络中断场景。
2025-04-05 23:38:50
397
原创 FreeRTOS:嵌入式实时操作系统的轻量化解决方案
包含队列(Queue)、信号量(Semaphore)、互斥锁(Mutex)、任务通知(Task Notification)等组件,支持任务间高效通信。- FreeRTOS-Plus:官方增强包,提供TCP/IP协议栈(FreeRTOS+TCP)、文件系统(FreeRTOS+FAT)等企业级功能。- 支持抢占式调度(高优先级任务可立即抢占CPU)和协作式调度(任务主动释放资源),开发者可通过配置选择模式。- 硬件抽象层(HAL):提供移植接口(如`port.c`),适配不同MCU的时钟、中断和内存管理。
2025-04-04 23:44:35
555
原创 MySQL简介
工具支持:提供命令行工具(如 `mysqladmin`)、图形化界面(如 MySQL Workbench)及第三方管理工具(如 phpMyAdmin)]。- Web 开发:作为 LAMP(Linux + Apache + MySQL + PHP)架构的核心组件,支撑动态网站数据存储。- 高性能与稳定性:优化的 SQL 查询算法和存储引擎(如 InnoDB、MyISAM),支持高并发访问和事务处理。- 标准化查询语言:使用 SQL(结构化查询语言),支持数据定义、操作、控制全流程 ]。
2025-04-04 23:34:19
399
原创 strlen 与 sizeof的区别
strlen✂️:标准库函数(定义在<string.h>:计算字符串的(直到\0,不包含它本身)。📦,不是函数。:获取(包括\0、padding 等)。
2025-04-03 16:08:48
373
原创 进程 vs 线程:操作系统中的并发核心
理解进程与线程的差异,是掌握高性能并发编程的基础!,一个进程可包含多个线程(如浏览器中的多个标签页)。每个线程有独立的栈与寄存器,但共享堆和全局变量。:需使用 IPC(如管道、消息队列、共享内存)。实时响应、界面交互(如 UI、音视频处理)例子:浏览器与音乐播放器是两个独立进程。:需使用锁、信号量等机制防止竞态与死锁。:线程间通信快速,但需小心资源同步。:是工厂里的“工人”,协作完成任务。:一个进程崩溃不会影响其他进程。:需保存和恢复整个进程的上下文。:由内核直接管理,独享资源。(代码、数据、堆、栈等)。
2025-04-03 15:52:51
361
原创 进程间通信利器:共享内存
共享内存()是进程间通信()中最快速、高效的机制之一!它允许多个进程直接访问同一块物理内存区域,,尤其适用于高性能场景。
2025-04-02 16:54:29
420
原创 有名管道(FIFO)介绍
是一种特殊的文件类型,用于实现进程间通信(IPC)。与匿名管道(Pipe)不同,FIFO 具有名称并且存在于文件系统中。它允许通过读写同一个 FIFO 文件进行通信。下面是关于 FIFO 的详细介绍,适合技术文章的发布。
2025-04-02 15:35:35
926
原创 ⏳ waitpid() 函数解析
通过waitpid(),开发者可以精确地控制子进程的等待行为,适用于需要管理多个子进程或者非阻塞式进程监控的场景。掌握它就像拥有了监控多任务的神奇能力 🧙♂️。
2025-04-01 17:21:52
335
原创 手把手理解 fork + execve:程序世界的分身与变身术
想象你正在玩一个角色扮演游戏。当你控制的主角需要施展某个特殊技能时,游戏会突然复制出一个分身(fork),然后这个分身瞬间变成另一个完全不同的角色(execve)去执行任务——这就是 Linux 系统中创建新程序的底层逻辑。让我们从开发者的视角,拆解这套的组合技!
2025-04-01 14:11:02
296
原创 【深入理解】Linux 中的 fork():一次调用,两次返回的秘密 ✨
作用:复制当前进程(父进程),创建一个新的子进程。返回值父进程:返回子进程的 PID(>0)子进程:返回 0失败:返回 -1(如资源不足、进程超限)特性说明哲学理念一次调用,两次返回性能机制写时复制(COW),高效避免冗余内存复制使用建议配合exec(),调用wait(),小心线程场景替代方案vfork()clone()理解fork()的原理和使用技巧,是掌握 Linux 系统编程的必经之路。也可以留言你在使用fork()中遇到的问题或思考!
2025-03-31 22:36:48
2314
原创 Linux 系统调用实现机制详解
| |创建进程 加载程序 等待/回收系统调用作用技术亮点fork()创建子进程写时复制、进程调度execve()执行新程序ELF 加载、栈重建waitpid()同步并清理子进程资源信号机制、阻塞唤醒想要深入学习 Linux 内核源码,可以从fs/exec.c等核心文件入手。
2025-03-31 18:37:28
1179
原创 Linux 多进程详解
每个进程拥有独立的地址空间和系统资源,通过进程间通信(IPC)进行协作。掌握 Linux 多进程技术是系统级开发的必备技能,合理使用可显著提升程序性能和可靠性。是程序的执行实例,包含代码、数据、内存空间、文件描述符、环境变量等资源。:将不稳定模块(如第三方插件)运行在独立进程,避免主程序崩溃。:Linux 优化机制,父子进程共享内存,直到修改时才复制。:一个或多个进程组的集合,通常由 Shell 创建。创建的进程形成父子关系,父进程监控子进程状态。:一组相关进程的集合,共享同一 PGID。
2025-03-29 15:30:00
784
原创 虚假唤醒是什么
为了提高性能,某些系统可能选择“唤醒多个线程”来竞争资源,即使条件只满足一次。未被选中的线程需重新进入等待,这本质上也是一种虚假唤醒。通过理解并正确处理虚假唤醒,可以编写出健壮的多线程程序,避免因非预期唤醒导致的逻辑错误。这种现象可能导致线程在条件未满足时错误地继续执行,从而引发逻辑错误或数据不一致。条件变量的底层实现可能允许某些系统事件(如信号中断、内核调度)意外唤醒等待的线程。是线程同步中的一个现象,指线程在等待条件变量时,唤醒所有消费者,但缓冲区中只有一个数据项。前,生产者已发送信号,信号可能丢失。
2025-03-29 10:30:00
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人