CANopenNode 移植·调试
📚
30 章完整目录
01
CANopenNode概述
CANopen协议简介
项目架构
源码目录解析
02
开发环境搭建
编译器选择(GCC/IAR/Keil)
工程模板创建
依赖库管理
03
硬件抽象层移植
定时器驱动
CAN控制器驱动
中断管理
GPIO配置
04
对象字典配置
OD文件结构
数据类型定义
生成工具使用
05
NMT状态机实现
初始化流程
预操作状态
操作/停止状态切换
06
PDO通信配置
TPDO/RPDO映射
传输类型设置
同步/异步模式
07
SDO通信实现
快速SDO
分段SDO
超时处理/异常响应
08
心跳与同步机制
生产者心跳
消费者心跳
SYNC报文处理
09
紧急报文处理
错误寄存器
紧急错误代码
自定义错误处理
10
时间戳对象
时间戳对象配置
同步时间戳
本地时间管理
11
LSS层配置
节点ID配置
波特率设置
LSS快速扫描
12
存储服务
对象字典保存/恢复
非易失性存储接口
默认值加载
13
多节点支持
多实例管理
节点ID动态分配
总线冲突处理
14
调试接口实现
串口日志
CAN监控
对象字典在线查看
15
性能优化
中断延迟优化
内存使用优化
通信吞吐量提升
16
错误处理策略
总线关闭恢复
错误被动处理
错误主动处理
17
启动引导程序
Bootloader设计
固件升级流程
安全校验
18
协议栈配置工具
EDS/DCF文件生成
配置工具使用
参数批量设置
19
单元测试框架
测试用例设计
模拟CAN总线
自动化测试
20
集成测试方法
多设备联调
压力测试
边界条件测试
21
常见问题排查
初始化失败
通信超时
对象字典访问错误
22
CANopenNode与RTOS
FreeRTOS集成
任务优先级设计
信号量使用
23
CANopenNode与裸机
裸机调度策略
轮询与中断平衡
低功耗设计
24
STM32移植
HAL库适配
时钟配置
DMA传输
25
Linux移植
SocketCAN接口
用户空间驱动
实时性优化
26
MCU内存管理
动态内存分配
静态内存池
栈空间优化
27
扩展模块
CiA 402驱动
CiA 417门控
自定义Profile
28
版本迁移指南
v1到v2迁移
API变更
兼容性处理
29
实战案例一:伺服驱动器
CANopen通信实现
伺服控制
调试要点
30
实战案例二:IO模块从站
IO模块开发
从站协议栈
完整联调