- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 UML之活动图学习
UML活动图核心概念与应用指南 活动图是UML中用于描述业务流程和系统行为的强大工具,本质上是"带并发语义的流程图"。与普通流程图相比,活动图具有更严谨的语法规范,支持并发表达,能更精确地描述复杂业务逻辑。 核心特点 并发语义:支持Fork/Join机制,能描述并行流程 标准元素:包含初始节点、终止节点、动作、判断等9个核心元素 适用场景:特别适合描述初始化流程、算法步骤和通信协议 与其他UML图的区别 状态图:关注对象状态变化 时序图:展示对象间交互 活动图:专注于业务流程和操作步骤
2025-12-24 23:39:32
1124
原创 UML之状态图学习
本文系统介绍了状态图在嵌入式开发中的应用,重点阐述了状态图的核心概念、适用场景、核心元素及实现方法。主要内容包括: 状态图的本质是将switch-case状态机可视化,提供全局设计视角 适用场景包括系统具有多种运行模式、行为依赖状态等5种情况 详细解析了状态、事件、转换、动作等核心元素的定义及C语言实现 提供了从需求分析到代码实现的完整流程 特别针对嵌入式开发场景,列举了典型应用实例 文章采用代码与UML元素对照的方式,帮助开发者理解状态图与实际编程的对应关系,强调状态图在系统设计、开发和维护各阶段的价值。
2025-12-24 23:18:49
1044
原创 UML之时序图学习
UML时序图嵌入式工程实践指南 本文系统讲解了UML时序图在嵌入式开发中的应用,重点涵盖: 时序图本质:展示对象间按时间顺序的交互过程,解决"谁先谁后、谁调用谁、调用什么"三大关键问题 核心元素: 生命线(Lifeline):表示对象存在周期 激活条(Activation):对象执行状态 5种消息类型:同步/异步/返回/自调用/创建消息 嵌入式特色: 适用协议交互(Modbus/CAN/TCP/IP) 多任务协作场景(FreeRTOS) 典型示例:UART/DMA通信时序建模 实践价值:
2025-12-24 22:40:27
1666
原创 UML之用例图学习
摘要:用例图核心概念与应用指南 用例图是从外部视角描述系统功能的UML工具,包含参与者(Actor)、用例(Use Case)和系统边界三大核心元素。参与者必须是外部角色,用例应体现完整功能价值,系统边界需明确划分责任范围。用例图通过«include»(必选)和«extend»(可选)关系组织功能,是需求分析和系统设计的起点。常见错误包括:将内部模块作为参与者、用例粒度过细、忽略系统边界等。正确使用用例图能有效澄清需求、界定系统范围并为测试提供依据。
2025-12-24 22:15:49
3970
原创 UML之类图学习
摘要(148字): UML类图作为设计意图图而非语法图,其可见性符号(+/-/#)表达的是模块设计约束而非语言特性。在C++中,UML元素可直接映射为class/成员变量/函数;在C语言中,通过struct+函数可逻辑实现类概念,static成员对应private,.h暴露API对应public。核心在于UML表达的是模块边界与访问权限,与实现语言无关。良好的C模块设计本质上符合UML类图思想,通过先设计后编码、规范注释命名、严格访问控制,可在嵌入式等场景实现面向对象的设计原则,提升模块化、封装性和可维护性
2025-12-23 23:50:40
704
原创 UML统一建模语言概览
UML概述与图分类 UML(统一建模语言)是标准化的软件系统建模工具,具有可视化、标准化和文档化特点。UML图分为两大类: 结构图(7种): 类图(面向对象设计核心) 对象图(实例状态快照) 组件图(模块组成) 部署图(硬件部署) 包图(模块化管理) 行为图(7种): 用例图(需求分析) 活动图(业务流程) 状态图(对象生命周期) 序列图(时间顺序交互) 通讯图(协作关系) 结构图关注静态架构,行为图关注动态流程,共同构成完整的系统建模语言体系。
2025-12-23 22:49:54
1453
原创 OTA-Bootloader ↔ APP 双向跳转完整解决方案
摘要:本文提供STM32F407 IAP双区架构完整解决方案,包含Bootloader与APP双向跳转实现。采用32KB Bootloader分区和480KB APP分区设计,支持通过升级标志位触发固件更新流程。详细介绍了Flash布局规划、双跳转机制实现、升级标志位存储方案(Backup SRAM/Flash扇区),并给出单APP和双APP备份两种方案。文中包含完整的代码实现、常见问题解决方案及最佳实践指导,特别对双APP备份方案进行了重点说明,包括224KB主备应用区设计,确保系统可靠升级与安全回滚。
2025-11-16 12:22:04
867
4
原创 OTA-Flash存储器组织详解
本文详细分析了STM32F40x/F41x系列微控制器的Flash存储器架构。主要包含四部分:1)主存储器(最大1MB,采用非均匀扇区设计,包含12个不同大小的扇区);2)系统存储器(30KB,只读,存储出厂Bootloader);3)OTP区域(528字节,一次性编程区);4)选项字节(16字节,用于配置保护设置)。文章通过地址映射图、对比表格和代码示例展示了Flash存储器的组织结构和操作方式,重点分析了非均匀扇区设计的优势,为开发者提供了实用的参考信息。
2025-11-16 11:18:28
1178
原创 Shell脚本编程完全学习指南
本文为Shell脚本编程学习指南的前两章内容摘要: 第一章介绍了Shell基础概念,包括常见Shell类型(Bash、sh、zsh等)、第一个Shell脚本的创建与执行方法(4种执行方式)、标准脚本结构(包含Shebang行、注释、变量和函数定义)、注释规范(单行/多行/函数注释)以及输入输出操作(echo/printf/read命令的使用)。 第二章讲解了变量与数据类型,涵盖变量定义与作用域、特殊变量(位置参数$1-$9、$#/$*/$@等)、环境变量(PATH/USER等)的设置与查看,以及字符串操作(
2025-11-13 23:55:17
507
原创 Makefile完全学习指南
Makefile 完全学习指南 - 150字摘要 Makefile是用于自动化构建程序的配置文件,通过定义目标、依赖关系和命令实现高效编译。指南涵盖从基础语法到高级特性,包括变量定义(${VAR})、函数调用($(func))、模式规则(%.o: %.c)和伪目标(.PHONY)。重点讲解增量编译原理、依赖管理、跨平台支持以及调试优化技巧。通过实战项目演示如何组织复杂构建流程,帮助开发者掌握Makefile核心功能,提升项目构建效率。
2025-11-13 23:53:23
726
原创 Linux 内核 Kconfig 配置系统完全解析
Linux内核Kconfig配置系统解析 核心架构: Kconfig系统由三部分组成:规则定义层(Kconfig文件)、交互层(menuconfig等工具)和输出层(.config等生成文件)。通过配置规则定义、交互式配置和自动化生成,完成内核功能的定制化编译。 关键特点: 层次化配置:通过menu/endmenu组织菜单结构 多类型选项:支持tristate(y/m/n)、bool(y/n)、int等多种配置类型 丰富的依赖关系:包括硬依赖(depends on)、自动选择(select)和弱依赖(imp
2025-11-12 23:37:09
1266
原创 JSON脚本完整解析
本文介绍了一个用C语言实现的轻量级JSON解析器方案。文章详细讲解了JSON的核心特性与解析器的职责边界,采用三层架构设计(应用层、解析层、词法层)。核心实现包括数据结构定义(Token类型枚举和JSON值类型定义)以及对象、数组等结构的解析方法。解析器支持JSON所有标准数据类型,包括字符串、数字、布尔值、null、对象和数组,并提供了各类型在C语言中的表示方式及解析要点。实现强调性能、灵活性和标准遵循,同时明确了业务语义验证等应由应用层处理的高级功能。
2025-11-12 22:45:56
379
原创 基于链接脚本的自动初始化机制
摘要:本文介绍了一种嵌入式系统中模块初始化的优雅解决方案——基于链接脚本的自动初始化机制。传统方法在main函数中手动调用各模块初始化函数存在耦合度高、维护困难等问题。新方案利用编译器和链接器特性,通过定义宏将初始化函数指针放入自定义段,在链接阶段集中收集,运行时自动遍历执行。详细阐述了GNU LD和ARM SCT两种链接脚本配置方式,并提供了核心代码实现,包括函数指针类型定义、注册宏和运行时调用机制。该技术显著提升了代码模块化程度和可维护性。
2025-11-02 23:00:47
830
原创 FreeRTOS-修改 FreeRTOSConfig.h
本文介绍了FreeRTOS在STM32F4平台上的移植配置要点。主要涉及FreeRTOSConfig.h文件的修改,包括系统频率设置(1kHz SysTick)、任务优先级范围(0-6共7级)、堆内存分配(40KB)、栈溢出检测等核心参数配置。特别说明了中断优先级映射规则(4bit优先级字段)、软件定时器设置以及关键API的启用方式。移植过程中需注意内核中断处理函数与STM32启动文件的命名对应关系,并提供了常见编译错误的解决方案参考。配置采用抢占式调度,优化了Cortex-M系列的任务切换性能,同时支持静
2025-11-01 00:30:08
940
原创 FreeRTOS-文件移植
本文介绍了FreeRTOS在STM32F407VET6单片机上的移植过程。主要内容包括:1)FreeRTOS源码结构,其中Source文件夹包含内核代码,Demo文件夹提供参考移植案例;2)内存管理方案对比,重点分析了heap_1至heap_5五种算法特性及适用场景,最终选择支持内存释放的heap_2方案;3)Keil环境下移植的文件配置,详细说明了需要添加的源码文件和头文件路径设置。移植过程涉及内核源码选择、内存管理策略确定及编译器配置等关键步骤。
2025-10-28 00:00:23
556
原创 USB接口的类型
USB接口类型及特点:Type-A(主机端设备)、Type-B(打印机等设备)、Type-C(正反可插多功能)、Micro USB(旧款安卓设备)和Mini USB(老式数码产品)。Type-C是目前最先进的接口,支持高速传输、快充和视频输出,将逐步取代其他类型。欧盟已规定2024年起统一使用Type-C接口。不同接口版本通过颜色区分速度,如蓝色代表USB 3.0。
2025-10-08 22:39:35
2970
原创 I²C 通信冲突与总线仲裁策略
IIC总线死锁问题分析与复现 摘要:作者在工作中遇到IIC通信死锁问题,表现为SDA和SCL被持续拉低,总线忙标志位一直处于忙状态。通过实验发现,当两个IIC主机同时连接时会出现死锁现象。分析指出IIC总线仲裁机制的特性,即多个主机同时通信时会自动仲裁,但异常情况下可能导致死锁。实验使用STM32F103C8T6和MPU6050成功复现了双主机连接时的死锁现象。作者建议在设计中加入死锁保护机制,并希望获得更专业的指导。文章涵盖了IIC通信基础概念、问题复现过程及解决方案思考。
2025-07-13 21:32:14
693
原创 FreeRTOS移植前言
FreeRTOS移植核心配置要点:1)调度方式选择抢占式(configUSE_PREEMPTION=1)和时间片轮转(configUSE_TIME_SLICING=1);2)堆栈管理推荐heap_4.c方案,支持碎片合并;3)任务栈配置需监控使用峰值(uxTaskGetStackHighWaterMark),建议简单任务≥128字;4)中断优先级分组需区分内核中断(最低)和可调用API中断(0x5F);5)钩子函数用于异常处理和系统监控,如内存耗尽和栈溢出。关键配置需结合硬件资源和应用场景调整。
2025-07-09 23:18:25
1036
插入排序的时候右边红色框起来的是什么啊(语言-c语言)
2023-02-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅