logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

嵌入式C++教程——字面量运算符与自定义单位

嵌入式C++字面量运算符与单位系统摘要 本文介绍了C++11字面量运算符在嵌入式开发中的应用,重点展示了如何通过自定义后缀实现类型安全的单位系统。主要内容包括: 核心概念:字面量运算符允许为自定义类型定义后缀(如123_ms),实现编译期计算且零运行时开销。 嵌入式优势: 防止单位混淆(毫秒/微秒) 代码自文档化 类型安全检查 保持可读性(如72_MHz) 实现示例: 基本时间单位定义(毫秒、微秒

文章图片
#c++#开发语言#嵌入式
嵌入式现代C++开发——无锁数据结构设计

假设有一个栈,有两个节点:A → B线程1读取head = A,准备pop线程2pop掉A,现在head = B线程2push新节点C,然后push回A,现在栈是A → C → BCAS成功!因为head确实是A但问题来了:线程1以为head还是它当初读到的A,但实际上A已经被pop又push回来了,中间的整个变化它完全没看到。更严重的是,如果A被释放后内存被重新分配给别的对象,CAS可能错误地匹

文章图片
#c++#数据结构#开发语言 +2
嵌入式C++教程实战之Linux下的单片机编程(6):从点亮第一盏LED开始 —— 我们为什么要用现代C++写STM32

摘要 本文是嵌入式C++实战教程的第六篇,从点亮LED灯这一经典入门实验出发,探讨了为什么要在嵌入式开发中采用现代C++(C++23)替代传统C语言开发模式。文章首先回顾了传统嵌入式开发的痛点:臃肿的IDE工具链、C语言宏定义带来的类型安全问题、代码复用性差等。随后详细分析了现代C++23的特性优势,包括零开销抽象、编译时类型安全、模板元编程等,这些特性能够在不增加运行时开销的前提下大幅提升代码的

文章图片
#单片机#c++#linux +3
嵌入式C++工程实践——第13篇:第一次重构 —— enum class取代宏,类型安全的开始

摘要 本文介绍了使用C++11的enum class替代传统C宏进行嵌入式开发重构的方法。通过将GPIO端口地址、模式配置等硬件参数定义为强类型枚举,实现了编译时的类型安全检查。文章详细讲解了GpioPort、Mode、PullPush等关键枚举的设计原理,包括底层类型选择(uintptr_t)、作用域隔离等考量。同时展示了如何使用static_cast实现枚举到HAL库的无开销转换,以及应用层概

文章图片
#c++#重构#安全 +2
嵌入式Linux模块开发(5)——内核调试技术

本文介绍了嵌入式Linux内核调试的核心技术,重点讲解了dmesg工具的使用技巧、内核日志级别控制、动态调试方法以及常见问题排查流程。文章强调dmesg是内核调试最重要的工具,详细演示了如何通过管道、grep等命令高效查看日志;深入解析了日志级别机制及其对调试输出的影响;详细介绍了动态调试的强大功能,包括运行时精确控制调试打印;最后总结了模块加载失败、设备不工作、系统崩溃等常见问题的系统化排查方法

文章图片
#linux#嵌入式硬件#驱动开发 +1
被 AI 坑过之后,我决定自己把这份嵌入式现代C++教程写完!

《AwesomeModernCPP教程v0.1.0发布:从基础到嵌入式实战的现代C++指南》 这个开源教程项目为C++学习者提供了从基础语法到现代特性的完整学习路径。项目包含八大模块:C++基础入门、现代特性详解、编译链接机制,以及STM32嵌入式开发实战等内容。特别针对嵌入式开发痛点,提供了交叉编译、GPIO控制等实用案例。 教程采用渐进式教学,从C语言基础到C++98/11/14/17核心特性

文章图片
#c++#开发语言#单片机
嵌入式Linux驱动开发——设备树中的 GPIO 配置实战

本文介绍了嵌入式Linux驱动开发中设备树的GPIO配置方法。主要内容包括: GPIO控制器节点定义的关键属性 GPIO属性的两种写法:单数形式(xxx-gpio)和复数形式(xxx-gpios) GPIO引用的标准格式及标志位说明 驱动代码解析GPIO的两种API方法 检查GPIO引脚冲突的实用方法 完整的设备树配置示例 其他外设(SD卡、I2C)的GPIO使用示例 文章特别强调了复数形式(xx

文章图片
#linux#驱动开发#运维
嵌入式Linux:镜像、分区与文件系统:.img 到底是什么

本文解释了.img文件的本质与结构,它不是简单的文件夹压缩包,而是整块存储设备的完整镜像。文章通过分层结构阐述其组成:整盘设备包含分区表(如MBR),分区表下划分多个分区(如boot和rootfs分区),每个分区内建有文件系统(如ext4),文件系统里存放具体文件。重点区分了U-Boot(直接写入磁盘raw区域)与内核文件(存放在boot分区)的不同层级,并说明为何完整镜像必须写入整盘设备而非分区

文章图片
#linux#开发语言#嵌入式
现代嵌入式C++教程——管道操作与Ranges实战

本文介绍了C++20 Ranges库中管道操作符|在嵌入式开发中的实战应用。通过Unix风格的管道操作,开发者可以优雅地组合数据处理流程,实现零开销的编译期优化。文章展示了三个典型场景:传感器数据处理(过滤-转换-收集)、ADC数据多级处理(包括校准和滤波)以及通信协议解析(字节流分组转换)。这些示例演示了如何通过管道操作构建清晰、高效的数据处理链,每个处理阶段职责单一且易于扩展。Ranges管道

文章图片
#c++#开发语言#算法 +1
嵌入式C++开发——原子操作(std::atomic)

/ 基本整型// 带初始值// 指针类型// C++20起支持浮点。

文章图片
#c++#开发语言#嵌入式
    共 268 条
  • 1
  • 2
  • 3
  • 27
  • 请选择