- 博客(32)
- 收藏
- 关注
原创 嵌入式AI的本地化部署的好处
金融、医疗等涉及隐私的行业,本地化处理可避免数据上传云端,符合GDPR等法规要求,降低泄露风险。未来随着端侧大模型(如蒸馏版GPT)和异构计算芯片的普及,嵌入式AI本地化处理将进一步突破算力限制,成为智慧城市、机器人等领域的核心技术。本地处理无需网络传输,如自动驾驶在隧道中实时识别障碍物,延迟降低至毫秒级,避免云端往返导致的决策滞后。结合TEE(可信执行环境)等技术,嵌入式设备可实现硬件级数据加密,增强端侧处理的安全性。减少对云服务的依赖,降低因云端故障引发的连锁风险,如智能电网本地调控电力负载。
2025-04-05 23:40:43
241
原创 嵌入式AI简介
嵌入式AI是一种将人工智能算法部署在终端设备中运行的技术,使智能硬件能够在本地实时完成感知、交互和决策功能,无需依赖云端计算。1. 本地化处理:数据在设备端直接处理,无需联网,减少延迟并提升实时性(如自动驾驶的隧道环境识别)。1. 算力限制:传统嵌入式设备(如单片机)难以运行复杂神经网络,需优化模型或专用硬件(如NPU)。2. 软件优化:使用嵌入式AI框架(如Tengine、FastCV)简化部署,支持跨平台异构计算。1. 自动驾驶:实时处理传感器数据(如激光雷达、摄像头),应对复杂路况和网络中断场景。
2025-04-05 23:38:50
202
原创 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
299
原创 MySQL简介
工具支持:提供命令行工具(如 `mysqladmin`)、图形化界面(如 MySQL Workbench)及第三方管理工具(如 phpMyAdmin)]。- Web 开发:作为 LAMP(Linux + Apache + MySQL + PHP)架构的核心组件,支撑动态网站数据存储。- 高性能与稳定性:优化的 SQL 查询算法和存储引擎(如 InnoDB、MyISAM),支持高并发访问和事务处理。- 标准化查询语言:使用 SQL(结构化查询语言),支持数据定义、操作、控制全流程 ]。
2025-04-04 23:34:19
293
原创 strlen 与 sizeof的区别
strlen✂️:标准库函数(定义在<string.h>:计算字符串的(直到\0,不包含它本身)。📦,不是函数。:获取(包括\0、padding 等)。
2025-04-03 16:08:48
325
原创 进程 vs 线程:操作系统中的并发核心
理解进程与线程的差异,是掌握高性能并发编程的基础!,一个进程可包含多个线程(如浏览器中的多个标签页)。每个线程有独立的栈与寄存器,但共享堆和全局变量。:需使用 IPC(如管道、消息队列、共享内存)。实时响应、界面交互(如 UI、音视频处理)例子:浏览器与音乐播放器是两个独立进程。:需使用锁、信号量等机制防止竞态与死锁。:线程间通信快速,但需小心资源同步。:是工厂里的“工人”,协作完成任务。:一个进程崩溃不会影响其他进程。:需保存和恢复整个进程的上下文。:由内核直接管理,独享资源。(代码、数据、堆、栈等)。
2025-04-03 15:52:51
346
原创 进程间通信利器:共享内存
共享内存()是进程间通信()中最快速、高效的机制之一!它允许多个进程直接访问同一块物理内存区域,,尤其适用于高性能场景。
2025-04-02 16:54:29
377
原创 有名管道(FIFO)介绍
是一种特殊的文件类型,用于实现进程间通信(IPC)。与匿名管道(Pipe)不同,FIFO 具有名称并且存在于文件系统中。它允许通过读写同一个 FIFO 文件进行通信。下面是关于 FIFO 的详细介绍,适合技术文章的发布。
2025-04-02 15:35:35
887
原创 ⏳ waitpid() 函数解析
通过waitpid(),开发者可以精确地控制子进程的等待行为,适用于需要管理多个子进程或者非阻塞式进程监控的场景。掌握它就像拥有了监控多任务的神奇能力 🧙♂️。
2025-04-01 17:21:52
292
原创 手把手理解 fork + execve:程序世界的分身与变身术
想象你正在玩一个角色扮演游戏。当你控制的主角需要施展某个特殊技能时,游戏会突然复制出一个分身(fork),然后这个分身瞬间变成另一个完全不同的角色(execve)去执行任务——这就是 Linux 系统中创建新程序的底层逻辑。让我们从开发者的视角,拆解这套的组合技!
2025-04-01 14:11:02
264
原创 【深入理解】Linux 中的 fork():一次调用,两次返回的秘密 ✨
作用:复制当前进程(父进程),创建一个新的子进程。返回值父进程:返回子进程的 PID(>0)子进程:返回 0失败:返回 -1(如资源不足、进程超限)特性说明哲学理念一次调用,两次返回性能机制写时复制(COW),高效避免冗余内存复制使用建议配合exec(),调用wait(),小心线程场景替代方案vfork()clone()理解fork()的原理和使用技巧,是掌握 Linux 系统编程的必经之路。也可以留言你在使用fork()中遇到的问题或思考!
2025-03-31 22:36:48
2227
原创 Linux 系统调用实现机制详解
| |创建进程 加载程序 等待/回收系统调用作用技术亮点fork()创建子进程写时复制、进程调度execve()执行新程序ELF 加载、栈重建waitpid()同步并清理子进程资源信号机制、阻塞唤醒想要深入学习 Linux 内核源码,可以从fs/exec.c等核心文件入手。
2025-03-31 18:37:28
1137
原创 Linux 多进程详解
每个进程拥有独立的地址空间和系统资源,通过进程间通信(IPC)进行协作。掌握 Linux 多进程技术是系统级开发的必备技能,合理使用可显著提升程序性能和可靠性。是程序的执行实例,包含代码、数据、内存空间、文件描述符、环境变量等资源。:将不稳定模块(如第三方插件)运行在独立进程,避免主程序崩溃。:Linux 优化机制,父子进程共享内存,直到修改时才复制。:一个或多个进程组的集合,通常由 Shell 创建。创建的进程形成父子关系,父进程监控子进程状态。:一组相关进程的集合,共享同一 PGID。
2025-03-29 15:30:00
737
原创 虚假唤醒是什么
为了提高性能,某些系统可能选择“唤醒多个线程”来竞争资源,即使条件只满足一次。未被选中的线程需重新进入等待,这本质上也是一种虚假唤醒。通过理解并正确处理虚假唤醒,可以编写出健壮的多线程程序,避免因非预期唤醒导致的逻辑错误。这种现象可能导致线程在条件未满足时错误地继续执行,从而引发逻辑错误或数据不一致。条件变量的底层实现可能允许某些系统事件(如信号中断、内核调度)意外唤醒等待的线程。是线程同步中的一个现象,指线程在等待条件变量时,唤醒所有消费者,但缓冲区中只有一个数据项。前,生产者已发送信号,信号可能丢失。
2025-03-29 10:30:00
402
原创 Unix/Linux 中 dup、dup2 和 dup3 系统调用解析
dupdup2和dup3是用于的系统调用。它们的主要作用是创建现有文件描述符的副本,使多个描述符指向同一个内核文件表项,从而共享相同的文件偏移量和状态。
2025-03-28 18:57:00
423
原创 Sigma-Delta ADC 信号带宽提升方法
示例 | 若 OSR=64,采样频率为 6.4 MHz,则信号带宽为 100 kHz;:Sigma-Delta ADC 的信号带宽受限于过采样率 (OSR),而 OSR = 采样频率 / 信号带宽。:在相同 OSR 下获得更高的信噪比(SNR),从而可以在保证分辨率的前提下增加带宽。:提高时钟频率(采样率),在保持 OSR 不变的前提下,信号带宽也会线性增加。:要控制噪声提升,因为 OSR 降低后,量化噪声对信号带宽的影响会变大。:OSR 越大,信号带宽越小(带宽 = 采样频率 / OSR)。
2025-03-27 14:36:19
301
原创 文件 I/O 系统调用的内部机制
我们以 Linux 系统为例,讲解文件 I/O 系统调用的内部机制,包括用户空间与内核空间的交互流程。int 0x80syscallsys_read()fdread()read()write()EAGAINaio_read()mmap()munmap()readsys_read()errno以。
2025-03-27 13:23:30
753
原创 Linux中fd文件描述符简介
文件描述符是操作系统管理 I/O 操作的一种抽象机制,它允许程序通过简单的整数值与操作系统进行文件及设备的交互。文件描述符背后由内核通过等数据结构管理,提供了文件的读取、写入、偏移量管理等操作。每个进程都有自己的文件描述符表,操作系统会根据这个表来管理和分配文件资源。
2025-03-26 21:41:01
663
原创 标准IO和系统调用IO的区别
标准I/O:提供了更高级、更易用的接口,自动处理缓冲,并且对大多数应用程序来说性能较好,但缺乏对低级细节的控制。系统调用I/O:提供了更底层的操作,允许程序员更精确地控制文件I/O,但需要更多的编程工作和手动管理文件描述符。
2025-03-25 14:27:31
1142
原创 Linux常见的指令操作
以下是一些常见的 Linux 指令操作:这个表格总结了大多数常见的 Linux 操作指令及其描述,接下来展示一些常见 Linux 指令操作的示例代码,便于我们更好地理解如何使用它们:列出目录内容 改变目录 创建目录 删除文件或目录 复制文件或目录 移动或重命名文件 2. 文件权限操作 更改文件权限 更改文件所有者 3. 进程管理 查看当前进程 杀死进程 查看系统资源
2025-03-24 21:08:26
508
原创 Makefile 的内部机制
通过上述的表格和例子,我们可以清楚地看到 Makefile 的内容层次和依赖关系。Makefile 通过规则定义如何从源文件生成目标文件,以及如何自动化这些任务,避免了手动编译和链接的繁琐过程。
2025-03-24 16:20:58
390
原创 makefile简述
Makefile 是一个强大的自动化工具,通过规则、变量、依赖关系和命令来自动化编译和构建过程。它适用于管理复杂项目,尤其是在需要频繁编译和链接的大型程序中。
2025-03-24 16:20:14
456
原创 GCC编译过程简介
GCC(GNU Compiler Collection)是一个非常流行的编译器集合,广泛用于C、C++、Fortran、Ada、Go等语言的编译。GCC的编译过程包括多个阶段,每个阶段都有特定的功能,确保源代码最终转换成可执行的二进制文件。
2025-03-24 14:39:05
895
原创 Linux中shell的作用
层次说明自动化操作Shell 脚本用于自动化执行重复性任务,如定期备份、批量处理等。系统管理系统管理员常用 Shell 脚本进行日常的系统维护和监控工作。复杂操作简化将多个命令封装为一个脚本,简化操作流程,提高工作效率。环境配置与部署自动化环境配置、应用部署,尤其在集群管理和大规模部署中非常有用。通过 Shell 脚本,用户可以高效地管理 Linux 系统,自动化许多常见任务,减少人工操作的错误与耗时。
2025-03-24 11:37:20
376
原创 shell是什么?
用最通俗的话来说: Shell 就像是你和电脑“说话”用的小助手。举个例子🌰: 想象你买了一台智能机器人,但它的“大脑”(操作系统内核)只会听懂一种特别复杂的语言(比如二进制代码)。直接和它说话太难了,于是你请了一个翻译员(Shell)帮忙:• 你说人话(比如“打开文档”或者“删掉这个文件”),• 翻译员(Shell)听懂后,转达给机器人内核,• 内核再真正动手干活。Shell 的两种常见“说话方式”:1. 图形界面(GUI Shell):◦ 比如电脑桌面上的图标、按钮、菜单。
2025-03-24 11:36:37
1149
原创 【无标题】Linux编程中的三个主要层次
用户态(User Space):分为应用程序(APP)层和标准 C 库(libc)层。应用程序通过C 库/运行时库来调用系统功能。内核态(Kernel Space):内核中包含了各种模块,如进程管理、内存管理、文件系统、设备驱动、网络协议栈、安全子系统等,它们共同为用户态程序提供底层支持。系统调用(System Call)是用户态与内核态之间的“桥梁”。用户态无权限直接访问硬件或操作关键资源,必须通过内核受控地进行。
2025-03-24 11:23:31
469
原创 Sigma-Delta与SAR ADC对比分析
Sigma-Delta ADC(Σ-Δ ADC)和SAR ADC(逐次逼近型ADC)是两种主流的模数转换器,其设计思路和适用场景差异显著。➠ 使用Sigma-Delta ADC(如24位AFE),因需要高精度采集微弱光信号(PPG),且工频干扰严重。从最高位(MSB)到最低位(LSB)依次比较输入电压与DAC输出的参考电压,通过多次比较确定每一位的值。:如温度传感器(RTD、热电偶)、电子秤、生物医疗设备(ECG)、音频采集(24位音频ADC)。之间平衡(如16位/1MSPS的ADC通常功耗>10mW)。
2025-03-19 16:59:30
608
原创 三级仪表放大器Proteus仿真
高共模抑制比(CMRR):三级仪表放大器具有非常高的共模抑制比,即能有效抑制输入信号中不需要的共模噪声,只有差分信号被放大。高精度和稳定性:由于每一级的增益都可以精确调节,三级仪表放大器通常具有很高的精度和稳定性,适用于要求严格的测量应用。总的来说,三级仪表放大器因其出色的共模抑制能力和高精度放大特性,在许多需要高精度和高稳定性的应用中都有重要的应用。它允许调整放大器的增益,从而确保输出信号符合系统的需求。: 输出级主要用于对信号进行最后的放大,将中间级输出的信号增强到所需的幅度,以供进一步处理或显示。
2025-03-17 23:58:54
425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人