二十四、RZN2L多协议双BANK升级SDK V0.1

一、目的/概述

1、设备部署后不便于通过USB、串口、Jlink、返厂等方式升级固件,ECAT选择FOE升级

2、FOE升级希望通过双BANK可以回滚上一个版本

3、硬件一致性、生产、维护等因素考虑多协议,也需要多协议切换和升级

4、官方相关文档大概5个,但一定程度无法兼容或统一,需要统一的SDK便于开发和维护

5、FOE FSP 1.3和FOE FSP 2.0以上存在差异,也可能存在无法启动的可能性

6、介绍RZN2L多协议双BANK升级SDK V0.1架构和测试

二、资料来源

  • r01an6471ej0300-rzt2-n2-flashboot.pdf

  • r01an6472ej0230-rzt2-n2-fwupdate.pdf

  • r01an6737ej0210-rzn2l-separating-loader-and-application.pdf

  • r01an7217ee0100-rzn2l-ethernet-protocol-auto-detection.pdf

  • r01an7423ej0200-rzn2l-ecat-cia402-foe.pdf

三、目录结构

复制代码

四、环境要求

  • Window 10/11

  • Renesas e² studio Version: 2025-07 (25.7.0)

  • RZN FSP 2.0.0

  • TwinCAT v3.1.4024.65

  • Python 3.12.12

  • CN032开发板(RZN2L+KSZ8081+w25q128)

五、Flash地址划分

复制代码
FLASH MEMORY MAP (起始地址: 0x6000 0000)
═══════════════════════════════════════════════════════════
             SBL:   
0x6000 0000  ┌─────────────────────────────────────┐
             │ loader_param                        │ 0x4C
0x6000 004c  ├─────────────────────────────────────┤
             │ sbl code                            │ ~512KB
0x6008 0000  ├─────────────────────────────────────┤
             │ sbl LOADER_TABLE                    │ ~508KB
0x600F F000  ├─────────────────────────────────────┤
             │ sbl boot params                     │ 4KB
0x600F FFFF  └─────────────────────────────────────┘
             APP1BANK0:   
0x6010 0000  ┌─────────────────────────────────────┐
             │ .header                             │
             │  ├─ "APP1BANK0" (9B)                │
             │  ├─ app1bank0 length (4B)           │ 0x4C
             │  └─ reserved (0x4C-0x1C=0x30)       │
0x6010 004c  ├─────────────────────────────────────┤
             │ .identify (4x4B)                    │ 16B
0x6010 005c  ├─────────────────────────────────────┤
             │         app1 bank0 code             │
0x601F FFFC  ├─────────────────────────────────────┤
             │ 整区 CRC32 (0x6010_0000-0x6020_0000)│ 4B
0x601F FFFF  └─────────────────────────────────────┘
             APP1BANK1:
0x6020 0000  ┌─────────────────────────────────────┐
             │ .header                             │
             │  ├─ "APP1BANK1" (9B)                │
             │  ├─ app1bank1 length (4B)           │ 0x4C
             │  └─ reserved (0x4C-0x1C=0x30)       │
0x6020 004c  ├─────────────────────────────────────┤
             │ .identify (4x4B)                    │ 16B
0x6020 005c  ├─────────────────────────────────────┤
             │         app1 bank1 code             │
0x602F FFFC  ├─────────────────────────────────────┤
             │ 整区 CRC32 (0x6020_0000-0x6030_0000)│ 4B
0x602F FFFF  └─────────────────────────────────────┘

0x6030 0000  ┌─────────────────────────────────────┐
             │         剩余保留区域                 │
             └─────────────────────────────────────┘

六、启动流程图

七、测试日志

复制代码
g_uart0.p_api->open
[INFO] date:Feb 12 2026
time:16:27:50
file:../src/hal_entry.c
func:hal_entry,line:132
hello world!
[INFO] PI=3.141593
[INFO] Built with RZ/N Flexible Software Package version 2.0.0
[INFO] BootBankParams check OK!!!
[INFO] Loader start! 0.1.0
*****
Ready to Jump to the app!

[INFO] ****************************
App start!
[INFO] App start! 0.1.0
[INFO] date:Feb 12 2026
time:16:27:30
file:../src/hal_entry.c
func:hal_entry,line:148
hello world!
[INFO] PI=3.141593
[INFO] Built with RZ/N Flexible Software Package version 2.0.0
[INFO] RZ/N2L EtherCAT sample program starts on BANK0.
[INFO] BL_Start State=3
[INFO] BootBankParams check OK!!!
[INFO] P:0% [INFO] P:1% [INFO] P:2% P:98% [INFO] P:99% [INFO] P:99% [INFO] P:99% [INFO] P:99% [INFO] Last P:100%
[INFO] write flash finished!!!
[INFO] Flash crc check succeed!!!
[INFO] BL_DATA_STATUS_SII_UPDATE Buffer.word[SII_EEP_REVESIONNO]=300
[INFO] ECAT FOE Total Time:5000ms!!!

[INFO] BL_Stopg_uart0.p_api->open
[INFO] date:Feb 12 2026
time:16:27:50
file:../src/hal_entry.c
func:hal_entry,line:132
hello world!
[INFO] PI=3.141593
[INFO] Built with RZ/N Flexible Software Package version 2.0.0
[INFO] BootBankParams check OK!!!
[INFO] Loader start! 0.1.0
*****
Ready to Jump to the app!

[INFO] ****************************
App start!
[INFO] App start! 0.1.0
[INFO] date:Feb 12 2026
time:16:27:30
file:../src/hal_entry.c
func:hal_entry,line:148
hello world!
[INFO] PI=3.141593
[INFO] Built with RZ/N Flexible Software Package version 2.0.0
[INFO] RZ/N2L EtherCAT sample program starts on BANK0.

八、已知问题或不足

  • FOE测试可升级,但未完成双BANK切换

  • 只支持e2studo

  • 暂不支持其他协议

  • SBL暂不支持RTOS、LWIP

  • 仅仅可测试验证,无法保证稳定性

  • 暂不支持RZ其他芯片

九、总结

  • 参考了官方5个文档,该SDK理论支持RZN2L多协议双BANK升级SDK(V0.1)

  • 通过构建后指令、Python等指令或工具,尽量做到自动化

  • 年前发布V0.1,根据大家反馈情况,再决定是否继续维护

相关推荐
廷华电子1 天前
STM32H743+AX58100学习板
stm32·嵌入式硬件·电机控制·ethercat·cia402
疆鸿智能研发小助手2 天前
轨交隧道设备协同:PROFINET转ETHERNET IP网关赋能变频器智能运行
工业自动化·变频器·profinet·罗克韦尔·ethernet ip·协议转换网关·伺服
疆鸿智能研发小助手4 天前
协议不通?一“网”打尽!PROFINET转MODBUS TCP网关,赋能步科伺服精准协同
modbus tcp·工业自动化·profinet·工业通讯·协议转换网关·伺服
芯次元玩家5 天前
EtherCAT 在机器人中的实战应用:主流架构与伺服方案拆解
机器人·ethercat
疆鸿智能研发小助手5 天前
PROFINET转MODBUS TCP网关接安科瑞马达保护器案例
modbus·马达保护器·工业自动化·profinet·工业通讯·协议转换网关
沐多6 天前
【原创】ERTEC 系列 PROFINET 芯片级硬件过滤器分析
profinet
疆鸿智能研发小助手6 天前
破局机床精密加工:疆鸿智能PROFINET转MODBUS TCP通讯壁垒终结者
modbus·modbus tcp·工业自动化·profinet·工业通讯·协议转换网关·智控机床
疆鸿智能研发小助手13 天前
高压锁模之下:疆鸿智能EtherCAT转EtherNet/IP精准对话电磁阀,锁模力毫秒必达
工业自动化·ethercat·电磁阀·ethernet ip·工业通讯·协议转换网关
疆鸿智能研发小助手16 天前
疆鸿智能EtherCAT转Ethernet/IP网关:汇川PLC×施耐德伺服的协议破壁之桥
工业自动化·ethercat·ethernet ip·汇川·工业通讯·协议转换网关·施耐德伺服