关闭

嵌入式分享

所属频道 嵌入式
  • 嵌入式AI多任务为何抢占?隔离怎么做?

    一个模型独占开发板时延迟很好,和通信、控制、存储一起跑却超时,说明冲突发生在系统资源而不是网络结构本身。嵌入式AI多任务部署要先回答谁能等、谁不能等。

  • Intel Quartus下PCIe Gen3 IP集成与调试实战

    在Altera/Intel FPGA(Arria 10、Stratix 10/V系列)上实现PCIe Gen3 x4/x8接口,通常依赖PCI Express Hard IP。本文按实战顺序,讲解IP配置、顶层例化、BIOS识别验证及常见链路训练失败的排查方法。

  • FPGA时序收敛失败的五大排查思路与解决方案

    在FPGA开发中,“时序不收敛”(Timing Closure Failed)是让工程师最头疼的问题之一。当WNS(最差负余量)为负时,设计无法在目标频率下稳定运行。本文总结五大系统性排查思路,帮助你在Vivado/Quartus中快速定位并修复时序违例。

  • Zynq PS-PL协同设计入门:从硬件到软件的打通

    Xilinx Zynq-7000(及Zynq UltraScale+ MPSoC)最大的魅力在于PS(Processing System,双核ARM Cortex‑A9)与PL(Programmable Logic,FPGA)的紧密耦合。新手常卡在“Vivado 里加完IP,Linux/裸机程序怎么访问?”——本文按真实工程顺序,演示从 PL 逻辑封装 → PS 硬件配置 → 应用软件读写寄存器的完整打通流程。

    嵌入式
    2026-06-21
  • FPGA中BRAM与URAM资源分配策略与性能优化

    在Xilinx UltraScale+系列FPGA中,片上存储器分为BRAM(Block RAM)和URAM(Ultra RAM)两类。BRAM容量18/36Kb,URAM容量288Kb,但URAM延迟略高且占用更多布线资源。合理分配两者是平衡容量、时序与功耗的关键。本文总结BRAM与URAM的选型原则与优化策略。

    嵌入式
    2026-06-21
  • FPGA实现以太网MAC层的三种方案对比与选型

    在FPGA网络中,以太网MAC(Media Access Control)负责CSMA/CD退避、帧校验(FCS)、与PHY通过MII/RGMII/SGMII接口交互。根据项目对灵活性、开发周期、资源的要求,通常有三种实现路径。本文基于Xilinx/Intel平台做横向对比与选型建议。

    嵌入式
    2026-06-21
  • Xilinx UltraScale+高速SerDes接口设计要点

    在Kintex/ Virtex UltraScale+(US+) 系列FPGA中,集成GTY/GTH/GXP Transceiver可提供 16Gbps~32Gbps(GTY) 的高速串行链路,广泛用于PCIe Gen3/4、10/25/100G Ethernet、JESD204B/C等协议。SerDes设计成败常在参考时钟、复位序列、均衡与通道对齐四个环节。本文提炼US+ SerDes实战要点。

  • Vivado中IP核时钟域交叉(CDC)处理最佳实践

    在Xilinx FPGA设计中引入XDMA、Video DMA、AXI Interconnect等IP核后,IP输出与用户逻辑常处于不同频率或相位——这就是典型的时钟域交叉(Clock Domain Crossing, CDC)。CDC处理不当会引发建立/保持违例、 metastability(亚稳态)甚至IP核内部状态机跑飞。本文总结Vivado环境下IP核CDC的最佳实战做法。

  • 嵌入式C语言中volatile关键字的五个经典误用场景

    在嵌入式C开发中,volatile是告诉编译器“这个变量的值随时可能被意外改变”的关键字。然而,很多工程师要么到处加volatile,要么该加的地方漏掉,导致优化后的代码行为异常。本文总结五个最经典的误用场景,帮你彻底搞懂volatile的正确用法。

  • Zephyr RTOS低功耗蓝牙开发全流程记录

    在IoT可穿戴与传感器节点中,低功耗蓝牙(Bluetooth Low Energy, BLE) 是首选无线协议。Zephyr RTOS原生集成BlueZ-hosted BT stack(Host + Controller可选),支持Peripheral/Central/Observer等角色,且对Nordic nRF52、ST WB系列有直接驱动支持。本文将按真实Bring-up顺序,记录从环境搭建到GATT服务的完整开发流程。

  • STM32 HAL库与LL库性能差异实测及选型建议

    在STM32软件开发中,ST官方提供两套固件库:HAL(Hardware Abstraction Layer)与LL(Low-Layer)。很多工程师困惑:两者除了API风格不同,运行效率和资源消耗究竟差多少?本文基于STM32F407,对GPIO翻转、UART发送、定时器PWM三种场景做实测对比,并给出工程选型建议。

  • GDB远程调试裸机程序的三种方案对比与选型

    在嵌入式裸机开发(无OS、无C库)中,GDB + 远程调试协议(RSP) 是定位启动代码崩溃、MMU配置错误或外设初始化异常的核心手段。根据调试适配器与目标板接口的不同,通常有OpenOCD + GDB、J-Link GDB Server、QEMU + GDB三种主流方案。本文从实战角度对比其优劣与选型建议。

  • 嵌入式看门狗的正确使用姿势与三种触发场景

    在嵌入式系统中,看门狗(Watchdog Timer, WDT) 是防止程序跑飞的最后一道防线。但“滥用”或“乱喂狗”反而会让看门狗失效——该复位时不复位,不该复位时却误复位。本文将梳理看门狗的正确配置方法,并剖析三种典型的触发场景,帮助你用好这把“双刃剑”。

  • RT-Thread多线程通信机制实战:队列 vs 信号量 vs 事件

    在RT-Thread(RTT)嵌入式实时系统中,多线程间的同步与通信是应用稳定性的基石。信号量(Semaphore)、队列(Message Queue)与事件集(Event)分别对应“通知”“传数”“多条件等待”三种典型场景。本文将通过STM32上的实战代码,帮你快速掌握三者的选用原则与避坑要点。

  • ARM Cortex-M4 FPU配置与浮点运算性能调优

    在STM32F4(Cortex‑M4F)、LPC43xx等MCU中,硬件FPU(Floating Point Unit,FPv4‑SP)可将单精度浮点运算提速5~20倍,但若启动代码、编译器选项或库调用不当,程序仍会悄悄退化为软件浮点仿真(Soft-float),导致性能骤降。本文结合STM32实例,详解FPU使能配置与性能调优要点。