嵌入式开发

天空'之城2 天前
c语言·嵌入式开发·阻塞队列·多线程开发
C 语言工业级通用组件手写 04:阻塞队列前言:普通队列:数据读写立刻返回,不阻塞、不等待。 阻塞队列:带线程同步能力的线程安全队列。具备两大核心阻塞特性:
俊基科技2 天前
嵌入式开发·硬件开发·ai降噪·回声消除·定向拾音·拾音降噪·双麦波束
对话越嘈杂,听得越清晰:A-29P 让每一台通话设备都装上 “AI 听觉大脑”车流轰鸣的小区门口、机械震耳的生产车间、风声呼啸的行车途中、人声鼎沸的银行大厅…… 只要是需要双向通话的设备,长久以来都逃不开两大声学魔咒:外放喇叭产生的刺耳回音、铺天盖地掩盖人声的环境噪音。传统音频方案只能二选一妥协,要么压低音量避免啸叫,要么忍受嘈杂杂音模糊人声,双向流畅通话沦为奢望。 A-29P 神经网络 AI 降噪回音消除模块,以高性能 DSP 芯片为核心,集成 AEC 回音消除、AI 智能降噪、波束定向拾音、远场 AGC 自动增益四大核心能力,为所有对讲通话设备植入一颗专业级 “AI 听觉大脑”
天空'之城3 天前
c语言·嵌入式开发·双向链表
C 语言工业级通用组件手写 03:双向链表前言:承接前面环形缓冲区、通用内存池的工业级组件体系,我们继续搭建 C 语言底层通用组件库。如果说环形缓冲区负责流式数据缓存、内存池负责内存碎片治理,那么双向链表就是整个嵌入式、后台服务、操作系统底层的对象管理基石。
天空'之城4 天前
git·vscode·版本控制·嵌入式开发·开发效率·worktree·多分支管理
VS Code Git 工作树:告别频繁切分支,实现多分支并行开发实战方案目录前言:一、什么是 Git Worktree?二、两种创建工作树方式:命令行 + VS Code 可视化
qydz119 天前
开发语言·嵌入式开发·杰理科技
杰理开发基础知识(3)Key 文件,简单理解,就是杰理为其蓝牙芯片专门设计的一个密码文件,用于对程序进行加密。可以把它想象成一把“软件锁”或“芯片的身份证”。它是杰理芯片特有的一种安全机制,已经延续了很久很久。
似是燕归来10 天前
c语言·stm32·适配器模式·嵌入式开发
嵌入式工程师进阶指南:适配器编程设计模式一以AT指令操作WIFI模块和NB-IoT或者4G模块为例。使用一个串口发送AT指令号到外部模块,同时接收模块返回数据进行联网、TCP连接、发送数据、接收数据,以上就是对这些物联网模块的使用方法。但是当本次使用WIFI模块而下次使用4G模块的时候,我们会遇到一个AT指令不兼容的问题,也就是WIFI的AT指令无法使用在4G模块上,即使同样使用WIFI模块不同厂家的AT指令同样不能兼容。
Tronlong创龙13 天前
机器人·开发板·嵌入式开发·硬件开发·工业控制·工业开发板
TL3588 工控单板 ROS2 开发实战:交叉编译、机器人通信与功能包部署全流程本文档主要演示基于单板机/工控机的ROS系统(版本:ROS2 Humble)使用说明,包括ROS系统镜像编译、镜像替换,以及ROS系统测试的方法。
Tronlong创龙13 天前
docker·开发板·嵌入式开发·硬件开发·工业控制
SBC-TL3588 单板机 / EPC-TL3588 工控机 Docker 开发手册(二)下载镜像前,需要先开启Docker相关服务,并确保存储驱动配置正确。(1)配置Docker存储驱动不同系统环境可能导致Docker默认存储驱动(overlayfs/overlay2)不一致,执行以下命令,显式指定Docker默认存储驱动为overlay2,以保证一致性。
创龙科技-黄工18 天前
嵌入式开发·硬件开发·工业控制·工业开发板
创龙 RK3588 单板 / 工控机 NPU 开发手册前言本文为 SBC-TL3588 单板机、EPC-TL3588 工控机配套 AI 开发指导文档,面向嵌入式 AI 开发人员,完整讲解 RK3588 内置 NPU 的全流程开发方案。依托瑞芯微 RKNN-Toolkit2、RKLLM-Toolkit 两套工具链,分别提供 YOLOv5 图像目标检测、DeepSeek-R1 1.5B 本地大模型两大实操案例。文档覆盖环境搭建、模型转换、交叉编译、板端部署推理全流程,附带可直接复用的源码、编译命令与运行调试日志,可快速完成边缘视觉识别、本地离线大语言模型落地,帮
2601_951643881 个月前
c语言·数据类型·关键字·嵌入式开发·格式化输出
C语言长文整理,关键字和数据类型作为嵌入式开发的基础,C语言是一切开发的基础。从语法上来说C语言并不复杂, 但编写优质可靠的嵌入式C程序并非易事,不仅需要熟知硬件特性和缺陷,还需要对编译原理和计算机技术知识有着一定的了解。在这么多年的嵌入式开发中,我也积累了一些这方面的经验和思考,这里总结下来,系统地阐述嵌入式C语言的重要知识点。
意法半导体STM321 个月前
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案摘要本文详述如何创建、配置并使用适配STM32CubeMX2(下文简称为MX2)开发的Visual Studio Code(下文简称为VS Code)配置方案,内容包含新建专属配置方案以优化开发流程、配置适配MX2工程的插件与参数,依托该配置高效完成编译与调试。参照本文教程,开发者可提升开发效率,在多个MX2工程间沿用统一的开发环境。
凡人叶枫1 个月前
java·数据库·c++·嵌入式开发
Effective C++ 条款39:明智而审慎地使用 private 继承本篇为《Effective C++:改善程序与设计的 55 个具体做法》读书笔记系列第 39 篇。在 C++ 中,public 继承表示 is-a 关系,这是面向对象设计的基石。但 C++ 还提供了另一种继承方式:private 继承。与 public 继承不同,private 继承不表示 is-a,而是表示 is-implemented-in-terms-of(根据某物实现出)。Scott Meyers 在条款 39 中提醒我们:private 继承通常比复合的级别低,应当尽可能使用复合,只有在特定场景
凡人叶枫1 个月前
java·数据库·c++·嵌入式开发·effective c++
Effective C++ 条款40:明智而审慎地使用多重继承本篇为《Effective C++:改善程序与设计的 55 个具体做法》读书笔记系列第 40 篇。多重继承(Multiple Inheritance, MI)是 C++ 中最具争议的特性之一。它提供了强大的表达能力,允许一个类从多个基类继承特性。然而,这种强大能力也带来了显著的复杂性:名称歧义、菱形继承问题、virtual 继承的性能开销等。Scott Meyers 在条款 40 中提醒我们:多重继承比单一继承复杂,可能导致新的歧义性,以及对 virtual 继承的需要,但确有正当用途。本文将深入探讨多重
俊基科技1 个月前
嵌入式开发·数模转换·da-03
工业实战:DA-03音频模组在智慧矿山广播与应急通信系统中的应用在智慧矿山的建设中,井下广播系统和对讲系统是保障安全生产的生命线。由于矿井环境特殊——高温、高湿、多粉尘且伴随强烈的电磁干扰,传统的模拟音频传输往往面临信号衰减严重、噪音大、布线困难等问题。
凡人叶枫1 个月前
linux·服务器·开发语言·c++·嵌入式开发
Effective C++ 条款33:避免遮掩继承而来的名字在 C++ 的继承体系中,你是否遇到过"明明基类有这个方法,为什么编译器说找不到"的困惑? 这很可能是名字遮掩(name hiding)在作祟。本条款将揭开这个隐秘陷阱的面纱。
凡人叶枫1 个月前
linux·开发语言·c++·php·嵌入式开发·effective c++
Effective C++ 条款31:将文件间的编译依存关系降至最低在大型 C++ 项目中,你是否经历过"修改一个头文件,引发全工程重新编译"的痛苦? 本条款将教你如何打破这种编译依赖的枷锁,让你的构建速度飞起来!
凡人叶枫1 个月前
java·linux·开发语言·c++·嵌入式开发
Effective C++ 条款32:确定你的 public 继承塑模出 is-a(是一种)关系public 继承是 C++ 面向对象编程中最核心的机制之一,但也是最常被误用的特性。 本条款将揭示 public 继承的深层含义,帮助你设计出正确的继承体系。
程序员爱德华1 个月前
嵌入式开发
嵌入式开发1.就业单位: (1)主控芯片原厂:MTK平台、Mstar、海思、全志 (2)设备企业:蓝牙模组、设备模组、内存、文件系统
凡人叶枫1 个月前
linux·开发语言·c++·嵌入式开发·effective c++
Effective C++ 条款30:透彻了解 inlining 的里里外外inline 函数背后的整体观念是,将"对此函数的每一个调用"都以函数本体替换之。这样做可能增加目标码的大小。在一台内存有限的机器上,过度热衷 inlining 会造成程序体积太大,即使拥有虚内存,inline 造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的击中率,以及伴随这些而来的效率损失。
凡人叶枫1 个月前
linux·服务器·开发语言·c++·嵌入式开发
Effective C++ 条款28:避免使用 handles 指向对象内部避免返回 handles(包括引用、指针、迭代器)指向对象内部。遵守这个条款可增加封装性,帮助 const 成员函数的行为像个 const,并将发生"虚吊号码牌"(dangling handles)的可能性降至最低。