作为通过FOE给EtherCAT从机OTA的SSC代码开发记录_twincat带伺服foe功能-CSDN博客 的延续,本篇介绍如何在上位机代码上给从机发送固件包,并实现OTA。
其实非常简单,firm_update.c内的代码只需适配PASSWARD即可,展开来说:
从机在进行文件接受时校验PASSWARD与文件名两个字段。
1、因此在固件命名时需要跟SSC内代码内一致(本例为test_ota.bin)
2、firm_update.c内的PASSWARD字段也需要跟SSC内代码一致。
以下展示一个升级成功的示例
xxx:~firm_update$ sudo ./firm_update enp0s3000 2 test_ota.bin SOEM (Simple Open EtherCAT Master) Firmware update example Starting firmware update example ec_init on enp0s3000 succeeded. ec_config_init 0 Copy SII slave 2 from 1. Copy SII slave 3 from 1. Copy SII slave 4 from 1. Copy SII slave 5 from 1. Copy SII slave 6 from 1. Copy SII slave 7 from 1. 7 slaves found and configured. Request init state for slave 2 Slave 2 state to INIT. SM0 A:1000 L: 128 F:00010026 SM1 A:1080 L: 128 F:00010022 Request BOOT state for slave 2 Slave 2 state to BOOT. File read OK, 262482 bytes. FoE write....result 0. Request init state for slave 2 End firmware update example, close socket End program本示例表示:给站号为2的从站发送test_ota.bin文件接受成功。
更多知识分享:
b站,知乎同名:沧海一条狗
咸鱼ID:tb764914262