自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 软件中的保护锁在工程项目中的应用

在的应用层协议栈中引入,需平衡。

2025-04-19 14:35:09 377

原创 软件版本号制定方法

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

原创 网络丢包定位记录(一)

接收模块。

2024-09-21 22:46:15 1555

原创 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

原创 I2C之IO模拟方式-记录

【代码】I2C之IO模拟方式-记录。

2024-07-14 15:43:43 288

原创 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

原创 编写com项目makefile和shell脚本

记录编写通用com项目的shell脚本和makefile文件。

2024-05-01 22:19:19 368

原创 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

原创 makefile的特性-部分语法记录

【代码】makefile的特性-部分语法记录。

2023-10-14 21:51:09 260

原创 adb调试Linux嵌入式设备记录

adb

2023-10-14 20:42:29 1467

原创 动态链接库的使用记录

动态链接,makefile

2023-10-04 23:37:08 473 2

原创 tftpd文件传输工具的学习记录

tftpd文件传输工具传输windows和linux的文件

2023-09-22 23:34:57 965

原创 Ethernet/IP的开源协议栈

2、OpENer 是一个 EtherNet/IP 协议栈,其用于 I/O 适配卡设备,支持多路 I/O 和明确连接以及EtherNet/IP兼容产品的对象和服务,参考 ODVA 规范。1、开源协议栈在github上地址。

2023-06-18 21:16:50 2368

转载 Ethernet/IP学习

EthernetIP学习

2022-11-27 13:12:01 10615 2

原创 项目开发—变量规范

C语言项目开发的变量规范

2022-08-24 00:31:29 548

原创 项目开发—C头文件格式规范

个人项目开发的C头文件格式规范

2022-08-23 22:30:18 583

索波尔Sobol序列.rar

Sobol序列代码

2021-04-29

曲线插值拟合代码.rar

各类曲线插值拟合代码

2021-05-02

基于遗传算法对非线性函数求解.rar

基于遗传算法对非线性函数求解

2021-05-02

霍尔顿(Halton)序列.rar

分享Halton序列代码

2021-04-29

小型的飞秋传输工具.rar

基于Qt的TCP、IP、UDP的小型飞秋程序代码

2021-04-30

短视频APP的UML案例.zip

短视频APP的UML案例

2021-05-13

Faure序列.rar

分享Faure序列代码

2021-04-29

常微分方程的初值问题.zip

常微分方程的初值问题

2021-05-02

基于vision的UML图.rar

基于vision的UML图

2021-05-14

基于vision的UML图.rar

基于vision的UML图

2021-05-14

函数规划优化求解.rar

函数规划优化求解

2021-05-07

matlab的二三维作图代码..rar

matlab的二三维作图代码

2021-05-07

最短路径程序代码.rar

最短路径程序代码

2021-05-07

微分方程的解代码.rar

微分方程的解代码

2021-05-07

数据统计和分析.zip

数据统计和分析

2021-05-02

常用算法程序集.rar

常用算法程序集

2021-05-02

模拟退火算法的代码.zip

模拟退火代码

2021-05-02

偏微分方程的数值解法.rar

偏微分方程的数值解法

2021-05-02

解线性方程组的迭代法.zip

解线性方程组的迭代法

2021-05-02

矩阵特征值计算.zip

矩阵特征值计算

2021-05-02

非线性方程组求解.zip

非线性方程组求解

2021-05-02

PSO算法求解函数的根.rar

PSO算法求解函数的根

2021-05-02

小型的飞鸽传输工具.rar

小型的飞鸽传输工具

2021-04-30

小型CS聊天的工具代码.rar

小型CS聊天的工具代码

2021-04-30

柯罗波夫和尼德雷特序列.rar

柯罗波夫和尼德雷特序列代码

2021-04-29

斐波那契随机序列代码.zip

斐波那契随机序列代码

2021-04-29

科普特序列和格雷码序列.rar

分享科普特序列和格雷码序列的代码

2021-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除