- 博客(129)
- 资源 (27)
- 收藏
- 关注
原创 UML需求分析与医院管理系统演示(一)
文章目录一、引言二、UML的作用三、UML类图关系四、医院住、出院管理系统演示五、小结一、引言UML是软件设计提供统一且可视化的建模语言,其是一种用图形方式表现面向对象系统。它是从需求分析出发的软件设计的全过程。UML统一了各种方法对不同类型的系统、不同开发阶段以及不同概念的不同观点,从而消除了各种建模语言之间不必要的差异。它是一种通用的建模语言,因而被用户广泛地使用。目前UML共有12中图形,分别包括用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种;包图、组合结构图、交互图
2021-05-13 17:37:34
18386
8
原创 Bootloader + OTA 升级框架笔记
硬件初始化(时钟、外设)检查是否有固件升级请求验证 APP 固件合法性跳转到 APP 或进入 OTA 升级模式特性FlashRAM (SRAM)用途存储程序代码和常量运行时变量和栈容量 (F407)1MB128KB持久性掉电不丢失掉电丢失写入方式需擦除后编程 (字对齐)直接读写速度较慢 (需等待状态)快 (单周期访问)OTA (Over-The-Air) 指通过通信接口(UART/CAN/蓝牙/WiFi)远程升级固件,无需物理连接调试器。
2026-07-02 22:06:40
352
原创 CANopen 主从站过滤器配置笔记
CANopen 使用(CiA 301),每条 CAN 消息的 COB-ID 由功能码 (Function Code, bit[10:7]) + Node-ID (bit[6:0])组成。
2026-06-28 13:08:43
284
原创 STM32H7_FDCAN 驱动笔记
芯片:STM32H743/STM32H753(FDCAN 外设)HAL 版本:STM32H7xx_HAL_Driver功能:经典 CAN 2.0B + CAN FD,双波特率,中断接收,硬件过滤器,自动位时序计算,Bus-Off 恢复,TDC。
2026-06-16 23:11:30
330
原创 DShot600 协议原理与实现-学习笔记
DShot600 是一种数字通信协议,用于无人机飞控和电调之间的高速数据传输,相比传统模拟协议具有抗干扰强、无需校准等优势。其核心特点包括: 数字传输 - 采用二进制位直接传输油门值,通过脉冲宽度编码区分0/1(DShot600位周期1.67µs) 帧结构 - 16位数据帧包含11位油门值(0-2047)、1位遥测请求标志和4位CRC校验 性能优势 - 理论更新率37.5kHz,支持双向通信(ESC可回传遥测数据) 物理层 - 单根信号线+共地传输,3.3V TTL电平,需注意信号完整性(线长≤30cm,远
2026-06-14 17:48:44
348
原创 CANopen 笔记(一)
域标准帧 (11b ID)扩展帧 (29b ID)SOF1b, 显性1b, 显性 (同)ID11b11b (ID_A)RTR/SRRRTR, 1bSRR, 1b (隐性)IDE1b, 显性=标准帧1b, 隐性=扩展帧ID扩展18b (ID_B)RTR— (已在前面)1br11br01b1bDLC4b4b (同)Data0~8 Byte0~8 Byte (同)CRC15b15b (同)ACK2b2b (同)EOF7b, 隐性。
2026-06-14 17:35:37
320
原创 CAN/CANFD 笔记
特性说明拓扑多主总线,任一节点可主动发送仲裁非破坏性逐位仲裁(CSMA/CA)帧优先级由 CAN ID 决定,ID 越小优先级越高错误处理5 种错误检测机制 + 自动重传故障隔离自动将故障节点从总线隔离最大速率经典 CAN: 1 Mbps(40m 内);CAN FD: 最高 8 Mbps(数据段)数据长度经典 CAN: 0–8 字节;CAN FD: 0–64 字节CAN 总线的核心设计哲学:追求高实时性和高可靠性,在发生冲突时不会丢失数据——优先级高的消息总能无延迟地赢得仲裁。
2026-06-13 19:23:07
317
原创 EtherCAT从站ssc V5.12源码研究与记录(三)
变量从初始化到返回均未被赋值),真正的错误处理在。内部通过 AL Status Code 上报。时才允许进入 BOOT 状态执行固件更新。迫使主站进入 Boot 流程,只有。
2026-05-19 00:34:31
190
原创 EtherCAT研究之物理层PHY(一)
下面从标准、信号、PHY 芯片、接口、PCB 设计、EMC 与故障排查,完整讲一遍 EtherCAT 物理层(PHY)。
2026-05-16 23:44:58
370
原创 EtherCAT技术栈分析(一)
EtherCAT 是一套的工业以太网技术栈,核心是与,运动控制周期可达、抖动 **<1μs**,已成为伺服 / 机器人领域事实标准。
2026-05-16 23:34:07
423
原创 EtherCAT从站ssc V5.12源码研究与记录(二)
是 Beckhoff EtherCAT SSC 提供的Bootloader 示例应用。它演示了如何利用 EtherCAT 的 Boot 状态 + FoE 协议(File over EtherCAT)实现固件更新功能。核心思路:从站上电后先进入 Bootloader,通过 FoE 协议从主站接收新固件,存到数据缓冲区,然后跳转到主应用执行。设计点说明双模式设计bBootMode标志区分真实固件更新(FLASH 写入)与内存加载(测试模式)FoE 分段传输通过标志和偏移量实现大文件分段接收状态机保护。
2026-05-16 22:42:20
380
原创 EtherCAT从站ssc V5.12源码研究与记录(一)
摘要: applInterface.h定义了SSC协议栈与应用层的交互接口,包含两类内容: 回调函数(应用层实现): EEPROM操作(读写/重载/存储) EoE网络数据处理与参数更新 FoE文件传输控制(读写/错误处理) 主循环周期性任务注入 协议栈API(应用层调用): MainInit/MainLoop(协议栈初始化与主循环) ECAT_StateChange(状态降级请求) EOE_SendFrameRequest(EoE响应发送) 采用依赖反转设计,通过函数指针实现协议栈与应用的解耦,提升移植灵活
2026-05-16 22:05:06
270
原创 CMake 笔记
本文档系统介绍了CMake构建工具的核心概念与实用技巧。主要内容包括:CMake的基本原理与优势,通过"描述构建什么而非如何构建"解决跨平台构建问题;快速入门指南,展示最简CMake项目配置与构建流程;核心概念详解,重点讲解目标类型、属性传递机制和变量系统;常用命令与技巧,涵盖C++标准设置、编译选项配置、条件判断等实用方法。文档采用实践导向的编写方式,包含大量代码示例和场景说明,适合从入门到进阶的CMake学习者参考使用。
2026-05-11 23:56:51
58
原创 CMake研究与实战
CMake(Cross Platform Make)是一个开源的、跨平台的构建系统生成器。它不是一个直接的构建工具,而是一个元构建系统(meta-build system),用于生成特定平台的本地构建系统文件。CMakeLists.txt → CMake → 本地构建文件 → 本地构建工具 → 最终产物(Makefile/VS项目等) (make/MSBuild等)# │ 普通变量 │# 定义变量# 使用变量# 定义列表变量# 列表展开# 追加元素到列表# 从列表移除元素# 获取列表长度。
2026-05-11 23:49:38
45
原创 EtherNet/IP 协议研究与学习(一)
EtherNet/IP = 标准以太网(IEEE 802.3) + TCP/IP + CIP(通用工业协议)EtherNet/IP 是由罗克韦尔自动化(Rockwell Automation)开发、现由ODVA(开放 DeviceNet 供应商协会)管理的工业以太网协议。名称中的 “IP” 代表(工业协议)。EtherNet/IP = 标准以太网 + TCP/IP + CIP,底层使用标准商用以太网硬件CIP 是核心,定义了面向对象的数据模型、标准服务、报文路由机制显式通信(TCP:44818)
2026-05-11 23:36:58
126
原创 嵌入式Linux宕机问题GDB调试(二)
1. 加载core文件2. 确认崩溃信号3. 查看调用栈bt full4. 切换到崩溃栈帧frame 05. 查看源代码list6. 查看局部变量和参数info args7. 查看相关变量值print varprint *ptr8. 查看寄存器9. 查看内存10. 多线程程序查看所有线程11. 分析死锁(如适用)12. 反汇编分析(如需要)
2026-05-10 23:41:29
218
原创 嵌入式Linux宕机问题GDB调试(一)
类型表现分析工具用户态崩溃内核崩溃死锁/卡死进程无响应内存泄漏系统逐渐变慢看门狗复位系统重启硬件日志, kdump。
2026-05-10 23:15:25
317
原创 EtherCAT的igh学习与研究(二)
硬件配置主站 0:eth0 (MAC: c4:83:4f:27:30:5a) - 主用主站 1:eth1 (MAC: c4:83:4f:27:30:5b) - 备用配置文件# ===== 主站 0 配置 =====# ===== 主站 1 配置 =====# 设备驱动(两个主站使用相同驱动)# 可选:启动时设置网口 UP用户空间应用// 应用 1 - 使用主站 0// 主用// 应用 2 - 使用主站 1// 备用。
2026-04-11 12:11:36
510
原创 EtherCAT的igh学习与研究(一)
EtherCAT 主站的启动是一个涉及用户空间和内核空间的多层协作过程。核心要点用户空间配置驱动内核行为- 通过配置文件传递 MAC 地址等参数双模块协作- ec_master.ko 提供框架,ec_xxx.ko 驱动硬件完全旁路 Linux 网络栈- 实现微秒级实时响应DMA 零拷贝- 主站与驱动直接共享内存。
2026-04-11 11:36:18
545
原创 软件版本号制定方法
1、软件版本号由主版本号,子版本号,修复版本号组成。2、版本号信息由版本号+当日编译的时间组成。3、编写一个获取版本号的函数。
2025-03-23 22:34:45
426
原创 网络丢包定位-TCP/UDP丢包记录(四)
设置合理的连接队列大小,当第三次握手时,当server接收到ACK 报之后, 会进入一个新的叫 accept 的队列,该队列的长度为 min(backlog, somaxconn),默认情况下,somaxconn 的值为 128,表示最多有 129 的 ESTAB 的连接等待 accept(),而 backlog 的值则应该是由 int listen(int sockfd, int backlog) 中的第二个参数指定,listen 里面的 backlog 可以有我们的应用程序去定义的;
2024-09-21 23:23:50
2246
1
原创 网络丢包定位记录(三)
无论,哪种情况导致table变满,满了以后就会丢包,出现外部无法连接服务器的情况。反向路由过滤机制是Linux通过反向路由查询,检查收到的数据包源IP是否可路由(Loose mode)、是否最佳路由(Strict mode),如果没有通过验证,则丢弃数据包,设计的目的是防范IP地址欺骗攻击。这种丢包一般会出现在多IP场景,子机底层配置多ip失败,导致对应ip收不到包而丢包;1 - RFC3704定义的严格模式:对每个收到的数据包,查询反向路由,如果数据包入口和反向路由出口不一致,则不通过。
2024-09-21 23:08:27
1321
原创 网络丢包定位记录(二)
很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一,上面那台有问题的机器就是因为 interruprs 分布的不均匀(都压在 core0),没有做。每个CPU核都有一个backlog队列,与Ring Buffer同理,当接收包的速率大于内核协议栈处理的速率时,CPU的backlog队列不断增长,当达到设定的netdev_max_backlog值时,数据包将被丢弃。
2024-09-21 23:02:02
2862
原创 Wireshark学习使用记录
Wireshark 的主界面和一般的 Windows 软件很像,也有菜单栏,工具栏,地址栏等。还有一些它自己的像,显示过滤器、封包列表、封包详细信息、十六进制数据显示区等。如下图所示,选择完网卡之后其实就已经开始抓包了。
2024-09-21 22:12:12
873
原创 gdb调试使用记录
使用 GDB(GNU Debugger)进行问题排查是非常有效的。且可以通过core文件进行排查bug,core文件是程序异常崩溃的时候(段错误,非法指令等),系统自动生成的core文件。用户可以通过core文件配合gdb调试命令,调试程序异常崩溃的原因,修复相应的bug。core文件生成需要通过ulimit -c命令来查看和配置,当显示为0时,表示系统不会生成core文件,这个时候我们需要配置相应的环境,使系统可以在程序异常崩溃的时候,生成core文件。可通过如下命令设置core文件大小和输出位置。
2024-09-21 21:22:32
763
原创 动态库的makefile且链接静态库
需要考虑几个关键点:编译源文件、生成动态库、链接静态库、清理操作等。以下是一个简单的示例。编写一个Makefile来编译一个动态库,并链接第三方静态库时,可以按照以下步骤进行。假设有一个动态库需要编译,同时依赖一个名为。的静态库,以及需要编译成动态库的源文件。一个能够生成动态库并链接静态库的。
2024-07-21 14:11:23
1675
原创 IP地址冲突检测(Address Conflict Detect)记录
用于检测IP地址冲突,发送端IP填充为0,填充为0是为了避免对其他设备的ARP cache造成污染(ARP probe报文不会使局域网中的其他设备刷新ARP映射关系,若已经有设备正在使用目标IP地址了,其通信不会受影响)。ARP通告分组:与ARP探测相同,除了其发送方协议地址和目的协议地址字段被填充为候选IPv4地址外。2、ARP协议(地址解析协议)用于局域网中网络设备按IP地址查询对方的MAC地址,提供一种从网络地址(仅ipv4,ipv6用ND协议替代)到硬件地址(各种链路层协议使用的地址)的映射。
2024-06-10 15:12:08
2886
原创 Ethernet/IP 之IO 连接简要记录
设备1发送请求帧数据通过显示消息连接对象到设备2的显示消息连接对象,等到设备2处理完请求数据后,通过发送显示消息响应帧到显示消息连接对象发送给设备1。生产者对象产生IO数据通过生产者IO连接管理者对象将连接ID和数据组帧发送给消费者IO连接管理者对象然后将IO数据发送给消费者对象。在上来就是数据链路层、 IP层、TCP(显示消息)、UDP(IO消息)、封装层(包括了CIP消息等等数据)。EIP的IO连接提供了在一个生产者和多个消费者之间的特定的通信路径,以达到IO数据在IO连接下传输。
2023-12-20 17:30:04
1139
原创 Ethernet/IP的开源协议栈
2、OpENer 是一个 EtherNet/IP 协议栈,其用于 I/O 适配卡设备,支持多路 I/O 和明确连接以及EtherNet/IP兼容产品的对象和服务,参考 ODVA 规范。1、开源协议栈在github上地址。
2023-06-18 21:16:50
2368
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅