Преглед изворни кода

新增eip例程并同步用户手册

kurisaw пре 1 година
родитељ
комит
a2bfcf6d2a
100 измењених фајлова са 7047 додато и 10 уклоњено
  1. 2 0
      .github/workflows/action.yml
  2. 7 5
      README.md
  3. 7 5
      README_zh.md
  4. BIN
      docs/EtherKit_User_Manual.pdf
  5. 2 0
      projects/etherkit_ethernetip_opener/.api_xml
  6. 1320 0
      projects/etherkit_ethernetip_opener/.config
  7. 241 0
      projects/etherkit_ethernetip_opener/.cproject
  8. 14 0
      projects/etherkit_ethernetip_opener/.gitignore
  9. 28 0
      projects/etherkit_ethernetip_opener/.project
  10. 4 0
      projects/etherkit_ethernetip_opener/.secure_azone
  11. 153 0
      projects/etherkit_ethernetip_opener/.secure_xml
  12. BIN
      projects/etherkit_ethernetip_opener/.settings/.rtmenus
  13. 2 0
      projects/etherkit_ethernetip_opener/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs
  14. 14 0
      projects/etherkit_ethernetip_opener/.settings/language.settings.xml
  15. 2 0
      projects/etherkit_ethernetip_opener/.settings/local_temp_storage.prefs
  16. 3 0
      projects/etherkit_ethernetip_opener/.settings/org.eclipse.core.runtime.prefs
  17. 19 0
      projects/etherkit_ethernetip_opener/.settings/projcfg.ini
  18. 92 0
      projects/etherkit_ethernetip_opener/.settings/project.JLink.Debug.rttlaunch
  19. 9 0
      projects/etherkit_ethernetip_opener/.settings/standalone.prefs
  20. 34 0
      projects/etherkit_ethernetip_opener/Kconfig
  21. 235 0
      projects/etherkit_ethernetip_opener/README.md
  22. 233 0
      projects/etherkit_ethernetip_opener/README_zh.md
  23. 27 0
      projects/etherkit_ethernetip_opener/SConscript
  24. 56 0
      projects/etherkit_ethernetip_opener/SConstruct
  25. 569 0
      projects/etherkit_ethernetip_opener/board/Kconfig
  26. 16 0
      projects/etherkit_ethernetip_opener/board/SConscript
  27. 65 0
      projects/etherkit_ethernetip_opener/board/board.h
  28. 16 0
      projects/etherkit_ethernetip_opener/board/ports/SConscript
  29. 74 0
      projects/etherkit_ethernetip_opener/board/ports/gpio_cfg.h
  30. 172 0
      projects/etherkit_ethernetip_opener/buildinfo.ipcf
  31. 1336 0
      projects/etherkit_ethernetip_opener/configuration.xml
  32. 22 0
      projects/etherkit_ethernetip_opener/envsetup.sh
  33. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104408737-17340606619556.png
  34. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104408737.png
  35. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104422910-17340606619557.png
  36. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104422910.png
  37. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104437432-17340606619558.png
  38. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104437432.png
  39. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104519290-17340606619569.png
  40. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104519290.png
  41. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104533098-173406066195610.png
  42. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126104533098.png
  43. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114113830.png
  44. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114127411.png
  45. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114137199.png
  46. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114149792.png
  47. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114204739.png
  48. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114216032.png
  49. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114225267.png
  50. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114233871.png
  51. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241126114309177.png
  52. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241213113637153.png
  53. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241213113648018.png
  54. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241217145852034.png
  55. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241217150534826.png
  56. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241217152754556.png
  57. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241217153012620.png
  58. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241217153316489.png
  59. BIN
      projects/etherkit_ethernetip_opener/figures/image-20241217153547501.png
  60. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165322965.png
  61. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165349686.png
  62. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165523298.png
  63. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165538804.png
  64. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165611848.png
  65. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165634898.png
  66. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165704492.png
  67. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165725395.png
  68. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165823519.png
  69. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207165859632.png
  70. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207170030196.png
  71. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207170039473.png
  72. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207170048731.png
  73. BIN
      projects/etherkit_ethernetip_opener/figures/image-20250207170109396.png
  74. 6 0
      projects/etherkit_ethernetip_opener/mklinks.bat
  75. 3 0
      projects/etherkit_ethernetip_opener/mklinks.sh
  76. 361 0
      projects/etherkit_ethernetip_opener/ozone_scons.jdebug
  77. 57 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/.clang-format
  78. 22 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/.gitattributes
  79. 6 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/.github/dependabot.yml
  80. 71 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/.github/workflows/cmake.yml
  81. 23 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/.gitignore
  82. 56 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/.travis.yml
  83. 4 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/AUTHORS
  84. 390 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/ChangeLog.txt
  85. 225 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/README.md
  86. 20 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/TODO
  87. 115 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/data/OpENerPC.stc
  88. 359 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/data/opener_sample_app.eds
  89. BIN
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/imgs/fuzz.png
  90. BIN
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/cip_req_forward_open
  91. BIN
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/cip_req_list_identity_cip
  92. BIN
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/enip_req_list_identity
  93. BIN
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/enip_req_register_session
  94. 38 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/scripts/send_testcase.py
  95. 55 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/license.txt
  96. 17 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/sonar-project.properties
  97. 2 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/.gitignore
  98. 185 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/CMakeLists.txt
  99. 172 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/doc/STM32/LwIP_HTTP_Server_Netconn_RTOS_OpENer.patch
  100. 86 0
      projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/doc/STM32/OpENer STM32 Paths and Symbols.xml

+ 2 - 0
.github/workflows/action.yml

@@ -69,6 +69,8 @@ jobs:
          - {RTT_BSP: "etherkit_usb_pcdc"}
          - {RTT_BSP: "etherkit_ethercat_eoe"}
          - {RTT_BSP: "etherkit_ethercat_coe"}
+         - {RTT_BSP: "etherkit_profinet_pnet"}
+         - {RTT_BSP: "etherkit_ethernetip_opener"}
          - {RTT_BSP: "etherkit_factory"}
     steps:
       - uses: actions/checkout@v2

+ 7 - 5
README.md

@@ -27,22 +27,24 @@ $ sdk-bsp-rzn2l-etherkit
 │   ├── etherkit_basic_key_irq
 │   ├── etherkit_basic_rtc
 │   ├── etherkit_blink_led
-│   ├── etherkit_basic_key
+│   ├── etherkit_driver_adc
 │   ├── etherkit_driver_canfd
 │   ├── etherkit_driver_gpt
 │   ├── etherkit_driver_i2c
 │   ├── etherkit_driver_rs485
 │   ├── etherkit_driver_spi
 │   ├── etherkit_driver_wdt
-│   ├── etherkit_ethercat_eoe
 │   ├── etherkit_ethernet
-│   ├── etherkit_factory
-│   ├── etherkit_modbus_tcpip
-│   ├── etherkit_modbus_uart
 │   ├── etherkit_usb_pcdc
 │   ├── etherkit_usb_pmsc
 │   ├── etherkit_component_mqtt
+│   ├── etherkit_modbus_tcpip
+│   ├── etherkit_modbus_uart
+│   ├── etherkit_ethercat_coe
+│   ├── etherkit_ethercat_eoe
 │   └── etherkit_profinet_pnet
+│   └── etherkit_ethernetip_opener
+│   ├── etherkit_factory
 └── rt-thread
 ```
 

+ 7 - 5
README_zh.md

@@ -29,22 +29,24 @@ $ sdk-bsp-rzn2l-etherkit
 │   ├── etherkit_basic_key_irq
 │   ├── etherkit_basic_rtc
 │   ├── etherkit_blink_led
-│   ├── etherkit_basic_key
+│   ├── etherkit_driver_adc
 │   ├── etherkit_driver_canfd
 │   ├── etherkit_driver_gpt
 │   ├── etherkit_driver_i2c
 │   ├── etherkit_driver_rs485
 │   ├── etherkit_driver_spi
 │   ├── etherkit_driver_wdt
-│   ├── etherkit_ethercat_eoe
 │   ├── etherkit_ethernet
-│   ├── etherkit_factory
-│   ├── etherkit_modbus_tcpip
-│   ├── etherkit_modbus_uart
 │   ├── etherkit_usb_pcdc
 │   ├── etherkit_usb_pmsc
 │   ├── etherkit_component_mqtt
+│   ├── etherkit_modbus_tcpip
+│   ├── etherkit_modbus_uart
+│   ├── etherkit_ethercat_coe
+│   ├── etherkit_ethercat_eoe
 │   └── etherkit_profinet_pnet
+│   └── etherkit_ethernetip_opener
+│   ├── etherkit_factory
 └── rt-thread
 ```
 

BIN
docs/EtherKit_User_Manual.pdf


+ 2 - 0
projects/etherkit_ethernetip_opener/.api_xml

@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<ddscApi/>

+ 1320 - 0
projects/etherkit_ethernetip_opener/.config

@@ -0,0 +1,1320 @@
+
+#
+# RT-Thread Kernel
+#
+CONFIG_RT_NAME_MAX=16
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_NANO is not set
+# CONFIG_RT_USING_AMP is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
+CONFIG_RT_ALIGN_SIZE=8
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=1000
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
+# CONFIG_RT_USING_HOOKLIST is not set
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=1024
+# CONFIG_RT_USING_TIMER_SOFT is not set
+
+#
+# kservice optimization
+#
+# CONFIG_RT_KSERVICE_USING_STDLIB is not set
+# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
+# CONFIG_RT_USING_TINY_FFS is not set
+# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# end of kservice optimization
+
+CONFIG_RT_USING_DEBUG=y
+CONFIG_RT_DEBUGING_COLOR=y
+CONFIG_RT_DEBUGING_CONTEXT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set
+# CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+CONFIG_RT_USING_SMALL_MEM=y
+# CONFIG_RT_USING_SLAB is not set
+CONFIG_RT_USING_MEMHEAP=y
+CONFIG_RT_MEMHEAP_FAST_MODE=y
+# CONFIG_RT_MEMHEAP_BEST_MODE is not set
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
+CONFIG_RT_USING_HEAP=y
+# end of Memory Management
+
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+# CONFIG_RT_USING_THREADSAFE_PRINTF is not set
+# CONFIG_RT_USING_SCHED_THREAD_CTX is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=512
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
+CONFIG_RT_VER_NUM=0x50100
+# CONFIG_RT_USING_STDC_ATOMIC is not set
+CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
+# end of RT-Thread Kernel
+
+CONFIG_RT_USING_HW_ATOMIC=y
+CONFIG_ARCH_ARM=y
+CONFIG_ARCH_ARM_CORTEX_R=y
+CONFIG_ARCH_ARM_CORTEX_R52=y
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+# CONFIG_RT_USING_LEGACY is not set
+CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=4096
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_ARG_MAX=10
+CONFIG_FINSH_USING_OPTION_COMPLETION=y
+
+#
+# DFS: device virtual file system
+#
+CONFIG_RT_USING_DFS=y
+CONFIG_DFS_USING_POSIX=y
+CONFIG_DFS_USING_WORKDIR=y
+# CONFIG_RT_USING_DFS_MNTTABLE is not set
+CONFIG_DFS_FD_MAX=16
+CONFIG_RT_USING_DFS_V1=y
+# CONFIG_RT_USING_DFS_V2 is not set
+CONFIG_DFS_FILESYSTEMS_MAX=4
+CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
+# CONFIG_RT_USING_DFS_ELMFAT is not set
+CONFIG_RT_USING_DFS_DEVFS=y
+# CONFIG_RT_USING_DFS_ROMFS is not set
+# CONFIG_RT_USING_DFS_CROMFS is not set
+CONFIG_RT_USING_DFS_RAMFS=y
+# CONFIG_RT_USING_DFS_TMPFS is not set
+# CONFIG_RT_USING_DFS_MQUEUE is not set
+# CONFIG_RT_USING_DFS_NFS is not set
+# end of DFS: device virtual file system
+
+# CONFIG_RT_USING_FAL is not set
+
+#
+# Device Drivers
+#
+# CONFIG_RT_USING_DM is not set
+CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_UNAMED_PIPE_NUMBER=64
+CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
+CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
+CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
+CONFIG_RT_USING_SERIAL=y
+# CONFIG_RT_USING_SERIAL_V1 is not set
+CONFIG_RT_USING_SERIAL_V2=y
+CONFIG_RT_SERIAL_USING_DMA=y
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_NULL is not set
+# CONFIG_RT_USING_ZERO is not set
+# CONFIG_RT_USING_RANDOM is not set
+# CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+# CONFIG_RT_USING_SPI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_LCD is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_DEV_BUS is not set
+# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_VIRTIO is not set
+CONFIG_RT_USING_PIN=y
+CONFIG_RT_USING_KTIME=y
+# CONFIG_RT_USING_HWTIMER is not set
+
+#
+# Using USB
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB
+# end of Device Drivers
+
+#
+# C/C++ and POSIX layer
+#
+
+#
+# ISO-ANSI C layer
+#
+
+#
+# Timezone and Daylight Saving Time
+#
+# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set
+# CONFIG_RT_LIBC_USING_LIGHT_TZ_DST is not set
+# end of Timezone and Daylight Saving Time
+# end of ISO-ANSI C layer
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+CONFIG_RT_USING_POSIX_FS=y
+CONFIG_RT_USING_POSIX_DEVIO=y
+CONFIG_RT_USING_POSIX_STDIO=y
+CONFIG_RT_USING_POSIX_POLL=y
+CONFIG_RT_USING_POSIX_SELECT=y
+# CONFIG_RT_USING_POSIX_EVENTFD is not set
+# CONFIG_RT_USING_POSIX_TIMERFD is not set
+CONFIG_RT_USING_POSIX_SOCKET=y
+# CONFIG_RT_USING_POSIX_TERMIOS is not set
+# CONFIG_RT_USING_POSIX_AIO is not set
+# CONFIG_RT_USING_POSIX_MMAN is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Interprocess Communication (IPC)
+#
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
+
+#
+# Socket is in the 'Network' category
+#
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
+# CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
+
+#
+# Network
+#
+CONFIG_RT_USING_SAL=y
+CONFIG_SAL_INTERNET_CHECK=y
+
+#
+# Docking with protocol stacks
+#
+CONFIG_SAL_USING_LWIP=y
+# CONFIG_SAL_USING_AT is not set
+# CONFIG_SAL_USING_TLS is not set
+# end of Docking with protocol stacks
+
+CONFIG_SAL_USING_POSIX=y
+CONFIG_RT_USING_NETDEV=y
+CONFIG_NETDEV_USING_IFCONFIG=y
+CONFIG_NETDEV_USING_PING=y
+CONFIG_NETDEV_USING_NETSTAT=y
+CONFIG_NETDEV_USING_AUTO_DEFAULT=y
+# CONFIG_NETDEV_USING_IPV6 is not set
+CONFIG_NETDEV_IPV4=1
+CONFIG_NETDEV_IPV6=0
+CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
+# CONFIG_RT_USING_LWIP141 is not set
+CONFIG_RT_USING_LWIP203=y
+# CONFIG_RT_USING_LWIP212 is not set
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20003
+# CONFIG_RT_USING_LWIP_IPV6 is not set
+CONFIG_RT_LWIP_MEM_ALIGNMENT=4
+CONFIG_RT_LWIP_IGMP=y
+CONFIG_RT_LWIP_ICMP=y
+CONFIG_RT_LWIP_SNMP=y
+CONFIG_RT_LWIP_DNS=y
+# CONFIG_RT_LWIP_DHCP is not set
+
+#
+# Static IPv4 Address
+#
+CONFIG_RT_LWIP_IPADDR="192.168.10.100"
+CONFIG_RT_LWIP_GWADDR="192.168.10.1"
+CONFIG_RT_LWIP_MSKADDR="255.255.255.0"
+# end of Static IPv4 Address
+
+CONFIG_RT_LWIP_UDP=y
+CONFIG_RT_LWIP_TCP=y
+CONFIG_RT_LWIP_RAW=y
+# CONFIG_RT_LWIP_PPP is not set
+CONFIG_RT_MEMP_NUM_NETCONN=8
+CONFIG_RT_LWIP_PBUF_NUM=16
+CONFIG_RT_LWIP_RAW_PCB_NUM=4
+CONFIG_RT_LWIP_UDP_PCB_NUM=4
+CONFIG_RT_LWIP_TCP_PCB_NUM=4
+CONFIG_RT_LWIP_TCP_SEG_NUM=40
+CONFIG_RT_LWIP_TCP_SND_BUF=8196
+CONFIG_RT_LWIP_TCP_WND=8196
+CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=10
+CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=8
+CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=4096
+# CONFIG_LWIP_NO_RX_THREAD is not set
+# CONFIG_LWIP_NO_TX_THREAD is not set
+CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
+CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=1024
+CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
+# CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
+CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
+CONFIG_LWIP_NETIF_LINK_CALLBACK=1
+CONFIG_RT_LWIP_NETIF_NAMESIZE=6
+CONFIG_SO_REUSE=1
+CONFIG_LWIP_SO_RCVTIMEO=1
+CONFIG_LWIP_SO_SNDTIMEO=1
+CONFIG_LWIP_SO_RCVBUF=1
+CONFIG_LWIP_SO_LINGER=0
+# CONFIG_RT_LWIP_NETIF_LOOPBACK is not set
+CONFIG_LWIP_NETIF_LOOPBACK=0
+CONFIG_RT_LWIP_STATS=y
+# CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
+CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
+# CONFIG_RT_LWIP_ENABLE_USER_HOOKS is not set
+# CONFIG_RT_LWIP_DEBUG is not set
+# CONFIG_RT_USING_AT is not set
+# end of Network
+
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+# end of Memory protection
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RESOURCE_ID is not set
+# CONFIG_RT_USING_ADT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
+# CONFIG_RT_USING_VBUS is not set
+# end of RT-Thread Components
+
+#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+# end of RT-Thread Utestcases
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_NANOPB is not set
+# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+# end of Marvell WiFi
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# end of Wiced WiFi
+
+# CONFIG_PKG_USING_RW007 is not set
+
+#
+# CYW43012 WiFi
+#
+# CONFIG_PKG_USING_WLAN_CYW43012 is not set
+# end of CYW43012 WiFi
+
+#
+# BL808 WiFi
+#
+# CONFIG_PKG_USING_WLAN_BL808 is not set
+# end of BL808 WiFi
+
+#
+# CYW43439 WiFi
+#
+# CONFIG_PKG_USING_WLAN_CYW43439 is not set
+# end of CYW43439 WiFi
+# end of Wi-Fi
+
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+# CONFIG_PKG_USING_NMEALIB is not set
+# CONFIG_PKG_USING_PDULIB is not set
+# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_BT_CYW43012 is not set
+# CONFIG_PKG_USING_CYW43XX is not set
+# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
+# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
+# CONFIG_PKG_USING_MAVLINK is not set
+# CONFIG_PKG_USING_BSAL is not set
+# CONFIG_PKG_USING_AGILE_MODBUS is not set
+# CONFIG_PKG_USING_AGILE_FTP is not set
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_RYANMQTT is not set
+# CONFIG_PKG_USING_RYANW5500 is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
+# CONFIG_PKG_USING_WOL is not set
+# CONFIG_PKG_USING_ZEPHYR_POLLING is not set
+# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
+# CONFIG_PKG_USING_LHC_MODBUS is not set
+# CONFIG_PKG_USING_QMODBUS is not set
+# CONFIG_PKG_USING_PNET is not set
+CONFIG_PKG_USING_OPENER=y
+CONFIG_PKG_OPENER_PATH="/packages/iot/OpENer"
+CONFIG_PKG_OPENER_HOSTNAME="rtthreaddev"
+CONFIG_PKG_OPENER_WITH_TRACES=y
+CONFIG_PKG_OPENER_TRACE_LEVEL=3
+CONFIG_PKG_OPENER_ETHERNET_BUFFER_SIZE=512
+CONFIG_OPENER_DEVICE_VENDOR_ID=1
+CONFIG_OPENER_DEVICE_TYPE=12
+CONFIG_OPENER_DEVICE_PRODUCT_CODE=65001
+CONFIG_OPENER_DEVICE_MAJOR_REVISION=2
+CONFIG_OPENER_DEVICE_MINOR_REVISION=3
+CONFIG_OPENER_DEVICE_NAME="OpENer PC"
+CONFIG_PKG_USING_OPENER_LATEST_VERSION=y
+CONFIG_PKG_OPENER_VER="latest"
+CONFIG_PKG_OPENER_VER_NUM=0x99999
+CONFIG_PKG_USING_OPENER_PORT=y
+CONFIG_PKG_OPENER_PORT_PATH="/packages/iot/OpENer/OpENer_port"
+CONFIG_PKG_USING_OPENER_PORT_LATEST_VERSION=y
+CONFIG_PKG_OPENER_PORT_VER="latest"
+CONFIG_PKG_OPENER_PORT_VER_NUM=0x99999
+# end of IoT - internet of things
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
+
+#
+# language packages
+#
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+# CONFIG_PKG_USING_PARSON is not set
+# CONFIG_PKG_USING_RYAN_JSON is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
+# CONFIG_PKG_USING_LUATOS_SOC is not set
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
+
+#
+# multimedia packages
+#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_3GPP_AMRNB is not set
+# end of multimedia packages
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_LOGMGR is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# CONFIG_PKG_USING_ANV_BENCH is not set
+# CONFIG_PKG_USING_DEVMEM is not set
+# CONFIG_PKG_USING_REGEX is not set
+# CONFIG_PKG_USING_MEM_SANDBOX is not set
+# CONFIG_PKG_USING_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
+# CONFIG_PKG_USING_VOFA_PLUS is not set
+# CONFIG_PKG_USING_ZDEBUG is not set
+# CONFIG_PKG_USING_RVBACKTRACE is not set
+# CONFIG_PKG_USING_HPATCHLITE is not set
+# end of tools packages
+
+#
+# system packages
+#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
+
+# CONFIG_PKG_USING_AUNITY is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_CORE is not set
+# CONFIG_PKG_USING_CMSIS_DSP is not set
+# CONFIG_PKG_USING_CMSIS_NN is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# CONFIG_PKG_USING_UC_CLK is not set
+# CONFIG_PKG_USING_UC_COMMON is not set
+# CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
+# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
+# CONFIG_PKG_USING_LITEOS_SDK is not set
+# CONFIG_PKG_USING_TZ_DATABASE is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
+# CONFIG_PKG_USING_FILEX is not set
+# CONFIG_PKG_USING_LEVELX is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_DFS_JFFS2 is not set
+# CONFIG_PKG_USING_DFS_UFFS is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_RPMSG_LITE is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_CHERRYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
+# CONFIG_PKG_USING_AGILE_UPGRADE is not set
+# CONFIG_PKG_USING_FLASH_BLOB is not set
+# CONFIG_PKG_USING_MLIBC is not set
+# CONFIG_PKG_USING_TASK_MSG_BUS is not set
+# CONFIG_PKG_USING_UART_FRAMEWORK is not set
+# CONFIG_PKG_USING_SFDB is not set
+# CONFIG_PKG_USING_RTP is not set
+# CONFIG_PKG_USING_REB is not set
+# CONFIG_PKG_USING_RMP is not set
+# CONFIG_PKG_USING_R_RHEALSTONE is not set
+# CONFIG_PKG_USING_HEARTBEAT is not set
+# end of system packages
+
+#
+# peripheral libraries and drivers
+#
+
+#
+# HAL & SDK Drivers
+#
+
+#
+# STM32 HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# end of STM32 HAL & SDK Drivers
+
+#
+# Infineon HAL Packages
+#
+# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set
+# CONFIG_PKG_USING_INFINEON_CMSIS is not set
+# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set
+# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set
+# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set
+# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set
+# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set
+# CONFIG_PKG_USING_INFINEON_USBDEV is not set
+# end of Infineon HAL Packages
+
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_ESP_IDF is not set
+
+#
+# Kendryte SDK
+#
+# CONFIG_PKG_USING_K210_SDK is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# end of Kendryte SDK
+
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
+# end of HAL & SDK Drivers
+
+#
+# sensors drivers
+#
+# CONFIG_PKG_USING_LSM6DSM is not set
+# CONFIG_PKG_USING_LSM6DSL is not set
+# CONFIG_PKG_USING_LPS22HB is not set
+# CONFIG_PKG_USING_HTS221 is not set
+# CONFIG_PKG_USING_LSM303AGR is not set
+# CONFIG_PKG_USING_BME280 is not set
+# CONFIG_PKG_USING_BME680 is not set
+# CONFIG_PKG_USING_BMA400 is not set
+# CONFIG_PKG_USING_BMI160_BMX160 is not set
+# CONFIG_PKG_USING_SPL0601 is not set
+# CONFIG_PKG_USING_MS5805 is not set
+# CONFIG_PKG_USING_DA270 is not set
+# CONFIG_PKG_USING_DF220 is not set
+# CONFIG_PKG_USING_HSHCAL001 is not set
+# CONFIG_PKG_USING_BH1750 is not set
+# CONFIG_PKG_USING_MPU6XXX is not set
+# CONFIG_PKG_USING_AHT10 is not set
+# CONFIG_PKG_USING_AP3216C is not set
+# CONFIG_PKG_USING_TSL4531 is not set
+# CONFIG_PKG_USING_DS18B20 is not set
+# CONFIG_PKG_USING_DHT11 is not set
+# CONFIG_PKG_USING_DHTXX is not set
+# CONFIG_PKG_USING_GY271 is not set
+# CONFIG_PKG_USING_GP2Y10 is not set
+# CONFIG_PKG_USING_SGP30 is not set
+# CONFIG_PKG_USING_HDC1000 is not set
+# CONFIG_PKG_USING_BMP180 is not set
+# CONFIG_PKG_USING_BMP280 is not set
+# CONFIG_PKG_USING_SHTC1 is not set
+# CONFIG_PKG_USING_BMI088 is not set
+# CONFIG_PKG_USING_HMC5883 is not set
+# CONFIG_PKG_USING_MAX6675 is not set
+# CONFIG_PKG_USING_TMP1075 is not set
+# CONFIG_PKG_USING_SR04 is not set
+# CONFIG_PKG_USING_CCS811 is not set
+# CONFIG_PKG_USING_PMSXX is not set
+# CONFIG_PKG_USING_RT3020 is not set
+# CONFIG_PKG_USING_MLX90632 is not set
+# CONFIG_PKG_USING_MLX90393 is not set
+# CONFIG_PKG_USING_MLX90392 is not set
+# CONFIG_PKG_USING_MLX90394 is not set
+# CONFIG_PKG_USING_MLX90397 is not set
+# CONFIG_PKG_USING_MS5611 is not set
+# CONFIG_PKG_USING_MAX31865 is not set
+# CONFIG_PKG_USING_VL53L0X is not set
+# CONFIG_PKG_USING_INA260 is not set
+# CONFIG_PKG_USING_MAX30102 is not set
+# CONFIG_PKG_USING_INA226 is not set
+# CONFIG_PKG_USING_LIS2DH12 is not set
+# CONFIG_PKG_USING_HS300X is not set
+# CONFIG_PKG_USING_ZMOD4410 is not set
+# CONFIG_PKG_USING_ISL29035 is not set
+# CONFIG_PKG_USING_MMC3680KJ is not set
+# CONFIG_PKG_USING_QMP6989 is not set
+# CONFIG_PKG_USING_BALANCE is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_SHT4X is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_ADT74XX is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_STHS34PF80 is not set
+# end of sensors drivers
+
+#
+# touch drivers
+#
+# CONFIG_PKG_USING_GT9147 is not set
+# CONFIG_PKG_USING_GT1151 is not set
+# CONFIG_PKG_USING_GT917S is not set
+# CONFIG_PKG_USING_GT911 is not set
+# CONFIG_PKG_USING_FT6206 is not set
+# CONFIG_PKG_USING_FT5426 is not set
+# CONFIG_PKG_USING_FT6236 is not set
+# CONFIG_PKG_USING_XPT2046_TOUCH is not set
+# CONFIG_PKG_USING_CST816X is not set
+# CONFIG_PKG_USING_CST812T is not set
+# end of touch drivers
+
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_ILI9341 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
+# CONFIG_PKG_USING_NES is not set
+# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
+# CONFIG_PKG_USING_VDEVICE is not set
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+# CONFIG_PKG_USING_IO_INPUT_FILTER is not set
+# CONFIG_PKG_USING_LRF_NV7LIDAR is not set
+# CONFIG_PKG_USING_AIP650 is not set
+# CONFIG_PKG_USING_FINGERPRINT is not set
+# CONFIG_PKG_USING_BT_ECB02C is not set
+# CONFIG_PKG_USING_UAT is not set
+# CONFIG_PKG_USING_ST7789 is not set
+# CONFIG_PKG_USING_VS1003 is not set
+# CONFIG_PKG_USING_X9555 is not set
+# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
+# CONFIG_PKG_USING_BT_MX01 is not set
+# CONFIG_PKG_USING_RGPOWER is not set
+# CONFIG_PKG_USING_BT_MX02 is not set
+# CONFIG_PKG_USING_GC9A01 is not set
+# CONFIG_PKG_USING_IK485 is not set
+# CONFIG_PKG_USING_SPI_TOOLS is not set
+# end of peripheral libraries and drivers
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
+# CONFIG_PKG_USING_R_TINYMAIX is not set
+# end of AI packages
+
+#
+# Signal Processing and Control Algorithm Packages
+#
+# CONFIG_PKG_USING_APID is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+# CONFIG_PKG_USING_QPID is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_KISSFFT is not set
+# end of Signal Processing and Control Algorithm Packages
+
+#
+# miscellaneous packages
+#
+
+#
+# project laboratory
+#
+# end of project laboratory
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# end of samples: kernel and components samples
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_MORSE is not set
+# end of entertainment: terminal games and other interesting software packages
+
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
+# CONFIG_PKG_USING_RALARAM is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_KI is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+# CONFIG_PKG_USING_QPARAM is not set
+# CONFIG_PKG_USING_CorevMCU_CLI is not set
+# end of miscellaneous packages
+
+#
+# Arduino libraries
+#
+# CONFIG_PKG_USING_RTDUINO is not set
+
+#
+# Projects and Demos
+#
+# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
+# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set
+# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
+# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set
+# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
+# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
+# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
+# end of Projects and Demos
+
+#
+# Sensors
+#
+# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
+# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set
+# end of Sensors
+
+#
+# Display
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
+# CONFIG_PKG_USING_ARDUINO_U8G2 is not set
+# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
+# CONFIG_PKG_USING_SEEED_TM1637 is not set
+# end of Display
+
+#
+# Timing
+#
+# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
+# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
+# CONFIG_PKG_USING_ARDUINO_TICKER is not set
+# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
+# end of Timing
+
+#
+# Data Processing
+#
+# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
+# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
+# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set
+# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set
+# end of Data Processing
+
+#
+# Data Storage
+#
+
+#
+# Communication
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set
+# end of Communication
+
+#
+# Device Control
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
+# end of Device Control
+
+#
+# Other
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
+# end of Other
+
+#
+# Signal IO
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set
+# end of Signal IO
+
+#
+# Uncategorized
+#
+# end of Arduino libraries
+# end of RT-Thread online packages
+
+CONFIG_SOC_FAMILY_RENESAS_RZ=y
+CONFIG_SOC_SERIES_R9A07G0=y
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_R9A07G084=y
+
+#
+# Onboard Peripheral Drivers
+#
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+CONFIG_BSP_USING_UART=y
+CONFIG_BSP_USING_UART0=y
+# CONFIG_BSP_UART0_RX_USING_DMA is not set
+# CONFIG_BSP_UART0_TX_USING_DMA is not set
+CONFIG_BSP_UART0_RX_BUFSIZE=256
+CONFIG_BSP_UART0_TX_BUFSIZE=0
+# CONFIG_BSP_USING_UART5 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_CANFD is not set
+# CONFIG_BSP_USING_SCI is not set
+# CONFIG_BSP_USING_HYPERRAM is not set
+# CONFIG_BSP_USING_I2C is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_PWM is not set
+CONFIG_BSP_USING_ETH=y
+# end of On-chip Peripheral Drivers
+
+#
+# Board extended module Drivers
+#
+# CONFIG_BSP_USING_RW007 is not set
+# end of Board extended module Drivers
+# end of Hardware Drivers Config

Разлика између датотеке није приказан због своје велике величине
+ 241 - 0
projects/etherkit_ethernetip_opener/.cproject


+ 14 - 0
projects/etherkit_ethernetip_opener/.gitignore

@@ -0,0 +1,14 @@
+/RTE
+/Listings
+/Objects
+/Debug
+/build
+/makefile.targets
+/rtconfig.pyc
+/rt-thread
+/libraries
+/project.custom_argvars
+/.vscode
+/__pycache
+/settings
+/rtconfig_preinc.h

+ 28 - 0
projects/etherkit_ethernetip_opener/.project

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+  <name>project</name>
+  <comment />
+  <projects>
+    </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+      <triggers>clean,full,incremental,</triggers>
+      <arguments>
+            </arguments>
+    </buildCommand>
+    <buildCommand>
+      <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+      <triggers>full,incremental,</triggers>
+      <arguments>
+            </arguments>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.cdt.core.cnature</nature>
+    <nature>org.rt-thread.studio.rttnature</nature>
+    <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+    <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+  </natures>
+  <linkedResources />
+</projectDescription>

+ 4 - 0
projects/etherkit_ethernetip_opener/.secure_azone

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<azone>
+    <rzone name="R9A07G084M04GBG.rzone"/>
+</azone>

+ 153 - 0
projects/etherkit_ethernetip_opener/.secure_xml

@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<raConfiguration version="9">
+  <generalSettings>
+    <option key="#Board#" value="board.rzn2lrsk.xspi0_x1"/>
+    <option key="CPU" value="RZN2L"/>
+    <option key="Core" value="CR52_0"/>
+    <option key="#TargetName#" value="R9A07G084M04GBG"/>
+    <option key="#TargetARCHITECTURE#" value="cortex-r52"/>
+    <option key="#DeviceCommand#" value="R9A07G084M04"/>
+    <option key="#RTOS#" value="_none"/>
+    <option key="#pinconfiguration#" value="R9A07G084M04GBG.pincfg"/>
+    <option key="#FSPVersion#" value="2.0.0"/>
+    <option key="#ConfigurationFragments#" value="Renesas##BSP##Board##rzn2l_rsk##xspi0_x1_boot"/>
+    <option key="#SELECTED_TOOLCHAIN#" value="iar.arm.toolchain"/>
+  </generalSettings>
+  <raBspConfiguration/>
+  <raClockConfiguration>
+    <node id="board.clock.main.freq" option="board.clock.main.freq.25m"/>
+    <node id="board.clock.loco.enable" option="board.clock.loco.enable.enabled"/>
+    <node id="board.clock.pll0.display" option="board.clock.pll0.display.value"/>
+    <node id="board.clock.pll1" option="board.clock.pll1.initial"/>
+    <node id="board.clock.pll1.display" option="board.clock.pll1.display.value"/>
+    <node id="board.clock.ethernet.source" option="board.clock.ethernet.source.main"/>
+    <node id="board.clock.reference.display" option="board.clock.reference.display.value"/>
+    <node id="board.clock.loco.freq" option="board.clock.loco.freq.240k"/>
+    <node id="board.clock.clma0.enable" option="board.clock.clma0.enable.enabled"/>
+    <node id="board.clock.clma0.error" option="board.clock.clma0.error.not_mask"/>
+    <node id="board.clock.clma3.error" option="board.clock.clma3.error.not_mask"/>
+    <node id="board.clock.clma1.error" option="board.clock.clma1.error.mask"/>
+    <node id="board.clock.clma3.enable" option="board.clock.clma3.enable.enabled"/>
+    <node id="board.clock.clma1.enable" option="board.clock.clma1.enable.enabled"/>
+    <node id="board.clock.clma2.enable" option="board.clock.clma2.enable.enabled"/>
+    <node id="board.clock.clma0.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma1.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma2.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma3.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.alternative.source" option="board.clock.alternative.source.loco"/>
+    <node id="board.clock.clma0.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma1.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma2.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma3.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.iclk.freq" option="board.clock.iclk.freq.200m"/>
+    <node id="board.clock.cpu0clk.mul" option="board.clock.cpu0clk.mul.2"/>
+    <node id="board.clock.cpu0clk.display" option="board.clock.cpu0clk.display.value"/>
+    <node id="board.clock.ckio.div" option="board.clock.ckio.div.4"/>
+    <node id="board.clock.ckio.display" option="board.clock.ckio.display.value"/>
+    <node id="board.clock.sci0asyncclk.sel" option="board.clock.sci0asyncclk.sel.1"/>
+    <node id="board.clock.sci1asyncclk.sel" option="board.clock.sci1asyncclk.sel.1"/>
+    <node id="board.clock.sci2asyncclk.sel" option="board.clock.sci2asyncclk.sel.1"/>
+    <node id="board.clock.sci3asyncclk.sel" option="board.clock.sci3asyncclk.sel.1"/>
+    <node id="board.clock.sci4asyncclk.sel" option="board.clock.sci4asyncclk.sel.1"/>
+    <node id="board.clock.sci5asyncclk.sel" option="board.clock.sci5asyncclk.sel.1"/>
+    <node id="board.clock.spi0asyncclk.sel" option="board.clock.spi0asyncclk.sel.1"/>
+    <node id="board.clock.spi1asyncclk.sel" option="board.clock.spi1asyncclk.sel.1"/>
+    <node id="board.clock.spi2asyncclk.sel" option="board.clock.spi2asyncclk.sel.1"/>
+    <node id="board.clock.spi3asyncclk.sel" option="board.clock.spi3asyncclk.sel.1"/>
+    <node id="board.clock.pclkshost.display" option="board.clock.pclkshost.display.value"/>
+    <node id="board.clock.pclkgptl.display" option="board.clock.pclkgptl.display.value"/>
+    <node id="board.clock.pclkh.display" option="board.clock.pclkh.display.value"/>
+    <node id="board.clock.pclkm.display" option="board.clock.pclkm.display.value"/>
+    <node id="board.clock.pclkl.display" option="board.clock.pclkl.display.value"/>
+    <node id="board.clock.pclkadc.display" option="board.clock.pclkadc.display.value"/>
+    <node id="board.clock.pclkcan.freq" option="board.clock.pclkcan.freq.40m"/>
+    <node id="board.clock.xspi.clk0.freq" option="board.clock.xspi.clk0.freq.133m"/>
+    <node id="board.clock.xspi.clk1.freq" option="board.clock.xspi.clk1.freq.12m"/>
+    <node id="board.clock.tclk.freq" option="board.clock.tclk.freq.100m"/>
+  </raClockConfiguration>
+  <raPinConfiguration>
+    <pincfg active="true" name="" symbol="">
+      <configSetting altId="canfd0.canrx0.p01_7" configurationId="canfd0.canrx0"/>
+      <configSetting altId="canfd0.cantx0.p02_2" configurationId="canfd0.cantx0"/>
+      <configSetting altId="ether_eth0.eth0_refclk.p09_1" configurationId="ether_eth0.eth0_refclk"/>
+      <configSetting altId="ether_eth0.eth0_rxclk_ref_clk_rxc.p08_6" configurationId="ether_eth0.eth0_rxclk_ref_clk_rxc"/>
+      <configSetting altId="ether_eth0.eth0_rxd0.p10_1" configurationId="ether_eth0.eth0_rxd0"/>
+      <configSetting altId="ether_eth0.eth0_rxd1.p10_2" configurationId="ether_eth0.eth0_rxd1"/>
+      <configSetting altId="ether_eth0.eth0_rxd2.p10_3" configurationId="ether_eth0.eth0_rxd2"/>
+      <configSetting altId="ether_eth0.eth0_rxd3.p08_4" configurationId="ether_eth0.eth0_rxd3"/>
+      <configSetting altId="ether_eth0.eth0_rxdv_crsdv_rxctl.p08_5" configurationId="ether_eth0.eth0_rxdv_crsdv_rxctl"/>
+      <configSetting altId="ether_eth0.eth0_txclk_txc.p09_7" configurationId="ether_eth0.eth0_txclk_txc"/>
+      <configSetting altId="ether_eth0.eth0_txd0.p09_6" configurationId="ether_eth0.eth0_txd0"/>
+      <configSetting altId="ether_eth0.eth0_txd1.p09_5" configurationId="ether_eth0.eth0_txd1"/>
+      <configSetting altId="ether_eth0.eth0_txd2.p09_4" configurationId="ether_eth0.eth0_txd2"/>
+      <configSetting altId="ether_eth0.eth0_txd3.p09_3" configurationId="ether_eth0.eth0_txd3"/>
+      <configSetting altId="ether_eth0.eth0_txen_txctl.p10_0" configurationId="ether_eth0.eth0_txen_txctl"/>
+      <configSetting altId="ether_eth1.eth1_refclk.p06_1" configurationId="ether_eth1.eth1_refclk"/>
+      <configSetting altId="ether_eth1.eth1_rxclk_ref_clk_rxc.p07_3" configurationId="ether_eth1.eth1_rxclk_ref_clk_rxc"/>
+      <configSetting altId="ether_eth1.eth1_rxd0.p06_6" configurationId="ether_eth1.eth1_rxd0"/>
+      <configSetting altId="ether_eth1.eth1_rxd1.p06_7" configurationId="ether_eth1.eth1_rxd1"/>
+      <configSetting altId="ether_eth1.eth1_rxd2.p07_0" configurationId="ether_eth1.eth1_rxd2"/>
+      <configSetting altId="ether_eth1.eth1_rxd3.p07_1" configurationId="ether_eth1.eth1_rxd3"/>
+      <configSetting altId="ether_eth1.eth1_rxdv_crsdv_rxctl.p07_2" configurationId="ether_eth1.eth1_rxdv_crsdv_rxctl"/>
+      <configSetting altId="ether_eth1.eth1_txclk_txc.p06_4" configurationId="ether_eth1.eth1_txclk_txc"/>
+      <configSetting altId="ether_eth1.eth1_txd0.p06_3" configurationId="ether_eth1.eth1_txd0"/>
+      <configSetting altId="ether_eth1.eth1_txd1.p06_2" configurationId="ether_eth1.eth1_txd1"/>
+      <configSetting altId="ether_eth1.eth1_txd2.p05_7" configurationId="ether_eth1.eth1_txd2"/>
+      <configSetting altId="ether_eth1.eth1_txd3.p06_0" configurationId="ether_eth1.eth1_txd3"/>
+      <configSetting altId="ether_eth1.eth1_txen_txctl.p06_5" configurationId="ether_eth1.eth1_txen_txctl"/>
+      <configSetting altId="ether_gmac.gmac_mdc.p08_7" configurationId="ether_gmac.gmac_mdc"/>
+      <configSetting altId="ether_gmac.gmac_mdio.p09_0" configurationId="ether_gmac.gmac_mdio"/>
+      <configSetting altId="iic0.iic_scl0.p13_2" configurationId="iic0.iic_scl0"/>
+      <configSetting altId="iic0.iic_sda0.p13_3" configurationId="iic0.iic_sda0"/>
+      <configSetting altId="iic1.iic_scl1.p05_2" configurationId="iic1.iic_scl1"/>
+      <configSetting altId="iic1.iic_sda1.p05_3" configurationId="iic1.iic_sda1"/>
+      <configSetting altId="jtag_fslash_swd.tck_swclk.p02_7" configurationId="jtag_fslash_swd.tck_swclk" isUsedByDriver="true"/>
+      <configSetting altId="jtag_fslash_swd.tdi.p02_5" configurationId="jtag_fslash_swd.tdi" isUsedByDriver="true"/>
+      <configSetting altId="jtag_fslash_swd.tdo.p02_4" configurationId="jtag_fslash_swd.tdo" isUsedByDriver="true"/>
+      <configSetting altId="jtag_fslash_swd.tms_swdio.p02_6" configurationId="jtag_fslash_swd.tms_swdio" isUsedByDriver="true"/>
+      <configSetting altId="p03_0.output.low" configurationId="p03_0"/>
+      <configSetting altId="p04_1.output.low" configurationId="p04_1"/>
+      <configSetting altId="p04_4.output.low" configurationId="p04_4"/>
+      <configSetting altId="p05_0.output.low" configurationId="p05_0"/>
+      <configSetting altId="p05_4.input" configurationId="p05_4"/>
+      <configSetting altId="p13_4.output.low" configurationId="p13_4"/>
+      <configSetting altId="p13_5.input" configurationId="p13_5"/>
+      <configSetting altId="p13_6.input" configurationId="p13_6"/>
+      <configSetting altId="p13_7.input" configurationId="p13_7"/>
+      <configSetting altId="p14_0.output.low" configurationId="p14_0"/>
+      <configSetting altId="p14_1.output.low" configurationId="p14_1"/>
+      <configSetting altId="p14_3.output.low" configurationId="p14_3"/>
+      <configSetting altId="p16_3.input" configurationId="p16_3"/>
+      <configSetting altId="p17_3.output.low" configurationId="p17_3"/>
+      <configSetting altId="p18_2.output.low" configurationId="p18_2"/>
+      <configSetting altId="p22_1.output.low" configurationId="p22_1"/>
+      <configSetting altId="p22_3.output.low" configurationId="p22_3"/>
+      <configSetting altId="sci0.rxd_miso0.p16_6" configurationId="sci0.rxd_miso0" isUsedByDriver="true"/>
+      <configSetting altId="sci0.txd_mosi0.p16_5" configurationId="sci0.txd_mosi0" isUsedByDriver="true"/>
+      <configSetting altId="sci3.rxd_miso3.p17_7" configurationId="sci3.rxd_miso3"/>
+      <configSetting altId="sci3.txd_mosi3.p18_0" configurationId="sci3.txd_mosi3"/>
+      <configSetting altId="spi2.spi_miso2.p18_6" configurationId="spi2.spi_miso2"/>
+      <configSetting altId="spi2.spi_mosi2.p18_5" configurationId="spi2.spi_mosi2"/>
+      <configSetting altId="spi2.spi_rspck2.p18_4" configurationId="spi2.spi_rspck2"/>
+      <configSetting altId="spi2.spi_ssl20.p21_1" configurationId="spi2.spi_ssl20"/>
+      <configSetting altId="usb_hs.usb_ovrcur.p17_5" configurationId="usb_hs.usb_ovrcur"/>
+      <configSetting altId="usb_hs.usb_vbusen.p19_0" configurationId="usb_hs.usb_vbusen"/>
+      <configSetting altId="usb_hs.usb_vbusin.p07_4" configurationId="usb_hs.usb_vbusin"/>
+      <configSetting altId="xspi0.xspi0_ckn.p14_5" configurationId="xspi0.xspi0_ckn"/>
+      <configSetting altId="xspi0.xspi0_ckp.p14_6" configurationId="xspi0.xspi0_ckp"/>
+      <configSetting altId="xspi0.xspi0_cs0_hash.p15_7" configurationId="xspi0.xspi0_cs0_hash"/>
+      <configSetting altId="xspi0.xspi0_cs1_hash.p16_0" configurationId="xspi0.xspi0_cs1_hash"/>
+      <configSetting altId="xspi0.xspi0_ds.p14_4" configurationId="xspi0.xspi0_ds"/>
+      <configSetting altId="xspi0.xspi0_ecs0_hash.p14_2" configurationId="xspi0.xspi0_ecs0_hash"/>
+      <configSetting altId="xspi0.xspi0_io0.p14_7" configurationId="xspi0.xspi0_io0"/>
+      <configSetting altId="xspi0.xspi0_io1.p15_0" configurationId="xspi0.xspi0_io1"/>
+      <configSetting altId="xspi0.xspi0_io2.p15_1" configurationId="xspi0.xspi0_io2"/>
+      <configSetting altId="xspi0.xspi0_io3.p15_2" configurationId="xspi0.xspi0_io3"/>
+      <configSetting altId="xspi0.xspi0_io4.p15_3" configurationId="xspi0.xspi0_io4"/>
+      <configSetting altId="xspi0.xspi0_io5.p15_4" configurationId="xspi0.xspi0_io5"/>
+      <configSetting altId="xspi0.xspi0_io6.p15_5" configurationId="xspi0.xspi0_io6"/>
+      <configSetting altId="xspi0.xspi0_io7.p15_6" configurationId="xspi0.xspi0_io7"/>
+      <configSetting altId="xspi0.xspi0_reset0_hash.p16_1" configurationId="xspi0.xspi0_reset0_hash"/>
+    </pincfg>
+  </raPinConfiguration>
+</raConfiguration>

BIN
projects/etherkit_ethernetip_opener/.settings/.rtmenus


+ 2 - 0
projects/etherkit_ethernetip_opener/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+toolchain.path.1287942917=${toolchain_install_path}/ARM/GNU_Tools_for_ARM_Embedded_Processors/10.2.1/bin

+ 14 - 0
projects/etherkit_ethernetip_opener/.settings/language.settings.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project>
+	<configuration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.553091094" name="Debug">
+		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
+			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
+			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
+			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
+			<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="52880000459982421" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+				<language-scope id="org.eclipse.cdt.core.gcc"/>
+				<language-scope id="org.eclipse.cdt.core.g++"/>
+			</provider>
+		</extension>
+	</configuration>
+</project>

+ 2 - 0
projects/etherkit_ethernetip_opener/.settings/local_temp_storage.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+temp.toolchain.exec.path=D\:\\manufacture_apps\\RT-ThreadStudio\\repo\\Extract\\ToolChain_Support_Packages\\ARM\\GNU_Tools_for_ARM_Embedded_Processors\\10.2.1/bin

+ 3 - 0
projects/etherkit_ethernetip_opener/.settings/org.eclipse.core.runtime.prefs

@@ -0,0 +1,3 @@
+content-types/enabled=true
+content-types/org.eclipse.cdt.core.asmSource/file-extensions=s
+eclipse.preferences.version=1

+ 19 - 0
projects/etherkit_ethernetip_opener/.settings/projcfg.ini

@@ -0,0 +1,19 @@
+#RT-Thread Studio Project Configuration
+#Fri Feb 07 14:18:53 CST 2025
+cfg_version=v3.0
+board_name=EtherKit
+example_name=
+hardware_adapter=J-Link
+board_base_nano_proj=false
+project_type=rt-thread
+chip_name=R9A07G084
+selected_rtt_version=5.1.0
+bsp_version=1.0.0
+os_branch=5.1.0
+project_base_rtt_bsp=true
+output_project_path=D\:\\Desktop\\sdk_workspace\\sdk-bsp-rzn2l-etherkit\\projects
+is_base_example_project=true
+is_use_scons_build=true
+project_name=etherkit_profinet_pnet
+os_version=5.1.0
+bsp_path=

+ 92 - 0
projects/etherkit_ethernetip_opener/.settings/project.JLink.Debug.rttlaunch

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="ilg.gnumcueclipse.debug.gdbjtag.jlink.launchConfigurationType">
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.adapterName" value="J-Link"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.binFileStartAddress" value="0x60000000"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doConnectToRunning" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doContinue" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doDebugInRam" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doFirstReset" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerAllocateConsole" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerAllocateSemihostingConsole" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerInitRegs" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerLocalOnly" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerSilent" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerVerifyDownload" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doSecondReset" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doStartGdbServer" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableFlashBreakpoints" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSemihosting" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSemihostingIoclientGdbClient" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSemihostingIoclientTelnet" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSwo" value="true"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.eraseEndAddress" value=""/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.eraseMode" value="0"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.eraseStartAddress" value=""/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.firstResetSpeed" value="1000"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.firstResetType" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.flashDeviceName" value="STM32F103VETx"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.flashDownloadHex" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.forceQuitGdbServer" value="false"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbClientOtherCommands" value="set mem inaccessible-by-default off"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbClientOtherOptions" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerConnection" value="usb"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerConnectionAddress" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDebugInterface" value="swd"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDeviceEndianness" value="little"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDeviceName" value="R9A07G084M04"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDeviceSpeed" value="1000"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerExecutable" value="${debugger_install_path}/${jlink_debugger_relative_path}\JLinkGDBServerCL.exe"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerGdbPortNumber" value="2331"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerLog" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerOther" value="-singlerun"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerRunAfterStopDebug" value="true"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerSwoPortNumber" value="2332"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerTelnetPortNumber" value="2333"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.interfaceSpeed" value="auto"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.jlinkExecutable" value="${debugger_install_path}/${jlink_debugger_relative_path}\JLink.exe"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.otherInitCommands" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.otherRunCommands" value=""/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.runAfterDownload" value="true"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.secondResetType" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.serailBaudRate" value="115200"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.serailPort" value=""/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.swoEnableTargetCpuFreq" value="0"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.swoEnableTargetPortMask" value="0x1"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.swoEnableTargetSwoFreq" value="0"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.svdPath" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU MCU J-Link"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="2331"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${rtt_gnu_gcc}/arm-none-eabi-gdb.exe"/>
+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="0"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/rtthread.elf"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="project"/>
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/project"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.cdt.debug.core.sourceLocator"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+<stringAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING" value="UTF-8"/>
+</launchConfiguration>

Разлика између датотеке није приказан због своје велике величине
+ 9 - 0
projects/etherkit_ethernetip_opener/.settings/standalone.prefs


+ 34 - 0
projects/etherkit_ethernetip_opener/Kconfig

@@ -0,0 +1,34 @@
+mainmenu "RT-Thread Configuration"
+
+config BSP_DIR
+    string
+    option env="BSP_ROOT"
+    default "."
+
+config RTT_DIR
+    string
+    option env="RTT_ROOT"
+    default "rt-thread"
+
+# you can change the RTT_ROOT default "rt-thread"
+# example : default "F:/git_repositories/rt-thread"
+
+config PKGS_DIR
+    string
+    option env="PKGS_ROOT"
+    default "packages"
+
+config ENV_DIR
+    string
+    option env="ENV_ROOT"
+    default "/"
+
+config PLATFORM_DIR
+    string
+    option env="PLATFORM_DIR"
+    default  "D:/Desktop/sdk_workspace/sdk-bsp-rzn2l-etherkit/projects/etherkit_ethernet-ip/platform"
+
+source "$RTT_DIR/Kconfig"
+source "$PKGS_DIR/Kconfig"
+source "libraries/Kconfig"
+source "$BSP_DIR/board/Kconfig"

+ 235 - 0
projects/etherkit_ethernetip_opener/README.md

@@ -0,0 +1,235 @@
+# EtherKit Ethernet/IP Example
+
+**English** | [**中文**](./README_zh.md)
+
+## Introduction
+
+Ethernet/IP (Ethernet Industrial Protocol) is an industrial communication protocol based on standard Ethernet architecture, widely used in automation and control systems. It combines the TCP/IP protocol and the CIP (Common Industrial Protocol) standard to provide high-speed, reliable data transmission and supports real-time communication between various industrial devices. Since Ethernet/IP is compatible with existing Ethernet hardware and networks, enterprises can achieve interconnectivity between industrial devices without the need for specialized hardware, thereby enhancing production efficiency and system reliability.
+
+OpENer is the EtherNet/IP™ stack for I/O adapter devices, supporting multiple I/O and explicit connections. It includes objects and services for creating EtherNet/IP™ compatible products as defined in the Ethernet/IP specification and published by [ODVA](http://www.odva.org/).
+
+This example will use the adapted OpENer package to implement Ethernet/IP communication.
+
+## Prerequisites
+
+Software Environment:
+
+- [CODESYS](https://us.store.codesys.com/) (Ethernet/IP Communication Simulation)
+  - CODESYS
+  - CODESYS Gateway (Gateway Device)
+  - CODESYS Control Win SysTray (Soft PLC Device)
+- [Npcap](https://npcap.com/dist/npcap-1.80.exe) (This software is necessary to run CODESYS and must be installed beforehand.)
+
+Hardware Environment:
+
+- EtherKit Development Board
+
+## FSP Configuration
+
+Open the project configuration file `configuration.xml` and add the `r_gamc Stack`:
+
+![image-20241126104408737](figures/image-20241126104408737.png)
+
+Click `g_ether0 Ethernet`, and set the interrupt callback function to `user_ether0_callback`:
+
+![image-20241126104422910](figures/image-20241126104422910.png)
+
+Next, configure the PHY information, select `g_ether_phy0`, set the Common configuration to `User Own Target`; change the PHY LSI address to 1 (refer to the schematic for the specific address); set the PHY initialization callback function to `ether_phy_targets_initialize_rtl8211_rgmii()`; and set MDIO to GMAC.
+
+![image-20241126104437432](figures/image-20241126104437432.png)
+
+Configure `g_ether_selector0`, set the Ethernet mode to switch mode, set PHY link to active-low, and PHY interface mode to RGMII.
+
+![image-20241126104519290](figures/image-20241126104519290.png)
+
+Configure the NIC pin parameters, select the operation mode as RGMII:
+
+![image-20241126104533098](figures/image-20241126104533098.png)
+
+ETHER_GMAC Configuration:
+
+![image-20241213113637153](figures/image-20241213113637153.png)
+
+## RT-Thread Settings Configuration
+
+Double-click to open RT-Thread Settings, search for the OpENer package, and enable it. The following is the related user configuration information:
+
+![image-20250207165322965](figures/image-20250207165322965.png)
+
+Next, disable DHCP and use a static IP. Go to Components -> Enable lwIP stack, and select disable DHCP:
+
+![image-20250207165349686](figures/image-20250207165349686.png)
+
+After completing the configuration, compile the program and download it to the development board.
+
+## Network Configuration
+
+We use a network cable to connect the development board to the PC, and set a static IP on the PC:
+
+![image-20241217145852034](figures/image-20241217145852034.png)
+
+## Soft PLC Startup
+
+**Introduction to CODESYS:**  
+CODESYS is a PLC software developed by the German company 3S, which integrates PLC logic, motion control, configuration display, and other functionalities. CODESYS, short for "Controller Development System," is an industrial automation programming tool based on the IEC 61131-3 standard. It supports multiple programming languages (such as Ladder Logic, Structured Text, Function Block Diagram, etc.) and provides a rich set of libraries and function blocks, helping engineers rapidly develop and debug PLCs (Programmable Logic Controllers) and industrial control systems. The flexibility and powerful features of CODESYS make it a widely used development platform in the field of industrial automation.
+
+### Create a Standard Project in CODESYS
+
+Ensure that CODESYS software is installed. After installation, the following three components are required:
+
+![image-20241126114113830](figures/image-20241126114113830.png)
+
+- CODESYS V3.5 SP20 Patch 3: Ethernet/IP Communication Simulation
+- CODESYS Gateway V3: Gateway Device
+- CODESYS Control Win V3 -x64 SysTray: Soft PLC Device
+
+First, open **CODESYS V3.5 SP20 Patch 3**, then select -> New Project -> Projects -> Standard Project, and configure the project name and location before clicking OK:
+
+![image-20241126114127411](figures/image-20241126114127411.png)
+
+After the pop-up window appears, keep the default configuration (CODESYS Control Win V3 (CODESYS) / x64 (CODESYS)) and click OK:
+
+![image-20241126114137199](figures/image-20241126114137199.png)
+
+> Note: If you purchased **CODESYS Control RTE SL** (http://store.codesys.cn/codesys/store/detail.html?productId=58), you can select the device: CODESYS Control RTE V3 (CODESYS) / x64 (CODESYS). For normal evaluation purposes, you can choose not to install this extension package and create the project using the CODESYS Control Win V3 (CODESYS) / x64 (CODESYS) device.
+
+Once the project is created, the main interface will be displayed:
+
+![image-20241126114149792](figures/image-20241126114149792.png)
+
+### Gateway and Soft PLC Startup
+
+Open the following two software programs:
+
+- CODESYS Gateway V3 (Right-click Start Gateway)
+- CODESYS Control Win V3 -x64 SysTray (Right-click Start PLC)
+
+![image-20241126114204739](figures/image-20241126114204739.png)
+
+Return to the CODESYS main software, double-click **Device (CODESYS Control Win V3 x64)** -> **Communication Settings** -> **Scan Network**:
+
+![image-20241126114216032](figures/image-20241126114216032.png)
+
+A device user login window will pop up. Enter the username and password (customized by the user):
+
+![image-20241126114225267](figures/image-20241126114225267.png)
+
+Check whether the gateway device and soft PLC device are online:
+
+![image-20241126114233871](figures/image-20241126114233871.png)
+
+### Add Ethernet/IP EDS File
+
+An **EDS file** (Electronic Data Sheet) is a standard file format in Ethernet/IP used to describe device characteristics and communication parameters. It contains detailed information about the device, including its type, supported services, input/output definitions, parameter settings, device status, and configuration options.
+
+The EDS file for this project is located at:
+
+- `..\packages\OpENer_port-latest\eds_file`
+
+Select the device repository installation description file and choose the **opener_sample_app.eds** file from the above path.
+
+![image-20250207165523298](figures/image-20250207165523298.png)
+
+After successful installation, you can see the OpENer PC slave description file:
+
+![image-20250207165538804](figures/image-20250207165538804.png)
+
+### Add Devices
+
+- Add Ethernet: In the left navigation pane, right-click **Device** and select **Add Device**, then choose **Ethernet Adapter**:
+
+![image-20241126114309177](figures/image-20241126114309177.png)
+
+- Add EtherNet/IP Scanner: Right-click **Ethernet** in the left navigation pane and choose **EtherNet/IP Scanner**:
+
+![image-20250207165611848](figures/image-20250207165611848.png)
+
+- Add EtherNet/IP Bus Device: Right-click **EtherNet/IP Scanner** in the left navigation pane and choose **OpENer PC**:
+
+![image-20250207165634898](figures/image-20250207165634898.png)
+
+### Task Response
+
+Keep the default configuration.
+
+### Network Configuration
+
+- Ethernet Configuration: Double-click **Ethernet (Ethernet)** in the left navigation pane -> **General**, change the network interface to the Ethernet port connected to the development board:
+
+![image-20250207165704492](figures/image-20250207165704492.png)
+
+- EtherNet/IP Bus Device Network Configuration: Double-click **OpENer_PC (OpENer PC)** in the left navigation pane -> **General** -> **Address Settings**, change the IP parameters to the development board's IP address.
+
+![image-20250207165725395](figures/image-20250207165725395.png)
+
+### EtherNet/IP Thread Application Startup
+
+Once the development board is powered on, it will automatically start the OpENer thread when the network card link is detected:
+
+![image-20250207165823519](figures/image-20250207165823519.png)
+
+### Compile and Start Debugging the Project
+
+- Step 1: In the project toolbar, select **Build** -> **Generate Code**
+- Step 2: Select **Online** -> **Login**
+- Step 
+
+3: Click **Debug** -> **Start**
+
+At this point, you can see that the EtherNet/IP Scanner is running properly:
+
+![image-20250207165859632](figures/image-20250207165859632.png)
+
+## PLC Programming and CIP IO Control
+
+First, click **Device** -> **PLC Logic** -> **Application** -> **PLC_PRG (PRG)** in the left panel to open the PLC program, then use Structured Text (ST) to write variable definitions and program code:
+
+* Variable Definition: The following variables include two key variables: `Board_SW_Input` (representing the controller's onboard switch array in bit-level) and `Board_LED_Output` (representing the controller's onboard LED in bit-level).
+
+```st
+PROGRAM PLC_PRG
+VAR
+    Board_SW_Input: BYTE;
+    Board_LED_Output: BYTE;
+    Mask: BYTE;
+    Shift: INT;
+    i: INT;
+END_VAR
+```
+
+* Program Definition: This code sets the corresponding bits of `Board_LED_Output` based on the state of each bit of `Board_SW_Input`:
+  * If a bit of `Board_SW_Input` is 1, the corresponding bit of `Board_LED_Output` is set to 1.
+  * If a bit of `Board_SW_Input` is 0, the corresponding bit of `Board_LED_Output` is set to 0.
+
+By iterating through all 8 bits, the input states are mapped to the output.
+
+```st
+FOR i := 0 TO 7 DO
+    Shift := i;
+    Mask := SHL(1, Shift);
+    
+    IF (Board_SW_Input AND Mask) = Mask THEN
+        Board_LED_Output := Board_LED_Output OR Mask;
+    ELSE
+        Board_LED_Output := Board_LED_Output AND NOT Mask;
+    END_IF
+END_FOR
+```
+
+The configuration location in the project is as follows:
+
+![image-20250207170030196](figures/image-20250207170030196.png)
+
+After loading the EDS file, only one connection configuration (Board LED Exclusive Owner) is shown by default. We also need to load another configuration embedded in the EDS file. Click **OpENer_PC (OpENer PC)** in the left menu -> **Connections**, click **Add Connection…**, and choose **Board SW Input Only**.
+
+![image-20250207170039473](figures/image-20250207170039473.png)
+
+Next, click **Ethernet/IP I/O Mapping**, where we need to map the previously defined ST variables to the variables in this section. Map `Board_LED_Output` to the channel: **Board LED Output Data**; map `Board_SW_Input` to the channel: **Board SE Input Data**.
+
+![image-20250207170048731](figures/image-20250207170048731.png)
+
+Finally, click **Build** -> **Generate Code**, then select **Online** -> **Login**. At this point, you can dynamically observe the program's running status. For example, when holding down KEY1 on the EtherKit development board, you will notice that LED0 (red) is off, and when releasing KEY1, LED0 stays on. When holding down KEY2, LED2 (green) will be off, and when releasing KEY2, LED2 stays on.
+
+At the same time, you can also observe the current value of the bit in **OpENer_PC (OpENer PC)** -> **EtherNet/IP I/O Mapping**. When the corresponding bit of the key is TRUE, the key is pressed, and the corresponding LED bit turns on, showing the current value as TRUE:
+
+![image-20250207170109396](figures/image-20250207170109396.png)

+ 233 - 0
projects/etherkit_ethernetip_opener/README_zh.md

@@ -0,0 +1,233 @@
+# EtherKit Ethernet/IP 例程
+
+**中文** | [**English**](./README.md)
+
+## 简介
+
+Ethernet/IP(以太网工业协议)是一种基于标准以太网架构的工业通信协议,广泛应用于自动化和控制系统中。它结合了TCP/IP协议和CIP(通用工业协议)标准,提供高速、可靠的数据传输,支持各种工业设备之间的实时通信。由于Ethernet/IP兼容现有的以太网硬件和网络,企业能够在不需要专用硬件的情况下,实现工业设备间的互联互通,提升生产效率和系统可靠性。
+
+OpENer 是用于 I/O 适配器设备的 EtherNet/IP™ 堆栈;支持多个 I/O 和显式连接;包括用于制作符合以太网/IP 规范中定义并由 [ODVA](http://www.odva.org/) 发布的 EtherNet/IP™ 兼容产品的对象和服务。
+
+在本示例中将使用已经适配的OpENer软件包来实现Ethernet/IP通讯。
+
+## 前期准备
+
+软件环境:
+
+- [CODESYS](https://us.store.codesys.com/)(Ethernet/IP通信模拟)
+- - CODESYS
+  - CODESYS Gateway(网关设备)
+  - CODESYS Control Win SysTray(软PLC设备)
+- [Npcap](https://npcap.com/dist/npcap-1.80.exe)(该软件是运行CODESYS必须的,需要提前安装好!)
+
+硬件环境:
+
+- EtherKit开发板
+
+## FSP配置
+
+打开工程配置文件configuration.xml,新增r_gamc Stack:
+
+![image-20241126104408737](figures/image-20241126104408737.png)
+
+点击g_ether0 Ethernet,配置中断回调函数为user_ether0_callback:
+
+![image-20241126104422910](figures/image-20241126104422910.png)
+
+下面配置phy信息,选择g_ether_phy0,Common配置为User Own Target;修改PHY LSI地址为1(根据原理图查询具体地址);设置phy初始化回调函数为ether_phy_targets_initialize_rtl8211_rgmii();同时设置MDIO为GMAC。
+
+![image-20241126104437432](figures/image-20241126104437432.png)
+
+配置g_ether_selector0,选择以太网模式为交换机模式,PHY link设置为默认active-low,PHY接口模式设置为RGMII。
+
+![image-20241126104519290](figures/image-20241126104519290.png)
+
+网卡引脚参数配置,选择操作模式为RGMII:
+
+![image-20241126104533098](figures/image-20241126104533098.png)
+
+ETHER_GMAC配置:
+
+![image-20241213113637153](figures/image-20241213113637153.png)
+
+## RT-Thread Settings 配置
+
+双击打开 RT-Thread Settings,在搜索栏检索OpENer软件包并使能,下面是相关用户配置信息说明;
+
+![image-20250207165322965](figures/image-20250207165322965.png)
+
+下面我们还需要配置禁用dhcp功能并使用静态IP,点击组件->使能lwip堆栈,选择禁用DHCP;
+
+![image-20250207165349686](figures/image-20250207165349686.png)
+
+完成上述配置后,将程序编译下载至开发板。
+
+## 网络配置
+
+我们使用一根网线连接开发板与PC,同时在PC端配置静态IP:
+
+![image-20241217145852034](figures/image-20241217145852034.png)
+
+## 软PLC启动
+
+CODESYS简介:CODESYS是德国3S公司开发的PLC软件,集成了PLC逻辑、运动控制、组态显示等功能。CODESYS,全称为“Controller Development System”,是一种基于 IEC 61131-3 标准的工业自动化编程工具。它不仅支持多种编程语言(如梯形图、结构化文本、功能块图等),还提供了丰富的库和功能模块,帮助工程师快速开发和调试 PLC(可编程逻辑控制器)和工业控制系统。CODESYS 的灵活性和强大功能使其成为工业自动化领域广泛使用的开发平台。
+
+### CODESYS创建标准工程
+
+请确保已安装CODESYS软件,安装之后下面这三个是我们需要用到的软件:
+
+![image-20241126114113830](figures/image-20241126114113830.png)
+
+- CODESYS V3.5 SP20 Patch 3:Ethernet/IP通信模拟
+- CODESYS Gateway V3:网关设备
+- CODESYS Control Win V3 -x64 SysTray:软PLC设备
+
+首先打开 **CODESYS V3.5 SP20 Patch 3**,依次选择 -> 新建工程 -> Projects -> Standard project ,配置工程名称及位置后点击确定:
+
+![image-20241126114127411](figures/image-20241126114127411.png)
+
+弹出下面这个弹窗后保持默认配置(CODESYS Control Win V3 (CODESYS) / x64 (CODESYS))点击确定:
+
+![image-20241126114137199](figures/image-20241126114137199.png)
+
+> 注意:如果您购买了[**CODESYS Control RTE SL**](http://store.codesys.cn/codesys/store/detail.html?productId=58),可选择设备:CODESYS Control RTE V3 (CODESYS) / x64 (CODESYS),正常评估用途可选择不安装此扩展包,选择 CODESYS Control Win V3 (CODESYS) / x64 (CODESYS) 设备创建即可。
+
+创建成功后就可以看到主界面了:
+
+![image-20241126114149792](figures/image-20241126114149792.png)
+
+### Gateway 及 软PLC 启动
+
+依次打开下面两个软件:
+
+- CODESYS Gateway V3(右键 Start Gateway)
+- CODESYS Control Win V3 -x64 SysTray(右键 Start PLC)
+
+![image-20241126114204739](figures/image-20241126114204739.png)
+
+回到 CODESYS 主站软件,双击 Device(CODESYS Control Win V3 x64) -> 通信设置 -> 扫描网络:
+
+![image-20241126114216032](figures/image-20241126114216032.png)
+
+弹出设备用户登录窗口后,配置用户名和密码(用户自定义):
+
+![image-20241126114225267](figures/image-20241126114225267.png)
+
+检查网关设备及软PLC设备是否在线:
+
+![image-20241126114233871](figures/image-20241126114233871.png)
+
+### Ethernet/IP EDS文件添加
+
+**EDS** **文件**(Electronic Data Sheet)是 **Ethernet/IP** 中用于描述设备特性和通信参数的标准文件格式。它包含了有关设备的详细信息,包括设备类型、支持的服务、输入输出的定义、参数设置、设备的状态和配置选项等。
+
+本项目的EDS文件位于如下路径:
+
+- ..\packages\OpENer_port-latest\eds_file
+
+选择设备存储库安装描述文件,选择上述路径下的 **opener_sample_app.eds** 文件。
+
+![image-20250207165523298](figures/image-20250207165523298.png)
+
+安装成功后可以看到 OpENer PC 从站描述文件:
+
+![image-20250207165538804](figures/image-20250207165538804.png)
+
+### 设备添加
+
+- Ethernet添加:左侧导航栏点击Device并右键添加设备,选择以太网适配器;
+
+![image-20241126114309177](figures/image-20241126114309177.png)
+
+- EtherNet/IP扫描器添加:右键左侧导航栏中的Ethernet,选择EtherNet/IP Scanner
+
+![image-20250207165611848](figures/image-20250207165611848.png)
+
+- EtherNet/IP总线设备添加:右键左侧导航栏中的 EtherNet/IP Scanner,选择  OpENer PC
+
+![image-20250207165634898](figures/image-20250207165634898.png)
+
+### 任务响应
+
+保持默认配置即可。
+
+### 网络配置
+
+- Ethernet 配置:双击左侧导航栏中的Ethernet(Ethernet) -> 通用,修改网络接口为连接到开发板的以太网端口;
+
+![image-20250207165704492](figures/image-20250207165704492.png)
+
+- EtherNet/IP总线设备网络配置:双击左侧导航栏 OpENer_PC(OpENer     PC) -> 通用->地址设置, 修改IP参数为开发板IP。
+
+![image-20250207165725395](figures/image-20250207165725395.png)
+
+### EtherNet/IP线程应用启动
+
+开发板端上电后,一旦检测到网卡 link up,则会自动启动 OpENer线程:
+
+![image-20250207165823519](figures/image-20250207165823519.png)
+
+### 工程编译并启动调试
+
+- step1:工程上方导航栏选择 编译-> 生成代码
+- step2:选择 在线 -> 登录
+- step3:点击 调试 -> 启动
+
+此时就可以看到 EtherNet/IP Scanner已经正常运行了:
+
+![image-20250207165859632](figures/image-20250207165859632.png)
+
+## PLC编程及CIP IO控制
+
+首先我们点击左侧面板的Device->PLC逻辑->Application->PLC_PRG(PRG),使用ST语言编程,编写变量及程序代码:
+
+* 变量定义:下面这段变量中包含两个关键变量:Board_SW_Input(按Bit位标识控制器板载按键阵列)和Board_LED_Output(按Bit位标识控制器板载LED)。
+
+```st
+PROGRAM PLC_PRG
+VAR
+    Board_SW_Input: BYTE;
+    Board_LED_Output: BYTE;
+    Mask: BYTE;
+    Shift: INT;
+    i: INT;
+END_VAR
+```
+
+* 程序定义:这段代码的功能是:根据Board_SW_Input的每一位的状态,设置Board_LED_Output的相应位。具体来说:
+  * 如果Board_SW_Input的某一位为1,则对应的Board_LED_Output的该位为1。
+  * 如果Board_SW_Input的某一位为0,则对应的Board_LED_Output的该位为0。
+
+通过循环遍历所有8个位,实现了将输入的每一位状态映射到输出的每一位。
+
+```st
+FOR i := 0 TO 7 DO
+    Shift := i;
+    Mask := SHL(1, Shift);
+    
+    IF (Board_SW_Input AND Mask) = Mask THEN
+        Board_LED_Output := Board_LED_Output OR Mask;
+    ELSE
+        Board_LED_Output := Board_LED_Output AND NOT Mask;
+    END_IF
+END_FOR
+```
+
+工程中的配置位置如下图所示:
+
+![image-20250207170030196](figures/image-20250207170030196.png)
+
+由于加载eds文件后默认只会显示一个连接配置(Board LED Exclusive Owner),我们还需要将eds内置的另外一个配置加载出来,点击左侧菜单栏选择OpENer_PC(OpENer PC)->连接,点击添加连接…,并选择Board SW Input Only。
+
+![image-20250207170039473](figures/image-20250207170039473.png)
+
+接下来点击Ethernet/IPI/O映射,这里我们需要把前面定义的ST变量映射到此处的变量中,将Board_LED_Output映射到通道:Board LED Output Data;Board_SW_Input映射到通道:Board SE Input Data。
+
+![image-20250207170048731](figures/image-20250207170048731.png)
+
+接着我们点击上方导航栏的编译->生成代码,然后选择在线->登录,此时便可动态观察程序运行状态,例如我们按住etherkit开发板上的KEY1,可以发现板载LED0(红灯)处于灭灯状态,当我们松开KEY1,LED0保持常亮;按住开发板的KEY2,板载LED2(绿灯)处于灭灯状态,松开KEY2,LED2保持常亮。
+
+同时在OpENer_PC(OpENer PC)->EtherNet/IPI/O映射也可以观察Bit位的当前值,当对应按键的Bit位为TRUE时,即代表按键按下,同时对应的Bit位LED亮起,并显示当前值为TRUE:
+
+![image-20250207170109396](figures/image-20250207170109396.png)
+

+ 27 - 0
projects/etherkit_ethernetip_opener/SConscript

@@ -0,0 +1,27 @@
+# for module compiling
+import os
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+from gcc import *
+
+cwd = GetCurrentDir()
+src = []
+CPPPATH = [cwd]
+group = []
+list = os.listdir(cwd)
+
+if rtconfig.PLATFORM in ['iccarm']:
+    group = DefineGroup('', src, depend = [''], CPPPATH = CPPPATH)
+elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
+    if GetOption('target') != 'mdk5':
+        CPPPATH = [cwd]
+        src = Glob('./src/*.c')
+        group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+for d in list:
+    path = os.path.join(cwd, d)
+    if os.path.isfile(os.path.join(path, 'SConscript')):
+        group = group + SConscript(os.path.join(d, 'SConscript'))
+
+Return('group')

+ 56 - 0
projects/etherkit_ethernetip_opener/SConstruct

@@ -0,0 +1,56 @@
+import os
+import sys
+import rtconfig
+
+if os.path.exists('rt-thread'):
+    RTT_ROOT = os.path.normpath(os.getcwd() + '/rt-thread')
+else:
+    RTT_ROOT = os.path.normpath(os.getcwd() + '../../../rt-thread')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+try:
+    from building import *
+except Exception as e:
+    print("Error message:", e.message)
+    print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+    print(RTT_ROOT)
+    sys.exit(-1)
+
+TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+
+if rtconfig.PLATFORM in ['iccarm']:
+    env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
+    env.Replace(ARFLAGS = [''])
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map project.map')
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+if os.path.exists(SDK_ROOT + '/libraries'):
+    libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+    libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/../libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+rtconfig.BSP_LIBRARY_TYPE = None
+
+# prepare building environment
+objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)

+ 569 - 0
projects/etherkit_ethernetip_opener/board/Kconfig

@@ -0,0 +1,569 @@
+menu "Hardware Drivers Config"
+
+    config SOC_R9A07G084
+        bool
+        select SOC_SERIES_R9A07G0
+        select RT_USING_COMPONENTS_INIT
+        select RT_USING_USER_MAIN
+        default y
+
+    menu "Onboard Peripheral Drivers"
+
+    endmenu
+
+    menu "On-chip Peripheral Drivers"
+
+        source "libraries/HAL_Drivers/Kconfig"
+
+        menuconfig BSP_USING_UART
+            bool "Enable UART"
+            default y
+            select RT_USING_SERIAL
+            select RT_USING_SERIAL_V2
+            if BSP_USING_UART
+                menuconfig BSP_USING_UART0
+                    bool "Enable UART0"
+                    default n
+                    if BSP_USING_UART0
+                        config BSP_UART0_RX_USING_DMA
+                            bool "Enable UART0 RX DMA"
+                            depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART0_TX_USING_DMA
+                            bool "Enable UART0 TX DMA"
+                            depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART0_RX_BUFSIZE
+                            int "Set UART0 RX buffer size"
+                            range 64 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 256
+
+                        config BSP_UART0_TX_BUFSIZE
+                            int "Set UART0 TX buffer size"
+                            range 0 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 0
+                    endif
+                    
+                menuconfig BSP_USING_UART5
+                    bool "Enable UART5"
+                    default n
+                    if BSP_USING_UART5
+                        config BSP_UART5_RX_USING_DMA
+                            bool "Enable UART5 RX DMA"
+                            depends on BSP_USING_UART5 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART5_TX_USING_DMA
+                            bool "Enable UART5 TX DMA"
+                            depends on BSP_USING_UART5 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART5_RX_BUFSIZE
+                            int "Set UART5 RX buffer size"
+                            range 64 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 256
+
+                        config BSP_UART5_TX_BUFSIZE
+                            int "Set UART5 TX buffer size"
+                            range 0 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 0
+                    endif
+            endif
+
+        menuconfig BSP_USING_ADC
+            bool "Enable ADC"
+            default n
+            select RT_USING_ADC
+            if BSP_USING_ADC
+                config BSP_USING_ADC0
+                    bool "Enable ADC0"
+                config BSP_USING_ADC1
+                    bool "Enable ADC1"
+                config BSP_USING_ADC2
+                    bool "Enable ADC2"
+                config BSP_USING_ADC3
+                    bool "Enable ADC3"                    
+                    default n
+            endif
+
+        menuconfig BSP_USING_CANFD
+            bool "Enable CANFD"
+            default n
+            select RT_USING_CAN
+            select RT_CAN_USING_CANFD
+            if BSP_USING_CANFD
+                config BSP_USING_CANFD0
+                    bool "Enable CANFD0"
+                    default n
+                config BSP_USING_CANFD1
+                    bool "Enable CANFD1"
+                    default n
+            endif
+
+        menuconfig BSP_USING_SCI
+            bool "Enable SCI Controller"
+            default n
+            config BSP_USING_SCIn_SPI
+                bool
+                depends on BSP_USING_SCI
+                select RT_USING_SPI
+                default n
+
+            config BSP_USING_SCIn_I2C
+                bool
+                depends on BSP_USING_SCI
+                select RT_USING_I2C
+                default n
+
+            config BSP_USING_SCIn_UART
+                bool
+                depends on BSP_USING_SCI
+                select RT_USING_SERIAL
+                select RT_USING_SERIAL_V2
+                default n
+
+            if BSP_USING_SCI
+                config BSP_USING_SCI0
+                    bool "Enable SCI0"
+                    default n
+                    if BSP_USING_SCI0
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI0_SPI
+                        config BSP_USING_SCI0_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI0_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI0_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI0_UART
+                            config BSP_SCI0_UART_RX_BUFSIZE
+                                int "Set UART0 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI0_UART_TX_BUFSIZE
+                                int "Set UART0 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI1
+                    bool "Enable SCI1"
+                    default n
+                    if BSP_USING_SCI1
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI1_SPI
+                        config BSP_USING_SCI1_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI1_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI1_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI1_UART
+                            config BSP_SCI1_UART_RX_BUFSIZE
+                                int "Set UART1 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI1_UART_TX_BUFSIZE
+                                int "Set UART1 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI2
+                    bool "Enable SCI2"
+                    default n
+                    if BSP_USING_SCI2
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI2_SPI
+                        config BSP_USING_SCI2_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI2_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI2_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI2_UART
+                            config BSP_SCI2_UART_RX_BUFSIZE
+                                int "Set UART2 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI2_UART_TX_BUFSIZE
+                                int "Set UART2 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI3
+                    bool "Enable SCI3"
+                    default n
+                    if BSP_USING_SCI3
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI3_SPI
+                        config BSP_USING_SCI3_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI3_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI3_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI3_UART
+                            config BSP_SCI3_UART_RX_BUFSIZE
+                                int "Set UART3 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI3_UART_TX_BUFSIZE
+                                int "Set UART3 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI4
+                    bool "Enable SCI4"
+                    default n
+                    if BSP_USING_SCI4
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI4_SPI
+                        config BSP_USING_SCI4_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI4_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI4_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI4_UART
+                            config BSP_SCI4_UART_RX_BUFSIZE
+                                int "Set UART4 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI4_UART_TX_BUFSIZE
+                                int "Set UART4 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI5
+                    bool "Enable SCI5"
+                    default n
+                    if BSP_USING_SCI5
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI5_SPI
+                        config BSP_USING_SCI5_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI5_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI5_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI5_UART
+                            config BSP_SCI5_UART_RX_BUFSIZE
+                                int "Set UART5 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI5_UART_TX_BUFSIZE
+                                int "Set UART5 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI6
+                    bool "Enable SCI6"
+                    default n
+                    if BSP_USING_SCI6
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI6_SPI
+                        config BSP_USING_SCI6_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI6_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI6_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI6_UART
+                            config BSP_SCI6_UART_RX_BUFSIZE
+                                int "Set UART6 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI6_UART_TX_BUFSIZE
+                                int "Set UART6 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI7
+                    bool "Enable SCI7"
+                    default n
+                    if BSP_USING_SCI7
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI7_SPI
+                        config BSP_USING_SCI7_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI7_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI7_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI7_UART
+                            config BSP_SCI7_UART_RX_BUFSIZE
+                                int "Set UART7 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI7_UART_TX_BUFSIZE
+                                int "Set UART7 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI8
+                    bool "Enable SCI8"
+                    default n
+                    if BSP_USING_SCI8
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI8_SPI
+                        config BSP_USING_SCI8_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI8_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI8_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI8_UART
+                            config BSP_SCI8_UART_RX_BUFSIZE
+                                int "Set UART8 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI8_UART_TX_BUFSIZE
+                                int "Set UART8 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI9
+                    bool "Enable SCI9"
+                    default n
+                    if BSP_USING_SCI9
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI9_SPI
+                        config BSP_USING_SCI9_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI9_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI9_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI9_UART
+                            config BSP_SCI9_UART_RX_BUFSIZE
+                                int "Set UART9 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI9_UART_TX_BUFSIZE
+                                int "Set UART9 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+            endif
+
+        config BSP_USING_HYPERRAM
+            bool "Enable XSPI0 CS1 Winbond octal hyperRAM"
+            default n
+
+        menuconfig BSP_USING_I2C
+            bool "Enable I2C BUS"
+            default n
+            select RT_USING_I2C
+            select RT_USING_I2C_BITOPS
+            select RT_USING_PIN
+            if BSP_USING_I2C
+                config BSP_USING_HW_I2C
+                    bool "Enable Hardware I2C BUS"
+                    default n
+                if BSP_USING_HW_I2C
+                    config BSP_USING_HW_I2C0
+                        bool "Enable Hardware I2C0 BUS"
+                        default n
+                endif
+                if BSP_USING_HW_I2C
+                    config BSP_USING_HW_I2C1
+                        bool "Enable Hardware I2C1 BUS"
+                        default n
+                endif
+            if !BSP_USING_HW_I2C
+                    menuconfig BSP_USING_I2C1
+                        bool "Enable I2C1 BUS (software simulation)"
+                        default y
+                        if BSP_USING_I2C1
+                            config BSP_I2C1_SCL_PIN
+                                hex "i2c1 scl pin number"
+                                range 0x0000 0x0B0F
+                                default 0x0B03
+                            config BSP_I2C1_SDA_PIN
+                                hex "I2C1 sda pin number"
+                                range 0x0000 0x0B0F
+                                default 0x050E
+                    endif
+                endif
+            endif
+
+        menuconfig BSP_USING_SPI
+            bool "Enable SPI BUS"
+            default n
+            select RT_USING_SPI
+            if BSP_USING_SPI 
+                config BSP_USING_SPI0
+                    bool "Enable SPI0 BUS"
+                    default n
+                config BSP_USING_SPI1
+                    bool "Enable SPI1 BUS"
+                    default n
+                config BSP_USING_SPI2
+                    bool "Enable SPI2 BUS"
+                    default n
+            endif
+
+        menuconfig BSP_USING_TIM
+	        bool "Enable timer"
+	        default n
+	        select RT_USING_HWTIMER
+	        if BSP_USING_TIM
+	            config BSP_USING_TIM0
+	                bool "Enable TIM0"
+	                default n
+	            config BSP_USING_TIM1
+	                bool "Enable TIM1"
+	                default n
+	        endif
+
+        menuconfig BSP_USING_PWM
+            bool "Enable PWM"
+            default n
+            select RT_USING_PWM
+            if BSP_USING_PWM
+                config BSP_USING_PWM5
+                    bool "Enable GPT5 (32-Bits) output PWM"
+                    default n
+            endif
+
+        config BSP_USING_ETH
+            bool "Enable Ethernet"
+            select RT_USING_SAL
+            select RT_USING_LWIP
+            select RT_USING_NETDEV
+            default n
+
+    endmenu
+    
+    menu "Board extended module Drivers"
+         menuconfig BSP_USING_RW007
+                bool "Enable RW007"
+                default n
+                select PKG_USING_RW007
+                select BSP_USING_SPI
+                select BSP_USING_SPI2
+                select RT_USING_MEMPOOL
+                select RW007_NOT_USE_EXAMPLE_DRIVERS
+
+            if BSP_USING_RW007
+                config RA_RW007_SPI_BUS_NAME
+                    string "RW007 BUS NAME"
+                    default "spi2"
+
+                config RA_RW007_CS_PIN
+                    hex "(HEX)CS pin index"
+                    default 0x1207
+
+                config RA_RW007_BOOT0_PIN
+                    hex "(HEX)BOOT0 pin index (same as spi clk pin)"
+                    default 0x1204
+
+                config RA_RW007_BOOT1_PIN
+                    hex "(HEX)BOOT1 pin index (same as spi cs pin)"
+                    default 0x1207
+
+                config RA_RW007_INT_BUSY_PIN
+                    hex "(HEX)INT/BUSY pin index"
+                    default 0x1102
+
+                config RA_RW007_RST_PIN
+                    hex "(HEX)RESET pin index"
+                    default 0x1706
+            endif
+    endmenu
+endmenu

+ 16 - 0
projects/etherkit_ethernetip_opener/board/SConscript

@@ -0,0 +1,16 @@
+import os
+from building import *
+
+objs = []
+cwd  = GetCurrentDir()
+list = os.listdir(cwd)
+CPPPATH = [cwd]
+src = Glob('*.c')
+
+objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
+
+for item in list:
+    if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
+        objs = objs + SConscript(os.path.join(item, 'SConscript'))
+
+Return('objs')

+ 65 - 0
projects/etherkit_ethernetip_opener/board/board.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2024-03-11    Wangyuqiang   first version
+ */
+
+#ifndef __BOARD_H__
+#define __BOARD_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rtdef.h>
+#include <cp15.h>
+#include <hal_data.h>
+
+#define RZ_SRAM_SIZE    1536 /* The SRAM size of the chip needs to be modified */
+#define RZ_SRAM_END     (0x10000000 + RZ_SRAM_SIZE * 1024 - 1)
+
+#ifdef __ARMCC_VERSION
+extern int Image$$RAM_END$$ZI$$Base;
+#define HEAP_BEGIN  ((void *)&Image$$RAM_END$$ZI$$Base)
+#elif __ICCARM__
+#pragma section="CSTACK"
+#define HEAP_BEGIN      (__segment_end("CSTACK"))
+#else
+extern int __bss_end__;
+#define HEAP_BEGIN      ((void *)&__bss_end__)
+#endif
+
+#define HEAP_END        RZ_SRAM_END
+
+/***********************************************************************************************************************
+ * Macro definitions
+ **********************************************************************************************************************/
+#define MAX_HANDLERS BSP_VECTOR_TABLE_MAX_ENTRIES
+#define GIC_IRQ_START   0
+#define GIC_ACK_INTID_MASK  (0x000003FFU)
+/* number of interrupts on board */
+#define ARM_GIC_NR_IRQS     (448)
+/* only one GIC available */
+#define ARM_GIC_MAX_NR      1
+/*  end defined */
+
+#define GICV3_DISTRIBUTOR_BASE_ADDR     (0x100000)
+
+/* the basic constants and interfaces needed by gic */
+rt_inline rt_uint32_t platform_get_gic_dist_base(void)
+{
+    rt_uint32_t gic_base;
+
+    __get_cp(15, 1, gic_base, 15, 3, 0);
+    return gic_base + GICV3_DISTRIBUTOR_BASE_ADDR;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 16 - 0
projects/etherkit_ethernetip_opener/board/ports/SConscript

@@ -0,0 +1,16 @@
+import os
+from building import *
+
+objs = []
+src = Glob('*.c')
+cwd  = GetCurrentDir()
+CPPPATH = [cwd]
+
+objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
+
+list = os.listdir(cwd)
+for item in list:
+    if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
+        objs = objs + SConscript(os.path.join(item, 'SConscript'))
+
+Return('objs')

+ 74 - 0
projects/etherkit_ethernetip_opener/board/ports/gpio_cfg.h

@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author            Notes
+ * 2024-03-11    Wangyuqiang   first version
+ */
+
+/* Number of IRQ channels on the device */
+#define RA_IRQ_MAX  16
+
+/* PIN to IRQx table */
+#define PIN2IRQX_TABLE                      \
+{                                           \
+    switch (pin)                            \
+    {                                       \
+    case BSP_IO_PORT_00_PIN_1:             \
+    case BSP_IO_PORT_09_PIN_2:             \
+    case BSP_IO_PORT_18_PIN_3:             \
+        return 0;                           \
+    case BSP_IO_PORT_00_PIN_3:             \
+    case BSP_IO_PORT_07_PIN_4:             \
+    case BSP_IO_PORT_18_PIN_4:             \
+        return 1;                           \
+    case BSP_IO_PORT_01_PIN_2:             \
+        return 2;                           \
+    case BSP_IO_PORT_01_PIN_4:             \
+        return 3;                           \
+    case BSP_IO_PORT_02_PIN_0:             \
+    case BSP_IO_PORT_22_PIN_2:             \
+        return 4;                           \
+    case BSP_IO_PORT_03_PIN_5:             \
+    case BSP_IO_PORT_13_PIN_2:             \
+        return 5;                           \
+    case BSP_IO_PORT_14_PIN_2:             \
+    case BSP_IO_PORT_21_PIN_5:             \
+        return 6;                           \
+    case BSP_IO_PORT_16_PIN_3:             \
+        return 7;                           \
+    case BSP_IO_PORT_03_PIN_6:             \
+    case BSP_IO_PORT_16_PIN_6:             \
+        return 8;                           \
+    case BSP_IO_PORT_03_PIN_7:             \
+    case BSP_IO_PORT_21_PIN_6:             \
+        return 9;                           \
+    case BSP_IO_PORT_04_PIN_4:             \
+    case BSP_IO_PORT_18_PIN_1:             \
+    case BSP_IO_PORT_21_PIN_7:             \
+        return 10;                          \
+    case BSP_IO_PORT_10_PIN_4:             \
+    case BSP_IO_PORT_18_PIN_6:             \
+        return 11;                          \
+    case BSP_IO_PORT_05_PIN_0:             \
+    case BSP_IO_PORT_05_PIN_4:             \
+    case BSP_IO_PORT_05_PIN_6:             \
+        return 12;                          \
+    case BSP_IO_PORT_00_PIN_4:             \
+    case BSP_IO_PORT_00_PIN_7:             \
+    case BSP_IO_PORT_05_PIN_1:             \
+        return 13;                          \
+    case BSP_IO_PORT_02_PIN_2:             \
+    case BSP_IO_PORT_03_PIN_0:             \
+    case BSP_IO_PORT_05_PIN_2:             \
+        return 14;                          \
+    case BSP_IO_PORT_02_PIN_3:             \
+    case BSP_IO_PORT_05_PIN_3:             \
+    case BSP_IO_PORT_22_PIN_0:             \
+        return 15;                          \
+    default  :                              \
+        return -1;                          \
+    }                                       \
+}

+ 172 - 0
projects/etherkit_ethernetip_opener/buildinfo.ipcf

@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<iarProjectConnection version="1.8" name="Flex Software">
+    <device>
+        <name>R9A07G084M04</name>
+    </device>
+    <includePath>
+        <path>$PROJ_DIR$/rzn/arm/CMSIS_5/CMSIS/Core_R/Include</path>
+        <path>$PROJ_DIR$/rzn/fsp/inc</path>
+        <path>$PROJ_DIR$/rzn/fsp/inc/api</path>
+        <path>$PROJ_DIR$/rzn/fsp/inc/instances</path>
+        <path>$PROJ_DIR$/rzn/fsp/src/bsp/mcu/all/cr</path>
+        <path>$PROJ_DIR$/rzn_cfg/fsp_cfg</path>
+        <path>$PROJ_DIR$/rzn_cfg/fsp_cfg/bsp</path>
+        <path>$PROJ_DIR$/rzn_gen</path>
+        <path>$PROJ_DIR$/src</path>
+        <path>$PROJ_DIR$</path>
+    </includePath>
+    <defines>
+        <define>_RZN_ORDINAL=1</define>
+        <define>_RZN_CORE=CR52_0</define>
+        <define>_RENESAS_RZN_</define>
+    </defines>
+    <asmIncludePath>
+        <path>$PROJ_DIR$/rzn/arm/CMSIS_5/CMSIS/Core_R/Include</path>
+        <path>$PROJ_DIR$/rzn/fsp/inc</path>
+        <path>$PROJ_DIR$/rzn/fsp/inc/api</path>
+        <path>$PROJ_DIR$/rzn/fsp/inc/instances</path>
+        <path>$PROJ_DIR$/rzn/fsp/src/bsp/mcu/all/cr</path>
+        <path>$PROJ_DIR$/rzn_cfg/fsp_cfg</path>
+        <path>$PROJ_DIR$/rzn_cfg/fsp_cfg/bsp</path>
+        <path>$PROJ_DIR$/rzn_gen</path>
+        <path>$PROJ_DIR$/src</path>
+        <path>$PROJ_DIR$</path>
+    </asmIncludePath>
+    <asmDefines>
+        <define>_RZN_ORDINAL=1</define>
+        <define>_RZN_CORE=CR52_0</define>
+        <define>_RENESAS_RZN_</define>
+    </asmDefines>
+    <linkerFile>
+        <override>true</override>
+        <path>$PROJ_DIR$/script/fsp_xspi0_boot.icf</path>
+    </linkerFile>
+    <linkerExtraOptions>
+        <arg>--config_search "$PROJ_DIR$"</arg>
+    </linkerExtraOptions>
+    <programEntryPoint>
+        <symbol>system_init</symbol>
+    </programEntryPoint>
+    <customArgVars>
+        <group name="RA Smart Configurator">
+            <argVar>
+                <name>RASC_EXE_PATH</name>
+                <value>C:\Renesas\rzn\sc_v2024-01.1_fsp_v2.0.0\eclipse\rasc.exe</value>
+            </argVar>
+        </group>
+    </customArgVars>
+    <files>
+        <group name="Components">
+            <path>rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_compiler.h</path>
+            <path>rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_cp15.h</path>
+            <path>rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_gcc.h</path>
+            <path>rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_iccarm.h</path>
+            <path>rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_version.h</path>
+            <path>rzn/arm/CMSIS_5/CMSIS/Core_R/Include/core_cr52.h</path>
+            <path>rzn/arm/CMSIS_5/LICENSE.txt</path>
+            <path>rzn/board/rzn2l_rsk/board.h</path>
+            <path>rzn/board/rzn2l_rsk/board_ethernet_phy.h</path>
+            <path>rzn/board/rzn2l_rsk/board_init.c</path>
+            <path>rzn/board/rzn2l_rsk/board_init.h</path>
+            <path>rzn/board/rzn2l_rsk/board_leds.c</path>
+            <path>rzn/board/rzn2l_rsk/board_leds.h</path>
+            <path>rzn/fsp/inc/api/bsp_api.h</path>
+            <path>rzn/fsp/inc/api/r_ether_api.h</path>
+            <path>rzn/fsp/inc/api/r_ether_phy_api.h</path>
+            <path>rzn/fsp/inc/api/r_ether_selector_api.h</path>
+            <path>rzn/fsp/inc/api/r_ether_switch_api.h</path>
+            <path>rzn/fsp/inc/api/r_ioport_api.h</path>
+            <path>rzn/fsp/inc/api/r_transfer_api.h</path>
+            <path>rzn/fsp/inc/api/r_uart_api.h</path>
+            <path>rzn/fsp/inc/fsp_common_api.h</path>
+            <path>rzn/fsp/inc/fsp_features.h</path>
+            <path>rzn/fsp/inc/fsp_version.h</path>
+            <path>rzn/fsp/inc/instances/r_ether_phy.h</path>
+            <path>rzn/fsp/inc/instances/r_ether_selector.h</path>
+            <path>rzn/fsp/inc/instances/r_ethsw.h</path>
+            <path>rzn/fsp/inc/instances/r_gmac.h</path>
+            <path>rzn/fsp/inc/instances/r_ioport.h</path>
+            <path>rzn/fsp/inc/instances/r_sci_uart.h</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/R9A07G084.h</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/startup_core.c</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/system_core.c</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c</path>
+            <path>rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_cache.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_cache.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_clocks.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_clocks.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_common.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_common.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_compiler_support.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_delay.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_delay.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_exceptions.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_io.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_io.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_irq.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_irq.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_mcu_api.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_module_stop.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_register_protection.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_register_protection.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_reset.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_reset.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_sbrk.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/bsp_tfu.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.h</path>
+            <path>rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.c</path>
+            <path>rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.h</path>
+            <path>rzn/fsp/src/bsp/mcu/rzn2l/bsp_elc.h</path>
+            <path>rzn/fsp/src/bsp/mcu/rzn2l/bsp_feature.h</path>
+            <path>rzn/fsp/src/bsp/mcu/rzn2l/bsp_irq_sense.c</path>
+            <path>rzn/fsp/src/bsp/mcu/rzn2l/bsp_loader_param.c</path>
+            <path>rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h</path>
+            <path>rzn/fsp/src/bsp/mcu/rzn2l/bsp_override.h</path>
+            <path>rzn/fsp/src/r_ether_phy/r_ether_phy.c</path>
+            <path>rzn/fsp/src/r_ether_selector/r_ether_selector.c</path>
+            <path>rzn/fsp/src/r_ethsw/r_ethsw.c</path>
+            <path>rzn/fsp/src/r_gmac/r_gmac.c</path>
+            <path>rzn/fsp/src/r_ioport/r_ioport.c</path>
+            <path>rzn/fsp/src/r_sci_uart/r_sci_uart.c</path>
+            <path>rzn/SConscript</path>
+        </group>
+        <group name="Build Configuration">
+            <path>rzn_cfg/fsp_cfg/bsp/board_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_memory_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_pn_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_memory_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/bsp/bsp_pin_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/r_ether_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/r_ether_phy_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/r_ether_selector_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/r_ether_switch_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/r_ioport_cfg.h</path>
+            <path>rzn_cfg/fsp_cfg/r_sci_uart_cfg.h</path>
+            <path>rzn_cfg/SConscript</path>
+        </group>
+        <group name="Generated Data">
+            <path>rzn_gen/bsp_clock_cfg.h</path>
+            <path>rzn_gen/common_data.c</path>
+            <path>rzn_gen/common_data.h</path>
+            <path>rzn_gen/hal_data.c</path>
+            <path>rzn_gen/hal_data.h</path>
+            <path>rzn_gen/main.c</path>
+            <path>rzn_gen/pin_data.c</path>
+            <path>rzn_gen/SConscript</path>
+            <path>rzn_gen/vector_data.c</path>
+            <path>rzn_gen/vector_data.h</path>
+        </group>
+        <group name="Program Entry">
+            <path>src/hal_entry.c</path>
+        </group>
+    </files>
+</iarProjectConnection>

+ 1336 - 0
projects/etherkit_ethernetip_opener/configuration.xml

@@ -0,0 +1,1336 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<raConfiguration version="9">
+  <generalSettings>
+    <option key="#Board#" value="board.rzn2lrsk.xspi0_x1"/>
+    <option key="CPU" value="RZN2L"/>
+    <option key="Core" value="CR52_0"/>
+    <option key="#TargetName#" value="R9A07G084M04GBG"/>
+    <option key="#TargetARCHITECTURE#" value="cortex-r52"/>
+    <option key="#DeviceCommand#" value="R9A07G084M04"/>
+    <option key="#RTOS#" value="_none"/>
+    <option key="#pinconfiguration#" value="R9A07G084M04GBG.pincfg"/>
+    <option key="#FSPVersion#" value="2.0.0"/>
+    <option key="#ConfigurationFragments#" value="Renesas##BSP##Board##rzn2l_rsk##xspi0_x1_boot"/>
+    <option key="#SELECTED_TOOLCHAIN#" value="iar.arm.toolchain"/>
+  </generalSettings>
+  <raBspConfiguration>
+    <config id="config.board.rzn2lrsk.xspi0_x1">
+      <property id="config.board.cache_flg" value="0x00000000"/>
+      <property id="config.board.wrapcfg_v" value="0x00000000"/>
+      <property id="config.board.comcfg_v" value="0x00000000"/>
+      <property id="config.board.bmcfg_v" value="0x00000000"/>
+      <property id="config.board.xspi_flg" value="0x00000000"/>
+      <property id="config.board.ldr_addr_nml" value="0x6000004C"/>
+      <property id="config.board.ldr_size_nml" value="0x00006000"/>
+      <property id="config.board.dest_addr_nml" value="0x00102000"/>
+      <property id="config.board.cssctl_v" value="0x0000003F"/>
+      <property id="config.board.liocfgcs0_v" value="0x00070000"/>
+      <property id="config.board.access_speed" value="0x00000006"/>
+      <property id="config.board.check_sum" value="Auto Calculate."/>
+    </config>
+    <config id="config.bsp.rzn2l.R9A07G084M04GBG">
+      <property id="config.bsp.part_number" value="config.bsp.part_number.value"/>
+      <property id="config.bsp.atcm_size_bytes" value="config.bsp.atcm_size_bytes.value"/>
+      <property id="config.bsp.btcm_size_bytes" value="config.bsp.btcm_size_bytes.value"/>
+      <property id="config.bsp.system_ram_size_bytes" value="config.bsp.system_ram_size_bytes.value"/>
+      <property id="config.bsp.package_style" value="config.bsp.package_style.value"/>
+      <property id="config.bsp.package_pins" value="config.bsp.package_pins.value"/>
+      <property id="config.bsp.cpu" value="config.bsp.cpu.cpu0"/>
+    </config>
+    <config id="config.bsp.rzn2l.cr520_mpu">
+      <property id="config.bsp.fsp.mpu0_read_reg0" value="config.bsp.fsp.mpu0_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg0" value="config.bsp.fsp.mpu0_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg0_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg1" value="config.bsp.fsp.mpu0_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg1" value="config.bsp.fsp.mpu0_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg1_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg2" value="config.bsp.fsp.mpu0_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg2" value="config.bsp.fsp.mpu0_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg2_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg3" value="config.bsp.fsp.mpu0_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg3" value="config.bsp.fsp.mpu0_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg3_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg4" value="config.bsp.fsp.mpu0_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg4" value="config.bsp.fsp.mpu0_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg4_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg5" value="config.bsp.fsp.mpu0_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg5" value="config.bsp.fsp.mpu0_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg5_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg6" value="config.bsp.fsp.mpu0_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg6" value="config.bsp.fsp.mpu0_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg6_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu0_read_reg7" value="config.bsp.fsp.mpu0_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu0_write_reg7" value="config.bsp.fsp.mpu0_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu0_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu0_reg7_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg0" value="config.bsp.fsp.mpu1_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg0" value="config.bsp.fsp.mpu1_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg0_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg1" value="config.bsp.fsp.mpu1_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg1" value="config.bsp.fsp.mpu1_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg1_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg2" value="config.bsp.fsp.mpu1_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg2" value="config.bsp.fsp.mpu1_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg2_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg3" value="config.bsp.fsp.mpu1_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg3" value="config.bsp.fsp.mpu1_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg3_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg4" value="config.bsp.fsp.mpu1_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg4" value="config.bsp.fsp.mpu1_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg4_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg5" value="config.bsp.fsp.mpu1_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg5" value="config.bsp.fsp.mpu1_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg5_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg6" value="config.bsp.fsp.mpu1_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg6" value="config.bsp.fsp.mpu1_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg6_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu1_read_reg7" value="config.bsp.fsp.mpu1_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu1_write_reg7" value="config.bsp.fsp.mpu1_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu1_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu1_reg7_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg0" value="config.bsp.fsp.mpu2_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg0" value="config.bsp.fsp.mpu2_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg0_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg1" value="config.bsp.fsp.mpu2_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg1" value="config.bsp.fsp.mpu2_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg1_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg2" value="config.bsp.fsp.mpu2_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg2" value="config.bsp.fsp.mpu2_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg2_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg3" value="config.bsp.fsp.mpu2_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg3" value="config.bsp.fsp.mpu2_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg3_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg4" value="config.bsp.fsp.mpu2_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg4" value="config.bsp.fsp.mpu2_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg4_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg5" value="config.bsp.fsp.mpu2_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg5" value="config.bsp.fsp.mpu2_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg5_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg6" value="config.bsp.fsp.mpu2_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg6" value="config.bsp.fsp.mpu2_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg6_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu2_read_reg7" value="config.bsp.fsp.mpu2_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu2_write_reg7" value="config.bsp.fsp.mpu2_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu2_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu2_reg7_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu3_read_reg0" value="config.bsp.fsp.mpu3_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg0" value="config.bsp.fsp.mpu3_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg0_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg1" value="config.bsp.fsp.mpu3_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg1" value="config.bsp.fsp.mpu3_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg1_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg2" value="config.bsp.fsp.mpu3_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg2" value="config.bsp.fsp.mpu3_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg2_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg3" value="config.bsp.fsp.mpu3_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg3" value="config.bsp.fsp.mpu3_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg3_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg4" value="config.bsp.fsp.mpu3_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg4" value="config.bsp.fsp.mpu3_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg4_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg5" value="config.bsp.fsp.mpu3_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg5" value="config.bsp.fsp.mpu3_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg5_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg6" value="config.bsp.fsp.mpu3_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg6" value="config.bsp.fsp.mpu3_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg6_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_read_reg7" value="config.bsp.fsp.mpu3_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu3_write_reg7" value="config.bsp.fsp.mpu3_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu3_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu3_reg7_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg0" value="config.bsp.fsp.mpu4_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg0" value="config.bsp.fsp.mpu4_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg0_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg1" value="config.bsp.fsp.mpu4_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg1" value="config.bsp.fsp.mpu4_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg1_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg2" value="config.bsp.fsp.mpu4_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg2" value="config.bsp.fsp.mpu4_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg2_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg3" value="config.bsp.fsp.mpu4_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg3" value="config.bsp.fsp.mpu4_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg3_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg4" value="config.bsp.fsp.mpu4_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg4" value="config.bsp.fsp.mpu4_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg4_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg5" value="config.bsp.fsp.mpu4_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg5" value="config.bsp.fsp.mpu4_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg5_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg6" value="config.bsp.fsp.mpu4_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg6" value="config.bsp.fsp.mpu4_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg6_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_read_reg7" value="config.bsp.fsp.mpu4_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu4_write_reg7" value="config.bsp.fsp.mpu4_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu4_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu4_reg7_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_read_reg0" value="config.bsp.fsp.mpu6_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg0" value="config.bsp.fsp.mpu6_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg0_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg1" value="config.bsp.fsp.mpu6_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg1" value="config.bsp.fsp.mpu6_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg1_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg2" value="config.bsp.fsp.mpu6_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg2" value="config.bsp.fsp.mpu6_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg2_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg3" value="config.bsp.fsp.mpu6_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg3" value="config.bsp.fsp.mpu6_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg3_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg4" value="config.bsp.fsp.mpu6_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg4" value="config.bsp.fsp.mpu6_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg4_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg5" value="config.bsp.fsp.mpu6_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg5" value="config.bsp.fsp.mpu6_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg5_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg6" value="config.bsp.fsp.mpu6_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg6" value="config.bsp.fsp.mpu6_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg6_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu6_read_reg7" value="config.bsp.fsp.mpu6_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu6_write_reg7" value="config.bsp.fsp.mpu6_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu6_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu6_reg7_end" value="0x00000C00"/>
+      <property id="config.bsp.fsp.mpu7_read_reg0" value="config.bsp.fsp.mpu7_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg0" value="config.bsp.fsp.mpu7_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg0_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg1" value="config.bsp.fsp.mpu7_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg1" value="config.bsp.fsp.mpu7_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg1_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg2" value="config.bsp.fsp.mpu7_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg2" value="config.bsp.fsp.mpu7_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg2_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg3" value="config.bsp.fsp.mpu7_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg3" value="config.bsp.fsp.mpu7_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg3_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg4" value="config.bsp.fsp.mpu7_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg4" value="config.bsp.fsp.mpu7_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg4_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg5" value="config.bsp.fsp.mpu7_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg5" value="config.bsp.fsp.mpu7_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg5_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg6" value="config.bsp.fsp.mpu7_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg6" value="config.bsp.fsp.mpu7_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg6_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_read_reg7" value="config.bsp.fsp.mpu7_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu7_write_reg7" value="config.bsp.fsp.mpu7_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu7_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu7_reg7_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg0" value="config.bsp.fsp.mpu8_read_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg0" value="config.bsp.fsp.mpu8_write_reg0.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg0_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg0_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg1" value="config.bsp.fsp.mpu8_read_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg1" value="config.bsp.fsp.mpu8_write_reg1.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg1_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg1_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg2" value="config.bsp.fsp.mpu8_read_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg2" value="config.bsp.fsp.mpu8_write_reg2.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg2_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg2_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg3" value="config.bsp.fsp.mpu8_read_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg3" value="config.bsp.fsp.mpu8_write_reg3.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg3_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg3_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg4" value="config.bsp.fsp.mpu8_read_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg4" value="config.bsp.fsp.mpu8_write_reg4.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg4_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg4_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg5" value="config.bsp.fsp.mpu8_read_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg5" value="config.bsp.fsp.mpu8_write_reg5.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg5_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg5_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg6" value="config.bsp.fsp.mpu8_read_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg6" value="config.bsp.fsp.mpu8_write_reg6.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg6_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg6_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_read_reg7" value="config.bsp.fsp.mpu8_read_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu8_write_reg7" value="config.bsp.fsp.mpu8_write_reg7.disabled"/>
+      <property id="config.bsp.fsp.mpu8_reg7_start" value="0x00000000"/>
+      <property id="config.bsp.fsp.mpu8_reg7_end" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.type" value="config.bsp.fsp.cpu.mpu_attr0.type.normal_memory"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.memory.inner" value="config.bsp.fsp.cpu.mpu_attr0.memory.inner.write_back_non_transient"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr0.memory.inner.read.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr0.memory.inner.write.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.memory.outer" value="config.bsp.fsp.cpu.mpu_attr0.memory.outer.write_back_non_transient"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr0.memory.outer.read.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr0.memory.outer.write.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr0.device" value="config.bsp.fsp.cpu.mpu_attr0.device.nGnRnE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.type" value="config.bsp.fsp.cpu.mpu_attr1.type.normal_memory"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.memory.inner" value="config.bsp.fsp.cpu.mpu_attr1.memory.inner.write_through_non_transient"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr1.memory.inner.read.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr1.memory.inner.write.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.memory.outer" value="config.bsp.fsp.cpu.mpu_attr1.memory.outer.write_through_non_transient"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr1.memory.outer.read.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr1.memory.outer.write.allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr1.device" value="config.bsp.fsp.cpu.mpu_attr1.device.nGnRnE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.type" value="config.bsp.fsp.cpu.mpu_attr2.type.normal_memory"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.memory.inner" value="config.bsp.fsp.cpu.mpu_attr2.memory.inner.write_through_non_transient"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr2.memory.inner.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr2.memory.inner.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.memory.outer" value="config.bsp.fsp.cpu.mpu_attr2.memory.outer.write_through_non_transient"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr2.memory.outer.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr2.memory.outer.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr2.device" value="config.bsp.fsp.cpu.mpu_attr2.device.nGnRnE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.type" value="config.bsp.fsp.cpu.mpu_attr3.type.normal_memory"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.memory.inner" value="config.bsp.fsp.cpu.mpu_attr3.memory.inner.non_chacheable"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr3.memory.inner.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr3.memory.inner.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.memory.outer" value="config.bsp.fsp.cpu.mpu_attr3.memory.outer.non_chacheable"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr3.memory.outer.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr3.memory.outer.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr3.device" value="config.bsp.fsp.cpu.mpu_attr3.device.nGnRnE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.type" value="config.bsp.fsp.cpu.mpu_attr4.type.device"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.memory.inner" value="config.bsp.fsp.cpu.mpu_attr4.memory.inner.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr4.memory.inner.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr4.memory.inner.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.memory.outer" value="config.bsp.fsp.cpu.mpu_attr4.memory.outer.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr4.memory.outer.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr4.memory.outer.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr4.device" value="config.bsp.fsp.cpu.mpu_attr4.device.nGnRnE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.type" value="config.bsp.fsp.cpu.mpu_attr5.type.device"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.memory.inner" value="config.bsp.fsp.cpu.mpu_attr5.memory.inner.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr5.memory.inner.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr5.memory.inner.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.memory.outer" value="config.bsp.fsp.cpu.mpu_attr5.memory.outer.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr5.memory.outer.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr5.memory.outer.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr5.device" value="config.bsp.fsp.cpu.mpu_attr5.device.nGnRE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.type" value="config.bsp.fsp.cpu.mpu_attr6.type.device"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.memory.inner" value="config.bsp.fsp.cpu.mpu_attr6.memory.inner.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr6.memory.inner.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr6.memory.inner.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.memory.outer" value="config.bsp.fsp.cpu.mpu_attr6.memory.outer.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr6.memory.outer.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr6.memory.outer.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr6.device" value="config.bsp.fsp.cpu.mpu_attr6.device.nGRE"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.type" value="config.bsp.fsp.cpu.mpu_attr7.type.device"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.memory.inner" value="config.bsp.fsp.cpu.mpu_attr7.memory.inner.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.memory.inner.read" value="config.bsp.fsp.cpu.mpu_attr7.memory.inner.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.memory.inner.write" value="config.bsp.fsp.cpu.mpu_attr7.memory.inner.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.memory.outer" value="config.bsp.fsp.cpu.mpu_attr7.memory.outer.write_through"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.memory.outer.read" value="config.bsp.fsp.cpu.mpu_attr7.memory.outer.read.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.memory.outer.write" value="config.bsp.fsp.cpu.mpu_attr7.memory.outer.write.not_allocate"/>
+      <property id="config.bsp.fsp.cpu.mpu_attr7.device" value="config.bsp.fsp.cpu.mpu_attr7.device.GRE"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.name" value="ATCM"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.limit" value="0x0001FFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.sh" value="config.bsp.fsp.cpu.mpu_reg00.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.ap" value="config.bsp.fsp.cpu.mpu_reg00.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.xn" value="config.bsp.fsp.cpu.mpu_reg00.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.attr_index" value="config.bsp.fsp.cpu.mpu_reg00.attr_index.atrr3"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg00.region_enable" value="config.bsp.fsp.cpu.mpu_reg00.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.name" value="BTCM"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.base" value="0x00100000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.limit" value="0x0011FFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.sh" value="config.bsp.fsp.cpu.mpu_reg01.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.ap" value="config.bsp.fsp.cpu.mpu_reg01.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.xn" value="config.bsp.fsp.cpu.mpu_reg01.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.attr_index" value="config.bsp.fsp.cpu.mpu_reg01.attr_index.atrr3"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg01.region_enable" value="config.bsp.fsp.cpu.mpu_reg01.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.name" value="System RAM"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.base" value="0x10000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.limit" value="0x1017FFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.sh" value="config.bsp.fsp.cpu.mpu_reg02.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.ap" value="config.bsp.fsp.cpu.mpu_reg02.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.xn" value="config.bsp.fsp.cpu.mpu_reg02.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.attr_index" value="config.bsp.fsp.cpu.mpu_reg02.attr_index.atrr1"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg02.region_enable" value="config.bsp.fsp.cpu.mpu_reg02.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.name" value="Mirror area of System RAM"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.base" value="0x30000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.limit" value="0x3017FFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.sh" value="config.bsp.fsp.cpu.mpu_reg03.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.ap" value="config.bsp.fsp.cpu.mpu_reg03.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.xn" value="config.bsp.fsp.cpu.mpu_reg03.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.attr_index" value="config.bsp.fsp.cpu.mpu_reg03.attr_index.atrr3"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg03.region_enable" value="config.bsp.fsp.cpu.mpu_reg03.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.name" value="Mirror area of external address space"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.base" value="0x40000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.limit" value="0x5FFFFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.sh" value="config.bsp.fsp.cpu.mpu_reg04.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.ap" value="config.bsp.fsp.cpu.mpu_reg04.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.xn" value="config.bsp.fsp.cpu.mpu_reg04.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.attr_index" value="config.bsp.fsp.cpu.mpu_reg04.attr_index.atrr3"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg04.region_enable" value="config.bsp.fsp.cpu.mpu_reg04.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.name" value="External address space"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.base" value="0x60000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.limit" value="0x7FFFFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.sh" value="config.bsp.fsp.cpu.mpu_reg05.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.ap" value="config.bsp.fsp.cpu.mpu_reg05.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.xn" value="config.bsp.fsp.cpu.mpu_reg05.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.attr_index" value="config.bsp.fsp.cpu.mpu_reg05.attr_index.atrr1"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg05.region_enable" value="config.bsp.fsp.cpu.mpu_reg05.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.name" value="Non-Safety Peripheral"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.base" value="0x80000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.limit" value="0x80FFFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.sh" value="config.bsp.fsp.cpu.mpu_reg06.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.ap" value="config.bsp.fsp.cpu.mpu_reg06.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.xn" value="config.bsp.fsp.cpu.mpu_reg06.xn.execute_never"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.attr_index" value="config.bsp.fsp.cpu.mpu_reg06.attr_index.atrr5"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg06.region_enable" value="config.bsp.fsp.cpu.mpu_reg06.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.name" value="Safety Peripheral"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.base" value="0x81000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.limit" value="0x81FFFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.sh" value="config.bsp.fsp.cpu.mpu_reg07.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.ap" value="config.bsp.fsp.cpu.mpu_reg07.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.xn" value="config.bsp.fsp.cpu.mpu_reg07.xn.execute_never"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.attr_index" value="config.bsp.fsp.cpu.mpu_reg07.attr_index.atrr5"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg07.region_enable" value="config.bsp.fsp.cpu.mpu_reg07.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.name" value="LLPP Peripheral"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.base" value="0x90000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.limit" value="0x901FFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.sh" value="config.bsp.fsp.cpu.mpu_reg08.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.ap" value="config.bsp.fsp.cpu.mpu_reg08.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.xn" value="config.bsp.fsp.cpu.mpu_reg08.xn.execute_never"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.attr_index" value="config.bsp.fsp.cpu.mpu_reg08.attr_index.atrr5"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg08.region_enable" value="config.bsp.fsp.cpu.mpu_reg08.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.name" value="GIC0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.base" value="0x94000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.limit" value="0x941FFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.sh" value="config.bsp.fsp.cpu.mpu_reg09.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.ap" value="config.bsp.fsp.cpu.mpu_reg09.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.xn" value="config.bsp.fsp.cpu.mpu_reg09.xn.execute_never"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.attr_index" value="config.bsp.fsp.cpu.mpu_reg09.attr_index.atrr4"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg09.region_enable" value="config.bsp.fsp.cpu.mpu_reg09.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.name" value="Debug Private"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.base" value="0xC0000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.limit" value="0xC0FFFFFF"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.sh" value="config.bsp.fsp.cpu.mpu_reg10.sh.outer_shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.ap" value="config.bsp.fsp.cpu.mpu_reg10.ap.rw_rw"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.xn" value="config.bsp.fsp.cpu.mpu_reg10.xn.execute_never"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.attr_index" value="config.bsp.fsp.cpu.mpu_reg10.attr_index.atrr4"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg10.region_enable" value="config.bsp.fsp.cpu.mpu_reg10.region_enable.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.sh" value="config.bsp.fsp.cpu.mpu_reg11.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.ap" value="config.bsp.fsp.cpu.mpu_reg11.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.xn" value="config.bsp.fsp.cpu.mpu_reg11.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.attr_index" value="config.bsp.fsp.cpu.mpu_reg11.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg11.region_enable" value="config.bsp.fsp.cpu.mpu_reg11.region_enable.disabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.sh" value="config.bsp.fsp.cpu.mpu_reg12.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.ap" value="config.bsp.fsp.cpu.mpu_reg12.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.xn" value="config.bsp.fsp.cpu.mpu_reg12.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.attr_index" value="config.bsp.fsp.cpu.mpu_reg12.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg12.region_enable" value="config.bsp.fsp.cpu.mpu_reg12.region_enable.disabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.sh" value="config.bsp.fsp.cpu.mpu_reg13.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.ap" value="config.bsp.fsp.cpu.mpu_reg13.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.xn" value="config.bsp.fsp.cpu.mpu_reg13.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.attr_index" value="config.bsp.fsp.cpu.mpu_reg13.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg13.region_enable" value="config.bsp.fsp.cpu.mpu_reg13.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.sh" value="config.bsp.fsp.cpu.mpu_reg14.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.ap" value="config.bsp.fsp.cpu.mpu_reg14.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.xn" value="config.bsp.fsp.cpu.mpu_reg14.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.attr_index" value="config.bsp.fsp.cpu.mpu_reg14.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg14.region_enable" value="config.bsp.fsp.cpu.mpu_reg14.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.sh" value="config.bsp.fsp.cpu.mpu_reg15.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.ap" value="config.bsp.fsp.cpu.mpu_reg15.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.xn" value="config.bsp.fsp.cpu.mpu_reg15.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.attr_index" value="config.bsp.fsp.cpu.mpu_reg15.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg15.region_enable" value="config.bsp.fsp.cpu.mpu_reg15.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.sh" value="config.bsp.fsp.cpu.mpu_reg16.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.ap" value="config.bsp.fsp.cpu.mpu_reg16.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.xn" value="config.bsp.fsp.cpu.mpu_reg16.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.attr_index" value="config.bsp.fsp.cpu.mpu_reg16.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg16.region_enable" value="config.bsp.fsp.cpu.mpu_reg16.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.sh" value="config.bsp.fsp.cpu.mpu_reg17.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.ap" value="config.bsp.fsp.cpu.mpu_reg17.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.xn" value="config.bsp.fsp.cpu.mpu_reg17.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.attr_index" value="config.bsp.fsp.cpu.mpu_reg17.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg17.region_enable" value="config.bsp.fsp.cpu.mpu_reg17.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.sh" value="config.bsp.fsp.cpu.mpu_reg18.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.ap" value="config.bsp.fsp.cpu.mpu_reg18.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.xn" value="config.bsp.fsp.cpu.mpu_reg18.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.attr_index" value="config.bsp.fsp.cpu.mpu_reg18.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg18.region_enable" value="config.bsp.fsp.cpu.mpu_reg18.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.sh" value="config.bsp.fsp.cpu.mpu_reg19.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.ap" value="config.bsp.fsp.cpu.mpu_reg19.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.xn" value="config.bsp.fsp.cpu.mpu_reg19.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.attr_index" value="config.bsp.fsp.cpu.mpu_reg19.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg19.region_enable" value="config.bsp.fsp.cpu.mpu_reg19.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.sh" value="config.bsp.fsp.cpu.mpu_reg20.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.ap" value="config.bsp.fsp.cpu.mpu_reg20.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.xn" value="config.bsp.fsp.cpu.mpu_reg20.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.attr_index" value="config.bsp.fsp.cpu.mpu_reg20.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg20.region_enable" value="config.bsp.fsp.cpu.mpu_reg20.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.sh" value="config.bsp.fsp.cpu.mpu_reg21.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.ap" value="config.bsp.fsp.cpu.mpu_reg21.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.xn" value="config.bsp.fsp.cpu.mpu_reg21.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.attr_index" value="config.bsp.fsp.cpu.mpu_reg21.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg21.region_enable" value="config.bsp.fsp.cpu.mpu_reg21.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.sh" value="config.bsp.fsp.cpu.mpu_reg22.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.ap" value="config.bsp.fsp.cpu.mpu_reg22.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.xn" value="config.bsp.fsp.cpu.mpu_reg22.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.attr_index" value="config.bsp.fsp.cpu.mpu_reg22.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg22.region_enable" value="config.bsp.fsp.cpu.mpu_reg22.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.name" value="Not Used"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.base" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.limit" value="0x00000000"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.sh" value="config.bsp.fsp.cpu.mpu_reg23.sh.non-shareable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.ap" value="config.bsp.fsp.cpu.mpu_reg23.ap.rw_none"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.xn" value="config.bsp.fsp.cpu.mpu_reg23.xn.execute_enable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.attr_index" value="config.bsp.fsp.cpu.mpu_reg23.attr_index.atrr0"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg23.region_enable" value="config.bsp.fsp.cpu.mpu_reg23.region_enable.disable"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg.br" value="config.bsp.fsp.cpu.mpu_reg.br.disabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg.i" value="config.bsp.fsp.cpu.mpu_reg.i.enabled"/>
+      <property id="config.bsp.fsp.cpu.mpu_reg.c" value="config.bsp.fsp.cpu.mpu_reg.c.enabled"/>
+    </config>
+    <config id="config.bsp.rzn2l">
+      <property id="config.bsp.common.fiq" value="0x400"/>
+      <property id="config.bsp.common.irq" value="0x400"/>
+      <property id="config.bsp.common.abt" value="0x400"/>
+      <property id="config.bsp.common.und" value="0x400"/>
+      <property id="config.bsp.common.sys" value="0x400"/>
+      <property id="config.bsp.common.svc" value="0x400"/>
+      <property id="config.bsp.common.heap" value="0x2000"/>
+      <property id="config.bsp.common.c_runtime_init" value="config.bsp.common.c_runtime_init.enabled"/>
+      <property id="config.bsp.common.tfu_mathlib" value="config.bsp.common.tfu_mathlib.enabled"/>
+    </config>
+    <config id="config.bsp.rzn2l.fsp">
+      <property id="config.bsp.fsp.mcu.sci_uart.ctspen_channels" value="0x03F"/>
+      <property id="config.bsp.fsp.mcu.sci_uart.max_baud" value="16000000"/>
+      <property id="config.bsp.fsp.mcu.sci_spi.max_bitrate" value="37500000"/>
+      <property id="config.bsp.fsp.mcu.spi.max_bitrate" value="50000000"/>
+      <property id="config.bsp.fsp.mcu.adc.sample_and_hold" value="1"/>
+    </config>
+    <config id="config.bsp.rz">
+      <property id="config.bsp.common.vcc" value="3300"/>
+      <property id="config.bsp.common.checking" value="config.bsp.common.checking.disabled"/>
+      <property id="config.bsp.common.assert" value="config.bsp.common.assert.none"/>
+      <property id="config.bsp.common.error_log" value="config.bsp.common.error_log.none"/>
+      <property id="config.bsp.common.soft_reset" value="config.bsp.common.soft_reset.disabled"/>
+      <property id="config.bsp.common.port_protect" value="config.bsp.common.port_protect.enabled"/>
+      <property id="config.bsp.common.early_init" value="config.bsp.common.early_init.disabled"/>
+      <property id="config.bsp.common.multiplex_interrupt" value="config.bsp.common.multiplex_interrupt.disabled"/>
+    </config>
+  </raBspConfiguration>
+  <raClockConfiguration>
+    <node id="board.clock.main.freq" option="board.clock.main.freq.25m"/>
+    <node id="board.clock.loco.enable" option="board.clock.loco.enable.enabled"/>
+    <node id="board.clock.pll0.display" option="board.clock.pll0.display.value"/>
+    <node id="board.clock.pll1" option="board.clock.pll1.initial"/>
+    <node id="board.clock.pll1.display" option="board.clock.pll1.display.value"/>
+    <node id="board.clock.ethernet.source" option="board.clock.ethernet.source.main"/>
+    <node id="board.clock.reference.display" option="board.clock.reference.display.value"/>
+    <node id="board.clock.loco.freq" option="board.clock.loco.freq.240k"/>
+    <node id="board.clock.clma0.enable" option="board.clock.clma0.enable.enabled"/>
+    <node id="board.clock.clma0.error" option="board.clock.clma0.error.not_mask"/>
+    <node id="board.clock.clma3.error" option="board.clock.clma3.error.not_mask"/>
+    <node id="board.clock.clma1.error" option="board.clock.clma1.error.mask"/>
+    <node id="board.clock.clma3.enable" option="board.clock.clma3.enable.enabled"/>
+    <node id="board.clock.clma1.enable" option="board.clock.clma1.enable.enabled"/>
+    <node id="board.clock.clma2.enable" option="board.clock.clma2.enable.enabled"/>
+    <node id="board.clock.clma0.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma1.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma2.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma3.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.alternative.source" option="board.clock.alternative.source.loco"/>
+    <node id="board.clock.clma0.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma1.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma2.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma3.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.iclk.freq" option="board.clock.iclk.freq.200m"/>
+    <node id="board.clock.cpu0clk.mul" option="board.clock.cpu0clk.mul.2"/>
+    <node id="board.clock.cpu0clk.display" option="board.clock.cpu0clk.display.value"/>
+    <node id="board.clock.ckio.div" option="board.clock.ckio.div.4"/>
+    <node id="board.clock.ckio.display" option="board.clock.ckio.display.value"/>
+    <node id="board.clock.sci0asyncclk.sel" option="board.clock.sci0asyncclk.sel.1"/>
+    <node id="board.clock.sci1asyncclk.sel" option="board.clock.sci1asyncclk.sel.1"/>
+    <node id="board.clock.sci2asyncclk.sel" option="board.clock.sci2asyncclk.sel.1"/>
+    <node id="board.clock.sci3asyncclk.sel" option="board.clock.sci3asyncclk.sel.1"/>
+    <node id="board.clock.sci4asyncclk.sel" option="board.clock.sci4asyncclk.sel.1"/>
+    <node id="board.clock.sci5asyncclk.sel" option="board.clock.sci5asyncclk.sel.1"/>
+    <node id="board.clock.spi0asyncclk.sel" option="board.clock.spi0asyncclk.sel.1"/>
+    <node id="board.clock.spi1asyncclk.sel" option="board.clock.spi1asyncclk.sel.1"/>
+    <node id="board.clock.spi2asyncclk.sel" option="board.clock.spi2asyncclk.sel.1"/>
+    <node id="board.clock.spi3asyncclk.sel" option="board.clock.spi3asyncclk.sel.1"/>
+    <node id="board.clock.pclkshost.display" option="board.clock.pclkshost.display.value"/>
+    <node id="board.clock.pclkgptl.display" option="board.clock.pclkgptl.display.value"/>
+    <node id="board.clock.pclkh.display" option="board.clock.pclkh.display.value"/>
+    <node id="board.clock.pclkm.display" option="board.clock.pclkm.display.value"/>
+    <node id="board.clock.pclkl.display" option="board.clock.pclkl.display.value"/>
+    <node id="board.clock.pclkadc.display" option="board.clock.pclkadc.display.value"/>
+    <node id="board.clock.pclkcan.freq" option="board.clock.pclkcan.freq.40m"/>
+    <node id="board.clock.xspi.clk0.freq" option="board.clock.xspi.clk0.freq.133m"/>
+    <node id="board.clock.xspi.clk1.freq" option="board.clock.xspi.clk1.freq.12m"/>
+    <node id="board.clock.tclk.freq" option="board.clock.tclk.freq.100m"/>
+  </raClockConfiguration>
+  <raComponentSelection>
+    <component apiversion="" class="Common" condition="" group="all" subgroup="fsp_common" variant="" vendor="Renesas" version="2.0.0">
+      <description>Board Support Package Common Files</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="BSP" condition="" group="all" subgroup="Memory" variant="" vendor="Renesas" version="2.0.0">
+      <description>Memory Config Checking</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="HAL Drivers" condition="" group="all" subgroup="r_ioport" variant="" vendor="Renesas" version="2.0.0">
+      <description>I/O Port</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="CMSIS" condition="" group="CMSIS5" subgroup="Core" variant="" vendor="Arm" version="5.7.0+renesas.1.fsp.2.0.0">
+      <description>Arm CMSIS Version 5 - Core</description>
+      <originalPack>Arm.CMSIS5.5.7.0+renesas.1.fsp.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="BSP" condition="" group="Board" subgroup="rzn2l_rsk" variant="xspi0_x1_boot" vendor="Renesas" version="2.0.0">
+      <description>RSK+RZN2L Board Support Files (xSPI0 x1 boot mode)</description>
+      <originalPack>Renesas.RZN_board_rzn2l_rsk.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="BSP" condition="" group="rzn2l" subgroup="device" variant="R9A07G084M04GBG" vendor="Renesas" version="2.0.0">
+      <description>Board support package for R9A07G084M04GBG</description>
+      <originalPack>Renesas.RZN_mcu_rzn2l.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="BSP" condition="" group="rzn2l" subgroup="device" variant="" vendor="Renesas" version="2.0.0">
+      <description>Board support package for RZN2L</description>
+      <originalPack>Renesas.RZN_mcu_rzn2l.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="BSP" condition="" group="rzn2l" subgroup="fsp" variant="" vendor="Renesas" version="2.0.0">
+      <description>Board support package for RZN2L - FSP Data</description>
+      <originalPack>Renesas.RZN_mcu_rzn2l.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="HAL Drivers" condition="" group="all" subgroup="r_sci_uart" variant="" vendor="Renesas" version="2.0.0">
+      <description>SCI UART</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="HAL Drivers" condition="" group="all" subgroup="r_ether_phy" variant="" vendor="Renesas" version="2.0.0">
+      <description>Ethernet PHY</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="HAL Drivers" condition="" group="all" subgroup="r_ether_selector" variant="" vendor="Renesas" version="2.0.0">
+      <description>Ethernet Selector</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="HAL Drivers" condition="" group="all" subgroup="r_ethsw" variant="" vendor="Renesas" version="2.0.0">
+      <description>Ethernet Switch</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+    <component apiversion="" class="HAL Drivers" condition="" group="all" subgroup="r_gmac" variant="" vendor="Renesas" version="2.0.0">
+      <description>Ethernet</description>
+      <originalPack>Renesas.RZN.2.0.0.pack</originalPack>
+    </component>
+  </raComponentSelection>
+  <raElcConfiguration/>
+  <raIcuConfiguration/>
+  <raModuleConfiguration>
+    <module id="module.driver.ioport_on_ioport.0">
+      <property id="module.driver.ioport.name" value="g_ioport"/>
+      <property id="module.driver.ioport.elc_trigger_output_group1" value="_disabled"/>
+      <property id="module.driver.ioport.port_select_output_group1" value=""/>
+      <property id="module.driver.ioport.operation_output_group1" value="Low output"/>
+      <property id="module.driver.ioport.elc_trigger_output_group2" value="_disabled"/>
+      <property id="module.driver.ioport.port_select_output_group2" value=""/>
+      <property id="module.driver.ioport.operation_output_group2" value="Low output"/>
+      <property id="module.driver.ioport.elc_trigger_input_group1" value="_disabled"/>
+      <property id="module.driver.ioport.event_control_input_group1" value="Disabled"/>
+      <property id="module.driver.ioport.port_select_input_group1" value=""/>
+      <property id="module.driver.ioport.edge_detect_input_group1" value="Rising edge"/>
+      <property id="module.driver.ioport.buffer_overwrite_input_group1" value="Disabled"/>
+      <property id="module.driver.ioport.p16_0_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.p16_1_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.p16_2_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.p16_3_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.p16_5_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.p16_6_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.p16_7_initial_value_input_group1" value="Low input"/>
+      <property id="module.driver.ioport.elc_trigger_input_group2" value="_disabled"/>
+      <property id="module.driver.ioport.event_control_input_group2" value="Disabled"/>
+      <property id="module.driver.ioport.port_select_input_group2" value=""/>
+      <property id="module.driver.ioport.edge_detect_input_group2" value="Rising edge"/>
+      <property id="module.driver.ioport.buffer_overwrite_input_group2" value="Disabled"/>
+      <property id="module.driver.ioport.p18_0_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.p18_1_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.p18_2_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.p18_3_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.p18_4_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.p18_5_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.p18_6_initial_value_input_group2" value="Low input"/>
+      <property id="module.driver.ioport.event_control_single_port0" value="Disabled"/>
+      <property id="module.driver.ioport.event_direction_single_port0" value="Output direction"/>
+      <property id="module.driver.ioport.port_number_single_port0" value="P16_0"/>
+      <property id="module.driver.ioport.elc_trigger_single_output_port0" value="_disabled"/>
+      <property id="module.driver.ioport.operation_single_output_port0" value="Low output"/>
+      <property id="module.driver.ioport.edge_detect_single_output_port0" value="Rising edge"/>
+      <property id="module.driver.ioport.event_control_single_port1" value="Disabled"/>
+      <property id="module.driver.ioport.event_direction_single_port1" value="Output direction"/>
+      <property id="module.driver.ioport.port_number_single_port1" value="P16_0"/>
+      <property id="module.driver.ioport.elc_trigger_single_output_port1" value="_disabled"/>
+      <property id="module.driver.ioport.operation_single_output_port1" value="Low output"/>
+      <property id="module.driver.ioport.edge_detect_single_output_port1" value="Rising edge"/>
+      <property id="module.driver.ioport.event_control_single_port2" value="Disabled"/>
+      <property id="module.driver.ioport.event_direction_single_port2" value="Output direction"/>
+      <property id="module.driver.ioport.port_number_single_port2" value="P16_0"/>
+      <property id="module.driver.ioport.elc_trigger_single_output_port2" value="_disabled"/>
+      <property id="module.driver.ioport.operation_single_output_port2" value="Low output"/>
+      <property id="module.driver.ioport.edge_detect_single_output_port2" value="Rising edge"/>
+      <property id="module.driver.ioport.event_control_single_port3" value="Disabled"/>
+      <property id="module.driver.ioport.event_direction_single_port3" value="Output direction"/>
+      <property id="module.driver.ioport.port_number_single_port3" value="P16_0"/>
+      <property id="module.driver.ioport.elc_trigger_single_output_port3" value="_disabled"/>
+      <property id="module.driver.ioport.operation_single_output_port3" value="Low output"/>
+      <property id="module.driver.ioport.edge_detect_single_output_port3" value="Rising edge"/>
+    </module>
+    <module id="module.bsp.memory_config.0"/>
+    <module id="module.driver.uart_on_sci_uart.86814920">
+      <property id="module.driver.uart.name" value="g_uart0"/>
+      <property id="module.driver.uart.channel" value="0"/>
+      <property id="module.driver.uart.data_bits" value="module.driver.uart.data_bits.data_bits_8"/>
+      <property id="module.driver.uart.parity" value="module.driver.uart.parity.parity_off"/>
+      <property id="module.driver.uart.stop_bits" value="module.driver.uart.stop_bits.stop_bits_1"/>
+      <property id="module.driver.uart.baud" value="115200"/>
+      <property id="module.driver.uart.baudrate_modulation" value="module.driver.uart.baudrate_modulation.disabled"/>
+      <property id="module.driver.uart.baudrate_max_err" value="5"/>
+      <property id="module.driver.uart.clock_source" value="module.driver.uart.clock_source.scinasyncclk"/>
+      <property id="module.driver.uart.flow_control" value="module.driver.uart.flow_control.rts"/>
+      <property id="module.driver.uart.pin_control_port" value="module.driver.uart.pin_control_port.PORT_DISABLE"/>
+      <property id="module.driver.uart.pin_control_pin" value="module.driver.uart.pin_control_pin.PIN_DISABLE"/>
+      <property id="module.driver.uart.clk_src" value="module.driver.uart.clk_src.int_clk"/>
+      <property id="module.driver.uart.rx_edge_start" value="module.driver.uart.rx_edge_start.falling_edge"/>
+      <property id="module.driver.uart.noisecancel_en" value="module.driver.uart.noisecancel_en.disabled"/>
+      <property id="module.driver.uart.rx_fifo_trigger" value="module.driver.uart.rx_fifo_trigger.max"/>
+      <property id="module.driver.uart.rs485.de_enable" value="module.driver.uart.rs485.de_enable.disabled"/>
+      <property id="module.driver.uart.rs485.de_polarity" value="module.driver.uart.rs485.de_polarity.high"/>
+      <property id="module.driver.uart.rs485.de_assertion_time" value="1"/>
+      <property id="module.driver.uart.rs485.de_negation_time" value="1"/>
+      <property id="module.driver.uart.callback" value="user_uart0_callback"/>
+      <property id="module.driver.uart.rxi_ipl" value="board.icu.common.irq.priority12"/>
+      <property id="module.driver.uart.txi_ipl" value="board.icu.common.irq.priority12"/>
+      <property id="module.driver.uart.tei_ipl" value="board.icu.common.irq.priority12"/>
+      <property id="module.driver.uart.eri_ipl" value="board.icu.common.irq.priority12"/>
+    </module>
+    <module id="module.driver.ether_on_ether.1971357430">
+      <property id="module.driver.ether.name" value="g_ether0"/>
+      <property id="module.driver.ether.channel" value="module.driver.ether.channel.0"/>
+      <property id="module.driver.ether.mac_address" value="00:11:22:33:44:55"/>
+      <property id="module.driver.ether.zerocopy" value="module.driver.ether.zerocopy.0"/>
+      <property id="module.driver.ether.flow_control" value="module.driver.ether.flow_control.disable"/>
+      <property id="module.driver.ether.promiscuous" value="module.driver.ether.promiscuous.1"/>
+      <property id="module.driver.ether.num_tx_descriptors" value="8"/>
+      <property id="module.driver.ether.num_rx_descriptors" value="8"/>
+      <property id="module.driver.ether.ether_buffer_size" value="2048"/>
+      <property id="module.driver.ether.sbd_interrupt_priority" value="board.icu.common.irq.priority12"/>
+      <property id="module.driver.ether.pmt_interrupt_priority" value="board.icu.common.irq.priority12"/>
+      <property id="module.driver.ether.p_callback" value="user_ether0_callback"/>
+      <property id="module.driver.ether.phylink" value="module.driver.ether.phylink.disable"/>
+    </module>
+    <module id="module.driver.ether_phy_on_ether_phy.1112186457">
+      <property id="module.driver.ether_phy.name" value="g_ether_phy0"/>
+      <property id="module.driver.ether_phy.channel" value="module.driver.ether_phy.channel.0"/>
+      <property id="module.driver.ether_phy.phy_lsi_address" value="1"/>
+      <property id="module.driver.ether_phy.phy_reset_wait_time" value="0x00020000"/>
+      <property id="module.driver.ether_phy.flow_control" value="module.driver.ether_phy.flow_control.disable"/>
+      <property id="module.driver.ether_phy.port_type" value="module.driver.ether_phy.port_type.0"/>
+      <property id="module.driver.ether_phy.phy_lsi_type" value="module.driver.ether_phy.phy_lsi_type.custom"/>
+      <property id="module.driver.ether_phy.target_init" value="ether_phy_targets_initialize_rtl8211_rgmii"/>
+      <property id="module.driver.ether_phy.mdio_type" value="module.driver.ether_phy.mdio_type.0"/>
+      <property id="module.driver.ether_phy.auto_negotiation" value="module.driver.ether_phy.auto_negotiation.1"/>
+      <property id="module.driver.ether_phy.bps" value="module.driver.ether_phy.bps.3"/>
+      <property id="module.driver.ether_phy.duplex" value="module.driver.ether_phy.duplex.1"/>
+      <property id="module.driver.ether_phy.reset_port" value="module.driver.ether_phy.reset_port.PORT_13"/>
+      <property id="module.driver.ether_phy.reset_pin" value="module.driver.ether_phy.reset_pin.PIN_04"/>
+      <property id="module.driver.ether_phy.reset_time" value="15000"/>
+    </module>
+    <module id="module.driver.ether_selector_on_ether_selector.213547056">
+      <property id="module.driver.ether_selector.name" value="g_ether_selector0"/>
+      <property id="module.driver.ether_selector.channel" value="module.driver.ether_selector.channel.0"/>
+      <property id="module.driver.ether_selector.phylink" value="module.driver.ether_selector.phylink.low"/>
+      <property id="module.driver.ether_selector.interface_type" value="module.driver.ether_selector.interface_type.rgmii"/>
+      <property id="module.driver.ether_selector.speed" value="module.driver.ether_selector.speed.bps1000m"/>
+      <property id="module.driver.ether_selector.duplex" value="module.driver.ether_selector.duplex.full"/>
+      <property id="module.driver.ether_selector.ref_clock" value="module.driver.ether_selector.ref_clock.input"/>
+    </module>
+    <module id="module.driver.ether_switch_on_ether_switch.413512353">
+      <property id="module.driver.ethsw.name" value="g_ethsw0"/>
+      <property id="module.driver.ethsw.channel" value="module.driver.ethsw.channel.0"/>
+      <property id="module.driver.ethsw.specific_tag" value="module.driver.ethsw.specific_tag.0"/>
+      <property id="module.driver.ethsw.specific_tag_id" value="0xE001"/>
+      <property id="module.driver.ethsw.phylink" value="module.driver.ethsw.phylink.disable"/>
+      <property id="module.driver.ethsw.priority" value="board.icu.common.irq.priority12"/>
+      <property id="module.driver.ethsw.p_callback" value="NULL"/>
+      <property id="module.driver.ethsw.p_context" value="NULL"/>
+    </module>
+    <module id="module.driver.ether_phy_on_ether_phy.287010932">
+      <property id="module.driver.ether_phy.name" value="g_ether_phy1"/>
+      <property id="module.driver.ether_phy.channel" value="module.driver.ether_phy.channel.0"/>
+      <property id="module.driver.ether_phy.phy_lsi_address" value="2"/>
+      <property id="module.driver.ether_phy.phy_reset_wait_time" value="0x00020000"/>
+      <property id="module.driver.ether_phy.flow_control" value="module.driver.ether_phy.flow_control.disable"/>
+      <property id="module.driver.ether_phy.port_type" value="module.driver.ether_phy.port_type.0"/>
+      <property id="module.driver.ether_phy.phy_lsi_type" value="module.driver.ether_phy.phy_lsi_type.custom"/>
+      <property id="module.driver.ether_phy.target_init" value="ether_phy_targets_initialize_rtl8211_rgmii"/>
+      <property id="module.driver.ether_phy.mdio_type" value="module.driver.ether_phy.mdio_type.0"/>
+      <property id="module.driver.ether_phy.auto_negotiation" value="module.driver.ether_phy.auto_negotiation.1"/>
+      <property id="module.driver.ether_phy.bps" value="module.driver.ether_phy.bps.3"/>
+      <property id="module.driver.ether_phy.duplex" value="module.driver.ether_phy.duplex.1"/>
+      <property id="module.driver.ether_phy.reset_port" value="module.driver.ether_phy.reset_port.PORT_13"/>
+      <property id="module.driver.ether_phy.reset_pin" value="module.driver.ether_phy.reset_pin.PIN_04"/>
+      <property id="module.driver.ether_phy.reset_time" value="15000"/>
+    </module>
+    <module id="module.driver.ether_selector_on_ether_selector.1760620550">
+      <property id="module.driver.ether_selector.name" value="g_ether_selector1"/>
+      <property id="module.driver.ether_selector.channel" value="module.driver.ether_selector.channel.0"/>
+      <property id="module.driver.ether_selector.phylink" value="module.driver.ether_selector.phylink.low"/>
+      <property id="module.driver.ether_selector.interface_type" value="module.driver.ether_selector.interface_type.rgmii"/>
+      <property id="module.driver.ether_selector.speed" value="module.driver.ether_selector.speed.bps1000m"/>
+      <property id="module.driver.ether_selector.duplex" value="module.driver.ether_selector.duplex.full"/>
+      <property id="module.driver.ether_selector.ref_clock" value="module.driver.ether_selector.ref_clock.input"/>
+    </module>
+    <context id="_hal.0">
+      <stack module="module.driver.ioport_on_ioport.0"/>
+      <stack module="module.bsp.memory_config.0"/>
+      <stack module="module.driver.uart_on_sci_uart.86814920"/>
+      <stack module="module.driver.ether_on_ether.1971357430">
+        <stack module="module.driver.ether_phy_on_ether_phy.1112186457" requires="module.driver.ether.requires.ether_phy0">
+          <stack module="module.driver.ether_selector_on_ether_selector.213547056" requires="module.driver.ether.requires.ether_selector"/>
+        </stack>
+        <stack module="module.driver.ether_phy_on_ether_phy.287010932" requires="module.driver.ether.requires.ether_phy1">
+          <stack module="module.driver.ether_selector_on_ether_selector.1760620550" requires="module.driver.ether.requires.ether_selector"/>
+        </stack>
+        <stack module="module.driver.ether_switch_on_ether_switch.413512353" requires="module.driver.ether.requires.ethsw"/>
+      </stack>
+    </context>
+    <config id="config.driver.ether_selector">
+      <property id="config.driver.ether_selector.param_checking_enable" value="config.driver.ether_selector.param_checking_enable.bsp"/>
+      <property id="module.driver.ether_selector.mode" value="module.driver.ether_selector.mode.0"/>
+    </config>
+    <config id="config.driver.ether">
+      <property id="config.driver.ether.param_checking_enable" value="config.driver.ether.param_checking_enable.bsp"/>
+    </config>
+    <config id="config.driver.sci_uart">
+      <property id="config.driver.sci_uart.param_checking_enable" value="config.driver.sci_uart.param_checking_enable.bsp"/>
+      <property id="config.driver.sci_uart.fifo_support" value="config.driver.sci_uart.fifo_support.enabled"/>
+      <property id="config.driver.sci_uart.dmac_support" value="config.driver.sci_uart.dmac_support.disabled"/>
+      <property id="config.driver.sci_uart.flow_control" value="config.driver.sci_uart.flow_control.disabled"/>
+      <property id="config.driver.sci_uart.multiplex_interrupt" value="config.driver.sci_uart.multiplex_interrupt.disabled"/>
+    </config>
+    <config id="config.driver.ether_switch">
+      <property id="config.driver.ether_switch.param_checking_enable" value="config.driver.ether_switch.param_checking_enable.bsp"/>
+    </config>
+    <config id="config.driver.ether_phy">
+      <property id="config.driver.ether_phy.param_checking_enable" value="config.driver.ether_phy.param_checking_enable.bsp"/>
+      <property id="config.driver.ether_phy.target_vsc8541" value="config.driver.ether_phy.target_vsc8541.disabled"/>
+      <property id="config.driver.ether_phy.target_ksz9131" value="config.driver.ether_phy.target_ksz9131.disabled"/>
+      <property id="config.driver.ether_phy.target_ksz9031" value="config.driver.ether_phy.target_ksz9031.disabled"/>
+      <property id="config.driver.ether_phy.target_ksz8081" value="config.driver.ether_phy.target_ksz8081.disabled"/>
+      <property id="config.driver.ether_phy.target_ksz8041" value="config.driver.ether_phy.target_ksz8041.disabled"/>
+      <property id="config.driver.ether_phy.use_custom_phy_lsi" value="config.driver.ether_phy.use_custom_phy_lsi.enabled"/>
+    </config>
+    <config id="config.bsp.memory_config">
+      <property id="config.bsp.memory_config.mpu_type" value="config.bsp.memory_config.mpu_type.mpu"/>
+    </config>
+    <config id="config.driver.ioport">
+      <property id="config.driver.ioport.checking" value="config.driver.ioport.checking.system"/>
+    </config>
+  </raModuleConfiguration>
+  <raPinConfiguration>
+    <symbolicName propertyId="p00_0.symbolic_name" value="ETH2_RXD3"/>
+    <symbolicName propertyId="p00_1.symbolic_name" value="ETH2_RXDV"/>
+    <symbolicName propertyId="p00_2.symbolic_name" value="ETH2_TXEN"/>
+    <symbolicName propertyId="p00_3.symbolic_name" value="ETH2_REFCLK"/>
+    <symbolicName propertyId="p00_5.symbolic_name" value="ETH2_LINK"/>
+    <symbolicName propertyId="p00_6.symbolic_name" value="ETH2_TXCLK"/>
+    <symbolicName propertyId="p01_2.symbolic_name" value="ETH2_TXD3"/>
+    <symbolicName propertyId="p01_3.symbolic_name" value="ETH2_TXD2"/>
+    <symbolicName propertyId="p01_4.symbolic_name" value="ETH2_TXD1"/>
+    <symbolicName propertyId="p01_5.symbolic_name" value="ETH2_TXD0"/>
+    <symbolicName propertyId="p01_7.symbolic_name" value="CAN_RX"/>
+    <symbolicName propertyId="p02_2.symbolic_name" value="CAN_TX"/>
+    <symbolicName propertyId="p02_4.symbolic_name" value="TDO"/>
+    <symbolicName propertyId="p02_5.symbolic_name" value="TDI"/>
+    <symbolicName propertyId="p02_6.symbolic_name" value="TMS"/>
+    <symbolicName propertyId="p02_7.symbolic_name" value="TCK"/>
+    <symbolicName propertyId="p03_0.symbolic_name" value="ETH_LED4"/>
+    <symbolicName propertyId="p04_1.symbolic_name" value="LED_RED1"/>
+    <symbolicName propertyId="p04_4.symbolic_name" value="ETH_LED6"/>
+    <symbolicName propertyId="p05_0.symbolic_name" value="ETH_LED7"/>
+    <symbolicName propertyId="p05_2.symbolic_name" value="SCL"/>
+    <symbolicName propertyId="p05_3.symbolic_name" value="SDA"/>
+    <symbolicName propertyId="p05_4.symbolic_name" value="SW2"/>
+    <symbolicName propertyId="p05_5.symbolic_name" value="ETH1_LINK"/>
+    <symbolicName propertyId="p05_7.symbolic_name" value="ETH1_TXD2"/>
+    <symbolicName propertyId="p06_0.symbolic_name" value="ETH1_TXD3"/>
+    <symbolicName propertyId="p06_1.symbolic_name" value="ETH1_REFCLK"/>
+    <symbolicName propertyId="p06_2.symbolic_name" value="ETH1_TXD1"/>
+    <symbolicName propertyId="p06_3.symbolic_name" value="ETH1_TXD0"/>
+    <symbolicName propertyId="p06_4.symbolic_name" value="ETH1_TXCLK"/>
+    <symbolicName propertyId="p06_5.symbolic_name" value="ETH1_TXEN"/>
+    <symbolicName propertyId="p06_6.symbolic_name" value="ETH1_RXD0"/>
+    <symbolicName propertyId="p06_7.symbolic_name" value="ETH1_RXD1"/>
+    <symbolicName propertyId="p07_0.symbolic_name" value="ETH1_RXD2"/>
+    <symbolicName propertyId="p07_1.symbolic_name" value="ETH1_RXD3"/>
+    <symbolicName propertyId="p07_2.symbolic_name" value="ETH1_RXDV"/>
+    <symbolicName propertyId="p07_3.symbolic_name" value="ETH1_RXCLK"/>
+    <symbolicName propertyId="p07_4.symbolic_name" value="USB_VBUSIN"/>
+    <symbolicName propertyId="p08_4.symbolic_name" value="ETH0_RXD3"/>
+    <symbolicName propertyId="p08_5.symbolic_name" value="ETH0_RXDV"/>
+    <symbolicName propertyId="p08_6.symbolic_name" value="ETH0_RXCLK"/>
+    <symbolicName propertyId="p08_7.symbolic_name" value="ETH_MDC"/>
+    <symbolicName propertyId="p09_0.symbolic_name" value="ETH_MDIO"/>
+    <symbolicName propertyId="p09_1.symbolic_name" value="ETH0_REFCLK"/>
+    <symbolicName propertyId="p09_3.symbolic_name" value="ETH0_TXD3"/>
+    <symbolicName propertyId="p09_4.symbolic_name" value="ETH0_TXD2"/>
+    <symbolicName propertyId="p09_5.symbolic_name" value="ETH0_TXD1"/>
+    <symbolicName propertyId="p09_6.symbolic_name" value="ETH0_TXD0"/>
+    <symbolicName propertyId="p09_7.symbolic_name" value="ETH0_TXCLK"/>
+    <symbolicName propertyId="p10_0.symbolic_name" value="ETH0_TXEN"/>
+    <symbolicName propertyId="p10_1.symbolic_name" value="ETH0_RXD0"/>
+    <symbolicName propertyId="p10_2.symbolic_name" value="ETH0_RXD1"/>
+    <symbolicName propertyId="p10_3.symbolic_name" value="ETH0_RXD2"/>
+    <symbolicName propertyId="p10_4.symbolic_name" value="ETH0_LINK"/>
+    <symbolicName propertyId="p13_2.symbolic_name" value="EEPROM_SCL"/>
+    <symbolicName propertyId="p13_3.symbolic_name" value="EEPROM_SDA"/>
+    <symbolicName propertyId="p13_4.symbolic_name" value="ESC_RESETOUT"/>
+    <symbolicName propertyId="p13_5.symbolic_name" value="SW3_Pin2"/>
+    <symbolicName propertyId="p13_6.symbolic_name" value="SW3_Pin1"/>
+    <symbolicName propertyId="p13_7.symbolic_name" value="SW3_Pin4"/>
+    <symbolicName propertyId="p14_0.symbolic_name" value="SW3_Pin3"/>
+    <symbolicName propertyId="p14_2.symbolic_name" value="XSPI0_ECS"/>
+    <symbolicName propertyId="p14_4.symbolic_name" value="XSPI0_DS"/>
+    <symbolicName propertyId="p14_5.symbolic_name" value="XSPI0_CKN"/>
+    <symbolicName propertyId="p14_6.symbolic_name" value="XSPI0_CKP"/>
+    <symbolicName propertyId="p14_7.symbolic_name" value="XSPI0_IO0"/>
+    <symbolicName propertyId="p15_0.symbolic_name" value="XSPI0_IO1"/>
+    <symbolicName propertyId="p15_1.symbolic_name" value="XSPI0_IO2"/>
+    <symbolicName propertyId="p15_2.symbolic_name" value="XSPI0_IO3"/>
+    <symbolicName propertyId="p15_3.symbolic_name" value="XSPI0_IO4"/>
+    <symbolicName propertyId="p15_4.symbolic_name" value="XSPI0_IO5"/>
+    <symbolicName propertyId="p15_5.symbolic_name" value="XSPI0_IO6"/>
+    <symbolicName propertyId="p15_6.symbolic_name" value="XSPI0_IO7"/>
+    <symbolicName propertyId="p15_7.symbolic_name" value="OSPI_CS"/>
+    <symbolicName propertyId="p16_0.symbolic_name" value="ORAM_CS0"/>
+    <symbolicName propertyId="p16_1.symbolic_name" value="XSPI0_RESET0"/>
+    <symbolicName propertyId="p16_3.symbolic_name" value="SW1"/>
+    <symbolicName propertyId="p16_5.symbolic_name" value="UART_USB_TX"/>
+    <symbolicName propertyId="p16_6.symbolic_name" value="UART_USB_RX"/>
+    <symbolicName propertyId="p17_3.symbolic_name" value="LED_RED2"/>
+    <symbolicName propertyId="p17_5.symbolic_name" value="USB_OVRCUR"/>
+    <symbolicName propertyId="p17_7.symbolic_name" value="SCI_RXD"/>
+    <symbolicName propertyId="p18_0.symbolic_name" value="SCI_TXD"/>
+    <symbolicName propertyId="p18_2.symbolic_name" value="LED_GREEN"/>
+    <symbolicName propertyId="p18_4.symbolic_name" value="SCK"/>
+    <symbolicName propertyId="p18_5.symbolic_name" value="MOSI"/>
+    <symbolicName propertyId="p18_6.symbolic_name" value="MISO"/>
+    <symbolicName propertyId="p19_0.symbolic_name" value="USB_VBUSEN"/>
+    <symbolicName propertyId="p20_1.symbolic_name" value="ETH_LED2_MDV0"/>
+    <symbolicName propertyId="p20_2.symbolic_name" value="ETH_LED0_MDV1"/>
+    <symbolicName propertyId="p20_3.symbolic_name" value="ETH_LED1_MDV2"/>
+    <symbolicName propertyId="p20_4.symbolic_name" value="ETH_LED3_MDV3"/>
+    <symbolicName propertyId="p21_1.symbolic_name" value="CS"/>
+    <symbolicName propertyId="p22_1.symbolic_name" value="ETH_LED5"/>
+    <symbolicName propertyId="p22_3.symbolic_name" value="LED_ORANGE"/>
+    <symbolicName propertyId="p23_7.symbolic_name" value="ETH2_RXD0"/>
+    <symbolicName propertyId="p24_0.symbolic_name" value="ETH2_RXD1"/>
+    <symbolicName propertyId="p24_1.symbolic_name" value="ETH2_RXCLK"/>
+    <symbolicName propertyId="p24_2.symbolic_name" value="ETH2_RXD2"/>
+    <pincfg active="true" name="RSK+RZN2L" selected="true" symbol="g_bsp_pin_cfg">
+      <configSetting altId="canfd0.canrx0.p01_7" configurationId="canfd0.canrx0"/>
+      <configSetting altId="canfd0.cantx0.p02_2" configurationId="canfd0.cantx0"/>
+      <configSetting altId="canfd0.mode.enabled.free" configurationId="canfd0.mode"/>
+      <configSetting altId="ether_eth0.eth0_refclk.p09_1" configurationId="ether_eth0.eth0_refclk"/>
+      <configSetting altId="ether_eth0.eth0_rxclk_ref_clk_rxc.p08_6" configurationId="ether_eth0.eth0_rxclk_ref_clk_rxc"/>
+      <configSetting altId="ether_eth0.eth0_rxd0.p10_1" configurationId="ether_eth0.eth0_rxd0"/>
+      <configSetting altId="ether_eth0.eth0_rxd1.p10_2" configurationId="ether_eth0.eth0_rxd1"/>
+      <configSetting altId="ether_eth0.eth0_rxd2.p10_3" configurationId="ether_eth0.eth0_rxd2"/>
+      <configSetting altId="ether_eth0.eth0_rxd3.p08_4" configurationId="ether_eth0.eth0_rxd3"/>
+      <configSetting altId="ether_eth0.eth0_rxdv_crsdv_rxctl.p08_5" configurationId="ether_eth0.eth0_rxdv_crsdv_rxctl"/>
+      <configSetting altId="ether_eth0.eth0_txclk_txc.p09_7" configurationId="ether_eth0.eth0_txclk_txc"/>
+      <configSetting altId="ether_eth0.eth0_txd0.p09_6" configurationId="ether_eth0.eth0_txd0"/>
+      <configSetting altId="ether_eth0.eth0_txd1.p09_5" configurationId="ether_eth0.eth0_txd1"/>
+      <configSetting altId="ether_eth0.eth0_txd2.p09_4" configurationId="ether_eth0.eth0_txd2"/>
+      <configSetting altId="ether_eth0.eth0_txd3.p09_3" configurationId="ether_eth0.eth0_txd3"/>
+      <configSetting altId="ether_eth0.eth0_txen_txctl.p10_0" configurationId="ether_eth0.eth0_txen_txctl"/>
+      <configSetting altId="ether_eth0.mode.rgmiimode.free" configurationId="ether_eth0.mode"/>
+      <configSetting altId="ether_eth1.eth1_refclk.p06_1" configurationId="ether_eth1.eth1_refclk"/>
+      <configSetting altId="ether_eth1.eth1_rxclk_ref_clk_rxc.p07_3" configurationId="ether_eth1.eth1_rxclk_ref_clk_rxc"/>
+      <configSetting altId="ether_eth1.eth1_rxd0.p06_6" configurationId="ether_eth1.eth1_rxd0"/>
+      <configSetting altId="ether_eth1.eth1_rxd1.p06_7" configurationId="ether_eth1.eth1_rxd1"/>
+      <configSetting altId="ether_eth1.eth1_rxd2.p07_0" configurationId="ether_eth1.eth1_rxd2"/>
+      <configSetting altId="ether_eth1.eth1_rxd3.p07_1" configurationId="ether_eth1.eth1_rxd3"/>
+      <configSetting altId="ether_eth1.eth1_rxdv_crsdv_rxctl.p07_2" configurationId="ether_eth1.eth1_rxdv_crsdv_rxctl"/>
+      <configSetting altId="ether_eth1.eth1_txclk_txc.p06_4" configurationId="ether_eth1.eth1_txclk_txc"/>
+      <configSetting altId="ether_eth1.eth1_txd0.p06_3" configurationId="ether_eth1.eth1_txd0"/>
+      <configSetting altId="ether_eth1.eth1_txd1.p06_2" configurationId="ether_eth1.eth1_txd1"/>
+      <configSetting altId="ether_eth1.eth1_txd2.p05_7" configurationId="ether_eth1.eth1_txd2"/>
+      <configSetting altId="ether_eth1.eth1_txd3.p06_0" configurationId="ether_eth1.eth1_txd3"/>
+      <configSetting altId="ether_eth1.eth1_txen_txctl.p06_5" configurationId="ether_eth1.eth1_txen_txctl"/>
+      <configSetting altId="ether_eth1.mode.rgmiimode.free" configurationId="ether_eth1.mode"/>
+      <configSetting altId="ether_gmac.gmac_mdc.p08_7" configurationId="ether_gmac.gmac_mdc"/>
+      <configSetting altId="ether_gmac.gmac_mdio.p09_0" configurationId="ether_gmac.gmac_mdio"/>
+      <configSetting altId="ether_gmac.mode.custom_40_1.8v_41.free" configurationId="ether_gmac.mode"/>
+      <configSetting altId="gpt0.mode.custom.free" configurationId="gpt0.mode"/>
+      <configSetting altId="iic0.iic_scl0.p13_2" configurationId="iic0.iic_scl0"/>
+      <configSetting altId="iic0.iic_sda0.p13_3" configurationId="iic0.iic_sda0"/>
+      <configSetting altId="iic0.mode.enabled.free" configurationId="iic0.mode"/>
+      <configSetting altId="iic1.iic_scl1.p05_2" configurationId="iic1.iic_scl1"/>
+      <configSetting altId="iic1.iic_sda1.p05_3" configurationId="iic1.iic_sda1"/>
+      <configSetting altId="iic1.mode.enabled.free" configurationId="iic1.mode"/>
+      <configSetting altId="jtag_fslash_swd.mode.jtag.free" configurationId="jtag_fslash_swd.mode"/>
+      <configSetting altId="jtag_fslash_swd.tck_swclk.p02_7" configurationId="jtag_fslash_swd.tck_swclk"/>
+      <configSetting altId="jtag_fslash_swd.tdi.p02_5" configurationId="jtag_fslash_swd.tdi"/>
+      <configSetting altId="jtag_fslash_swd.tdo.p02_4" configurationId="jtag_fslash_swd.tdo"/>
+      <configSetting altId="jtag_fslash_swd.tms_swdio.p02_6" configurationId="jtag_fslash_swd.tms_swdio"/>
+      <configSetting altId="p01_7.canfd0.canrx0" configurationId="p01_7"/>
+      <configSetting altId="p01_7.gpio_speed.gpio_speed_middle" configurationId="p01_7.gpio_drivecapacity"/>
+      <configSetting altId="p01_7.gpio_mode.gpio_mode_peripheral" configurationId="p01_7.gpio_mode"/>
+      <configSetting altId="p02_2.canfd0.cantx0" configurationId="p02_2"/>
+      <configSetting altId="p02_2.gpio_speed.gpio_speed_middle" configurationId="p02_2.gpio_drivecapacity"/>
+      <configSetting altId="p02_2.gpio_mode.gpio_mode_peripheral" configurationId="p02_2.gpio_mode"/>
+      <configSetting altId="p02_4.jtag_fslash_swd.tdo" configurationId="p02_4"/>
+      <configSetting altId="p02_4.gpio_speed.gpio_speed_high" configurationId="p02_4.gpio_drivecapacity"/>
+      <configSetting altId="p02_4.gpio_mode.gpio_mode_peripheral" configurationId="p02_4.gpio_mode"/>
+      <configSetting altId="p02_4.sr.sr.fast" configurationId="p02_4.sr"/>
+      <configSetting altId="p02_5.jtag_fslash_swd.tdi" configurationId="p02_5"/>
+      <configSetting altId="p02_5.gpio_mode.gpio_mode_peripheral" configurationId="p02_5.gpio_mode"/>
+      <configSetting altId="p02_6.jtag_fslash_swd.tms_swdio" configurationId="p02_6"/>
+      <configSetting altId="p02_6.gpio_speed.gpio_speed_high" configurationId="p02_6.gpio_drivecapacity"/>
+      <configSetting altId="p02_6.gpio_mode.gpio_mode_peripheral" configurationId="p02_6.gpio_mode"/>
+      <configSetting altId="p02_6.sr.sr.fast" configurationId="p02_6.sr"/>
+      <configSetting altId="p02_7.jtag_fslash_swd.tck_swclk" configurationId="p02_7"/>
+      <configSetting altId="p02_7.gpio_mode.gpio_mode_peripheral" configurationId="p02_7.gpio_mode"/>
+      <configSetting altId="p03_0.output.low" configurationId="p03_0"/>
+      <configSetting altId="p03_0.gpio_mode.gpio_mode_out.low" configurationId="p03_0.gpio_mode"/>
+      <configSetting altId="p04_1.output.low" configurationId="p04_1"/>
+      <configSetting altId="p04_1.gpio_mode.gpio_mode_out.low" configurationId="p04_1.gpio_mode"/>
+      <configSetting altId="p04_4.output.low" configurationId="p04_4"/>
+      <configSetting altId="p04_4.gpio_mode.gpio_mode_out.low" configurationId="p04_4.gpio_mode"/>
+      <configSetting altId="p05_0.output.low" configurationId="p05_0"/>
+      <configSetting altId="p05_0.gpio_mode.gpio_mode_out.low" configurationId="p05_0.gpio_mode"/>
+      <configSetting altId="p05_2.iic1.iic_scl1" configurationId="p05_2"/>
+      <configSetting altId="p05_2.gpio_speed.gpio_speed_middle" configurationId="p05_2.gpio_drivecapacity"/>
+      <configSetting altId="p05_2.gpio_mode.gpio_mode_peripheral" configurationId="p05_2.gpio_mode"/>
+      <configSetting altId="p05_3.iic1.iic_sda1" configurationId="p05_3"/>
+      <configSetting altId="p05_3.gpio_speed.gpio_speed_middle" configurationId="p05_3.gpio_drivecapacity"/>
+      <configSetting altId="p05_3.gpio_mode.gpio_mode_peripheral" configurationId="p05_3.gpio_mode"/>
+      <configSetting altId="p05_4.input" configurationId="p05_4"/>
+      <configSetting altId="p05_4.gpio_mode.gpio_mode_in" configurationId="p05_4.gpio_mode"/>
+      <configSetting altId="p05_7.ether_eth1.eth1_txd2" configurationId="p05_7"/>
+      <configSetting altId="p05_7.gpio_speed.gpio_speed_high" configurationId="p05_7.gpio_drivecapacity"/>
+      <configSetting altId="p05_7.gpio_mode.gpio_mode_peripheral" configurationId="p05_7.gpio_mode"/>
+      <configSetting altId="p05_7.sr.sr.fast" configurationId="p05_7.sr"/>
+      <configSetting altId="p06_0.ether_eth1.eth1_txd3" configurationId="p06_0"/>
+      <configSetting altId="p06_0.gpio_speed.gpio_speed_high" configurationId="p06_0.gpio_drivecapacity"/>
+      <configSetting altId="p06_0.gpio_mode.gpio_mode_peripheral" configurationId="p06_0.gpio_mode"/>
+      <configSetting altId="p06_0.sr.sr.fast" configurationId="p06_0.sr"/>
+      <configSetting altId="p06_1.ether_eth1.eth1_refclk" configurationId="p06_1"/>
+      <configSetting altId="p06_1.gpio_mode.gpio_mode_peripheral" configurationId="p06_1.gpio_mode"/>
+      <configSetting altId="p06_2.ether_eth1.eth1_txd1" configurationId="p06_2"/>
+      <configSetting altId="p06_2.gpio_speed.gpio_speed_high" configurationId="p06_2.gpio_drivecapacity"/>
+      <configSetting altId="p06_2.gpio_mode.gpio_mode_peripheral" configurationId="p06_2.gpio_mode"/>
+      <configSetting altId="p06_2.sr.sr.fast" configurationId="p06_2.sr"/>
+      <configSetting altId="p06_3.ether_eth1.eth1_txd0" configurationId="p06_3"/>
+      <configSetting altId="p06_3.gpio_speed.gpio_speed_high" configurationId="p06_3.gpio_drivecapacity"/>
+      <configSetting altId="p06_3.gpio_mode.gpio_mode_peripheral" configurationId="p06_3.gpio_mode"/>
+      <configSetting altId="p06_3.sr.sr.fast" configurationId="p06_3.sr"/>
+      <configSetting altId="p06_4.ether_eth1.eth1_txclk_txc" configurationId="p06_4"/>
+      <configSetting altId="p06_4.gpio_speed.gpio_speed_high" configurationId="p06_4.gpio_drivecapacity"/>
+      <configSetting altId="p06_4.gpio_mode.gpio_mode_peripheral" configurationId="p06_4.gpio_mode"/>
+      <configSetting altId="p06_4.sr.sr.fast" configurationId="p06_4.sr"/>
+      <configSetting altId="p06_5.ether_eth1.eth1_txen_txctl" configurationId="p06_5"/>
+      <configSetting altId="p06_5.gpio_mode.gpio_mode_peripheral" configurationId="p06_5.gpio_mode"/>
+      <configSetting altId="p06_6.ether_eth1.eth1_rxd0" configurationId="p06_6"/>
+      <configSetting altId="p06_6.gpio_mode.gpio_mode_peripheral" configurationId="p06_6.gpio_mode"/>
+      <configSetting altId="p06_7.ether_eth1.eth1_rxd1" configurationId="p06_7"/>
+      <configSetting altId="p06_7.gpio_mode.gpio_mode_peripheral" configurationId="p06_7.gpio_mode"/>
+      <configSetting altId="p07_0.ether_eth1.eth1_rxd2" configurationId="p07_0"/>
+      <configSetting altId="p07_0.gpio_mode.gpio_mode_peripheral" configurationId="p07_0.gpio_mode"/>
+      <configSetting altId="p07_1.ether_eth1.eth1_rxd3" configurationId="p07_1"/>
+      <configSetting altId="p07_1.gpio_mode.gpio_mode_peripheral" configurationId="p07_1.gpio_mode"/>
+      <configSetting altId="p07_2.ether_eth1.eth1_rxdv_crsdv_rxctl" configurationId="p07_2"/>
+      <configSetting altId="p07_2.gpio_mode.gpio_mode_peripheral" configurationId="p07_2.gpio_mode"/>
+      <configSetting altId="p07_3.ether_eth1.eth1_rxclk_ref_clk_rxc" configurationId="p07_3"/>
+      <configSetting altId="p07_3.gpio_mode.gpio_mode_peripheral" configurationId="p07_3.gpio_mode"/>
+      <configSetting altId="p07_4.usb_hs.usb_vbusin" configurationId="p07_4"/>
+      <configSetting altId="p07_4.gpio_mode.gpio_mode_peripheral" configurationId="p07_4.gpio_mode"/>
+      <configSetting altId="p08_4.ether_eth0.eth0_rxd3" configurationId="p08_4"/>
+      <configSetting altId="p08_4.gpio_mode.gpio_mode_peripheral" configurationId="p08_4.gpio_mode"/>
+      <configSetting altId="p08_5.ether_eth0.eth0_rxdv_crsdv_rxctl" configurationId="p08_5"/>
+      <configSetting altId="p08_5.gpio_mode.gpio_mode_peripheral" configurationId="p08_5.gpio_mode"/>
+      <configSetting altId="p08_6.ether_eth0.eth0_rxclk_ref_clk_rxc" configurationId="p08_6"/>
+      <configSetting altId="p08_6.gpio_mode.gpio_mode_peripheral" configurationId="p08_6.gpio_mode"/>
+      <configSetting altId="p08_7.ether_gmac.gmac_mdc" configurationId="p08_7"/>
+      <configSetting altId="p08_7.gpio_mode.gpio_mode_peripheral" configurationId="p08_7.gpio_mode"/>
+      <configSetting altId="p09_0.ether_gmac.gmac_mdio" configurationId="p09_0"/>
+      <configSetting altId="p09_0.gpio_mode.gpio_mode_peripheral" configurationId="p09_0.gpio_mode"/>
+      <configSetting altId="p09_1.ether_eth0.eth0_refclk" configurationId="p09_1"/>
+      <configSetting altId="p09_1.gpio_mode.gpio_mode_peripheral" configurationId="p09_1.gpio_mode"/>
+      <configSetting altId="p09_3.ether_eth0.eth0_txd3" configurationId="p09_3"/>
+      <configSetting altId="p09_3.gpio_speed.gpio_speed_high" configurationId="p09_3.gpio_drivecapacity"/>
+      <configSetting altId="p09_3.gpio_mode.gpio_mode_peripheral" configurationId="p09_3.gpio_mode"/>
+      <configSetting altId="p09_3.sr.sr.fast" configurationId="p09_3.sr"/>
+      <configSetting altId="p09_4.ether_eth0.eth0_txd2" configurationId="p09_4"/>
+      <configSetting altId="p09_4.gpio_speed.gpio_speed_high" configurationId="p09_4.gpio_drivecapacity"/>
+      <configSetting altId="p09_4.gpio_mode.gpio_mode_peripheral" configurationId="p09_4.gpio_mode"/>
+      <configSetting altId="p09_4.sr.sr.fast" configurationId="p09_4.sr"/>
+      <configSetting altId="p09_5.ether_eth0.eth0_txd1" configurationId="p09_5"/>
+      <configSetting altId="p09_5.gpio_speed.gpio_speed_high" configurationId="p09_5.gpio_drivecapacity"/>
+      <configSetting altId="p09_5.gpio_mode.gpio_mode_peripheral" configurationId="p09_5.gpio_mode"/>
+      <configSetting altId="p09_5.sr.sr.fast" configurationId="p09_5.sr"/>
+      <configSetting altId="p09_6.ether_eth0.eth0_txd0" configurationId="p09_6"/>
+      <configSetting altId="p09_6.gpio_speed.gpio_speed_high" configurationId="p09_6.gpio_drivecapacity"/>
+      <configSetting altId="p09_6.gpio_mode.gpio_mode_peripheral" configurationId="p09_6.gpio_mode"/>
+      <configSetting altId="p09_6.sr.sr.fast" configurationId="p09_6.sr"/>
+      <configSetting altId="p09_7.ether_eth0.eth0_txclk_txc" configurationId="p09_7"/>
+      <configSetting altId="p09_7.gpio_speed.gpio_speed_high" configurationId="p09_7.gpio_drivecapacity"/>
+      <configSetting altId="p09_7.gpio_mode.gpio_mode_peripheral" configurationId="p09_7.gpio_mode"/>
+      <configSetting altId="p09_7.sr.sr.fast" configurationId="p09_7.sr"/>
+      <configSetting altId="p10_0.ether_eth0.eth0_txen_txctl" configurationId="p10_0"/>
+      <configSetting altId="p10_0.gpio_mode.gpio_mode_peripheral" configurationId="p10_0.gpio_mode"/>
+      <configSetting altId="p10_1.ether_eth0.eth0_rxd0" configurationId="p10_1"/>
+      <configSetting altId="p10_1.gpio_mode.gpio_mode_peripheral" configurationId="p10_1.gpio_mode"/>
+      <configSetting altId="p10_2.ether_eth0.eth0_rxd1" configurationId="p10_2"/>
+      <configSetting altId="p10_2.gpio_mode.gpio_mode_peripheral" configurationId="p10_2.gpio_mode"/>
+      <configSetting altId="p10_3.ether_eth0.eth0_rxd2" configurationId="p10_3"/>
+      <configSetting altId="p10_3.gpio_mode.gpio_mode_peripheral" configurationId="p10_3.gpio_mode"/>
+      <configSetting altId="p13_2.iic0.iic_scl0" configurationId="p13_2"/>
+      <configSetting altId="p13_2.gpio_speed.gpio_speed_middle" configurationId="p13_2.gpio_drivecapacity"/>
+      <configSetting altId="p13_2.gpio_mode.gpio_mode_peripheral" configurationId="p13_2.gpio_mode"/>
+      <configSetting altId="p13_3.iic0.iic_sda0" configurationId="p13_3"/>
+      <configSetting altId="p13_3.gpio_speed.gpio_speed_middle" configurationId="p13_3.gpio_drivecapacity"/>
+      <configSetting altId="p13_3.gpio_mode.gpio_mode_peripheral" configurationId="p13_3.gpio_mode"/>
+      <configSetting altId="p13_4.output.low" configurationId="p13_4"/>
+      <configSetting altId="p13_4.gpio_mode.gpio_mode_out.low" configurationId="p13_4.gpio_mode"/>
+      <configSetting altId="p13_5.input" configurationId="p13_5"/>
+      <configSetting altId="p13_5.gpio_mode.gpio_mode_in" configurationId="p13_5.gpio_mode"/>
+      <configSetting altId="p13_6.input" configurationId="p13_6"/>
+      <configSetting altId="p13_6.gpio_mode.gpio_mode_in" configurationId="p13_6.gpio_mode"/>
+      <configSetting altId="p13_7.input" configurationId="p13_7"/>
+      <configSetting altId="p13_7.gpio_mode.gpio_mode_in" configurationId="p13_7.gpio_mode"/>
+      <configSetting altId="p14_0.output.low" configurationId="p14_0"/>
+      <configSetting altId="p14_0.gpio_mode.gpio_mode_out.low" configurationId="p14_0.gpio_mode"/>
+      <configSetting altId="p14_1.output.low" configurationId="p14_1"/>
+      <configSetting altId="p14_1.gpio_mode.gpio_mode_out.low" configurationId="p14_1.gpio_mode"/>
+      <configSetting altId="p14_2.xspi0.xspi0_ecs0_hash" configurationId="p14_2"/>
+      <configSetting altId="p14_2.gpio_mode.gpio_mode_peripheral" configurationId="p14_2.gpio_mode"/>
+      <configSetting altId="p14_3.output.low" configurationId="p14_3"/>
+      <configSetting altId="p14_3.gpio_mode.gpio_mode_out.low" configurationId="p14_3.gpio_mode"/>
+      <configSetting altId="p14_4.xspi0.xspi0_ds" configurationId="p14_4"/>
+      <configSetting altId="p14_4.gpio_speed.gpio_speed_high" configurationId="p14_4.gpio_drivecapacity"/>
+      <configSetting altId="p14_4.gpio_mode.gpio_mode_peripheral" configurationId="p14_4.gpio_mode"/>
+      <configSetting altId="p14_4.sr.sr.fast" configurationId="p14_4.sr"/>
+      <configSetting altId="p14_5.xspi0.xspi0_ckn" configurationId="p14_5"/>
+      <configSetting altId="p14_5.gpio_speed.gpio_speed_high" configurationId="p14_5.gpio_drivecapacity"/>
+      <configSetting altId="p14_5.gpio_mode.gpio_mode_peripheral" configurationId="p14_5.gpio_mode"/>
+      <configSetting altId="p14_5.sr.sr.fast" configurationId="p14_5.sr"/>
+      <configSetting altId="p14_6.xspi0.xspi0_ckp" configurationId="p14_6"/>
+      <configSetting altId="p14_6.gpio_speed.gpio_speed_high" configurationId="p14_6.gpio_drivecapacity"/>
+      <configSetting altId="p14_6.gpio_mode.gpio_mode_peripheral" configurationId="p14_6.gpio_mode"/>
+      <configSetting altId="p14_6.sr.sr.fast" configurationId="p14_6.sr"/>
+      <configSetting altId="p14_7.xspi0.xspi0_io0" configurationId="p14_7"/>
+      <configSetting altId="p14_7.gpio_speed.gpio_speed_high" configurationId="p14_7.gpio_drivecapacity"/>
+      <configSetting altId="p14_7.gpio_mode.gpio_mode_peripheral" configurationId="p14_7.gpio_mode"/>
+      <configSetting altId="p14_7.sr.sr.fast" configurationId="p14_7.sr"/>
+      <configSetting altId="p15_0.xspi0.xspi0_io1" configurationId="p15_0"/>
+      <configSetting altId="p15_0.gpio_speed.gpio_speed_high" configurationId="p15_0.gpio_drivecapacity"/>
+      <configSetting altId="p15_0.gpio_mode.gpio_mode_peripheral" configurationId="p15_0.gpio_mode"/>
+      <configSetting altId="p15_0.sr.sr.fast" configurationId="p15_0.sr"/>
+      <configSetting altId="p15_1.xspi0.xspi0_io2" configurationId="p15_1"/>
+      <configSetting altId="p15_1.gpio_speed.gpio_speed_high" configurationId="p15_1.gpio_drivecapacity"/>
+      <configSetting altId="p15_1.gpio_mode.gpio_mode_peripheral" configurationId="p15_1.gpio_mode"/>
+      <configSetting altId="p15_1.sr.sr.fast" configurationId="p15_1.sr"/>
+      <configSetting altId="p15_2.xspi0.xspi0_io3" configurationId="p15_2"/>
+      <configSetting altId="p15_2.gpio_speed.gpio_speed_high" configurationId="p15_2.gpio_drivecapacity"/>
+      <configSetting altId="p15_2.gpio_mode.gpio_mode_peripheral" configurationId="p15_2.gpio_mode"/>
+      <configSetting altId="p15_2.sr.sr.fast" configurationId="p15_2.sr"/>
+      <configSetting altId="p15_3.xspi0.xspi0_io4" configurationId="p15_3"/>
+      <configSetting altId="p15_3.gpio_speed.gpio_speed_high" configurationId="p15_3.gpio_drivecapacity"/>
+      <configSetting altId="p15_3.gpio_mode.gpio_mode_peripheral" configurationId="p15_3.gpio_mode"/>
+      <configSetting altId="p15_3.sr.sr.fast" configurationId="p15_3.sr"/>
+      <configSetting altId="p15_4.xspi0.xspi0_io5" configurationId="p15_4"/>
+      <configSetting altId="p15_4.gpio_speed.gpio_speed_high" configurationId="p15_4.gpio_drivecapacity"/>
+      <configSetting altId="p15_4.gpio_mode.gpio_mode_peripheral" configurationId="p15_4.gpio_mode"/>
+      <configSetting altId="p15_4.sr.sr.fast" configurationId="p15_4.sr"/>
+      <configSetting altId="p15_5.xspi0.xspi0_io6" configurationId="p15_5"/>
+      <configSetting altId="p15_5.gpio_speed.gpio_speed_high" configurationId="p15_5.gpio_drivecapacity"/>
+      <configSetting altId="p15_5.gpio_mode.gpio_mode_peripheral" configurationId="p15_5.gpio_mode"/>
+      <configSetting altId="p15_5.sr.sr.fast" configurationId="p15_5.sr"/>
+      <configSetting altId="p15_6.xspi0.xspi0_io7" configurationId="p15_6"/>
+      <configSetting altId="p15_6.gpio_speed.gpio_speed_high" configurationId="p15_6.gpio_drivecapacity"/>
+      <configSetting altId="p15_6.gpio_mode.gpio_mode_peripheral" configurationId="p15_6.gpio_mode"/>
+      <configSetting altId="p15_6.sr.sr.fast" configurationId="p15_6.sr"/>
+      <configSetting altId="p15_7.xspi0.xspi0_cs0_hash" configurationId="p15_7"/>
+      <configSetting altId="p15_7.gpio_speed.gpio_speed_high" configurationId="p15_7.gpio_drivecapacity"/>
+      <configSetting altId="p15_7.gpio_mode.gpio_mode_peripheral" configurationId="p15_7.gpio_mode"/>
+      <configSetting altId="p15_7.sr.sr.fast" configurationId="p15_7.sr"/>
+      <configSetting altId="p16_0.xspi0.xspi0_cs1_hash" configurationId="p16_0"/>
+      <configSetting altId="p16_0.gpio_speed.gpio_speed_high" configurationId="p16_0.gpio_drivecapacity"/>
+      <configSetting altId="p16_0.gpio_mode.gpio_mode_peripheral" configurationId="p16_0.gpio_mode"/>
+      <configSetting altId="p16_0.sr.sr.fast" configurationId="p16_0.sr"/>
+      <configSetting altId="p16_1.xspi0.xspi0_reset0_hash" configurationId="p16_1"/>
+      <configSetting altId="p16_1.gpio_mode.gpio_mode_peripheral" configurationId="p16_1.gpio_mode"/>
+      <configSetting altId="p16_3.input" configurationId="p16_3"/>
+      <configSetting altId="p16_3.gpio_mode.gpio_mode_in" configurationId="p16_3.gpio_mode"/>
+      <configSetting altId="p16_5.sci0.txd_mosi0" configurationId="p16_5"/>
+      <configSetting altId="p16_5.gpio_speed.gpio_speed_high" configurationId="p16_5.gpio_drivecapacity"/>
+      <configSetting altId="p16_5.gpio_mode.gpio_mode_peripheral" configurationId="p16_5.gpio_mode"/>
+      <configSetting altId="p16_5.sr.sr.fast" configurationId="p16_5.sr"/>
+      <configSetting altId="p16_6.sci0.rxd_miso0" configurationId="p16_6"/>
+      <configSetting altId="p16_6.gpio_speed.gpio_speed_high" configurationId="p16_6.gpio_drivecapacity"/>
+      <configSetting altId="p16_6.gpio_mode.gpio_mode_peripheral" configurationId="p16_6.gpio_mode"/>
+      <configSetting altId="p16_6.sr.sr.fast" configurationId="p16_6.sr"/>
+      <configSetting altId="p17_3.output.low" configurationId="p17_3"/>
+      <configSetting altId="p17_3.gpio_mode.gpio_mode_out.low" configurationId="p17_3.gpio_mode"/>
+      <configSetting altId="p17_5.usb_hs.usb_ovrcur" configurationId="p17_5"/>
+      <configSetting altId="p17_5.gpio_mode.gpio_mode_peripheral" configurationId="p17_5.gpio_mode"/>
+      <configSetting altId="p17_7.sci3.rxd_miso3" configurationId="p17_7"/>
+      <configSetting altId="p17_7.gpio_speed.gpio_speed_high" configurationId="p17_7.gpio_drivecapacity"/>
+      <configSetting altId="p17_7.gpio_mode.gpio_mode_peripheral" configurationId="p17_7.gpio_mode"/>
+      <configSetting altId="p17_7.sr.sr.fast" configurationId="p17_7.sr"/>
+      <configSetting altId="p18_0.sci3.txd_mosi3" configurationId="p18_0"/>
+      <configSetting altId="p18_0.gpio_speed.gpio_speed_high" configurationId="p18_0.gpio_drivecapacity"/>
+      <configSetting altId="p18_0.gpio_mode.gpio_mode_peripheral" configurationId="p18_0.gpio_mode"/>
+      <configSetting altId="p18_0.sr.sr.fast" configurationId="p18_0.sr"/>
+      <configSetting altId="p18_2.output.low" configurationId="p18_2"/>
+      <configSetting altId="p18_2.gpio_mode.gpio_mode_out.low" configurationId="p18_2.gpio_mode"/>
+      <configSetting altId="p18_4.spi2.spi_rspck2" configurationId="p18_4"/>
+      <configSetting altId="p18_4.gpio_speed.gpio_speed_high" configurationId="p18_4.gpio_drivecapacity"/>
+      <configSetting altId="p18_4.gpio_mode.gpio_mode_peripheral" configurationId="p18_4.gpio_mode"/>
+      <configSetting altId="p18_4.sr.sr.fast" configurationId="p18_4.sr"/>
+      <configSetting altId="p18_5.spi2.spi_mosi2" configurationId="p18_5"/>
+      <configSetting altId="p18_5.gpio_speed.gpio_speed_high" configurationId="p18_5.gpio_drivecapacity"/>
+      <configSetting altId="p18_5.gpio_mode.gpio_mode_peripheral" configurationId="p18_5.gpio_mode"/>
+      <configSetting altId="p18_5.sr.sr.fast" configurationId="p18_5.sr"/>
+      <configSetting altId="p18_6.spi2.spi_miso2" configurationId="p18_6"/>
+      <configSetting altId="p18_6.gpio_speed.gpio_speed_high" configurationId="p18_6.gpio_drivecapacity"/>
+      <configSetting altId="p18_6.gpio_mode.gpio_mode_peripheral" configurationId="p18_6.gpio_mode"/>
+      <configSetting altId="p18_6.sr.sr.fast" configurationId="p18_6.sr"/>
+      <configSetting altId="p19_0.usb_hs.usb_vbusen" configurationId="p19_0"/>
+      <configSetting altId="p19_0.gpio_mode.gpio_mode_peripheral" configurationId="p19_0.gpio_mode"/>
+      <configSetting altId="p21_1.spi2.spi_ssl20" configurationId="p21_1"/>
+      <configSetting altId="p21_1.gpio_speed.gpio_speed_high" configurationId="p21_1.gpio_drivecapacity"/>
+      <configSetting altId="p21_1.gpio_mode.gpio_mode_peripheral" configurationId="p21_1.gpio_mode"/>
+      <configSetting altId="p21_1.sr.sr.fast" configurationId="p21_1.sr"/>
+      <configSetting altId="p22_1.output.low" configurationId="p22_1"/>
+      <configSetting altId="p22_1.gpio_mode.gpio_mode_out.low" configurationId="p22_1.gpio_mode"/>
+      <configSetting altId="p22_3.output.low" configurationId="p22_3"/>
+      <configSetting altId="p22_3.gpio_mode.gpio_mode_out.low" configurationId="p22_3.gpio_mode"/>
+      <configSetting altId="sci0.mode.asynchronousmode.free" configurationId="sci0.mode"/>
+      <configSetting altId="sci0.rxd_miso0.p16_6" configurationId="sci0.rxd_miso0"/>
+      <configSetting altId="sci0.txd_mosi0.p16_5" configurationId="sci0.txd_mosi0"/>
+      <configSetting altId="sci3.mode.asynchronousmode.free" configurationId="sci3.mode"/>
+      <configSetting altId="sci3.rxd_miso3.p17_7" configurationId="sci3.rxd_miso3"/>
+      <configSetting altId="sci3.txd_mosi3.p18_0" configurationId="sci3.txd_mosi3"/>
+      <configSetting altId="spi2.mode.enabled.free" configurationId="spi2.mode"/>
+      <configSetting altId="spi2.spi_miso2.p18_6" configurationId="spi2.spi_miso2"/>
+      <configSetting altId="spi2.spi_mosi2.p18_5" configurationId="spi2.spi_mosi2"/>
+      <configSetting altId="spi2.spi_rspck2.p18_4" configurationId="spi2.spi_rspck2"/>
+      <configSetting altId="spi2.spi_ssl20.p21_1" configurationId="spi2.spi_ssl20"/>
+      <configSetting altId="usb_hs.mode.enabeld.free" configurationId="usb_hs.mode"/>
+      <configSetting altId="usb_hs.usb_ovrcur.p17_5" configurationId="usb_hs.usb_ovrcur"/>
+      <configSetting altId="usb_hs.usb_vbusen.p19_0" configurationId="usb_hs.usb_vbusen"/>
+      <configSetting altId="usb_hs.usb_vbusin.p07_4" configurationId="usb_hs.usb_vbusin"/>
+      <configSetting altId="xspi0.mode.octa_40_1.8v_41.free" configurationId="xspi0.mode"/>
+      <configSetting altId="xspi0.xspi0_ckn.p14_5" configurationId="xspi0.xspi0_ckn"/>
+      <configSetting altId="xspi0.xspi0_ckp.p14_6" configurationId="xspi0.xspi0_ckp"/>
+      <configSetting altId="xspi0.xspi0_cs0_hash.p15_7" configurationId="xspi0.xspi0_cs0_hash"/>
+      <configSetting altId="xspi0.xspi0_cs1_hash.p16_0" configurationId="xspi0.xspi0_cs1_hash"/>
+      <configSetting altId="xspi0.xspi0_ds.p14_4" configurationId="xspi0.xspi0_ds"/>
+      <configSetting altId="xspi0.xspi0_ecs0_hash.p14_2" configurationId="xspi0.xspi0_ecs0_hash"/>
+      <configSetting altId="xspi0.xspi0_io0.p14_7" configurationId="xspi0.xspi0_io0"/>
+      <configSetting altId="xspi0.xspi0_io1.p15_0" configurationId="xspi0.xspi0_io1"/>
+      <configSetting altId="xspi0.xspi0_io2.p15_1" configurationId="xspi0.xspi0_io2"/>
+      <configSetting altId="xspi0.xspi0_io3.p15_2" configurationId="xspi0.xspi0_io3"/>
+      <configSetting altId="xspi0.xspi0_io4.p15_3" configurationId="xspi0.xspi0_io4"/>
+      <configSetting altId="xspi0.xspi0_io5.p15_4" configurationId="xspi0.xspi0_io5"/>
+      <configSetting altId="xspi0.xspi0_io6.p15_5" configurationId="xspi0.xspi0_io6"/>
+      <configSetting altId="xspi0.xspi0_io7.p15_6" configurationId="xspi0.xspi0_io7"/>
+      <configSetting altId="xspi0.xspi0_reset0_hash.p16_1" configurationId="xspi0.xspi0_reset0_hash"/>
+    </pincfg>
+    <pincfg active="false" name="R9A07G084M04GBG.pincfg" selected="false" symbol="">
+      <configSetting altId="jtag_fslash_swd.mode.jtag.free" configurationId="jtag_fslash_swd.mode"/>
+      <configSetting altId="jtag_fslash_swd.tck_swclk.p02_7" configurationId="jtag_fslash_swd.tck_swclk"/>
+      <configSetting altId="jtag_fslash_swd.tdi.p02_5" configurationId="jtag_fslash_swd.tdi"/>
+      <configSetting altId="jtag_fslash_swd.tdo.p02_4" configurationId="jtag_fslash_swd.tdo"/>
+      <configSetting altId="jtag_fslash_swd.tms_swdio.p02_6" configurationId="jtag_fslash_swd.tms_swdio"/>
+      <configSetting altId="p02_4.jtag_fslash_swd.tdo" configurationId="p02_4"/>
+      <configSetting altId="p02_4.gpio_speed.gpio_speed_high" configurationId="p02_4.gpio_drivecapacity"/>
+      <configSetting altId="p02_4.gpio_mode.gpio_mode_peripheral" configurationId="p02_4.gpio_mode"/>
+      <configSetting altId="p02_4.sr.sr.fast" configurationId="p02_4.sr"/>
+      <configSetting altId="p02_5.jtag_fslash_swd.tdi" configurationId="p02_5"/>
+      <configSetting altId="p02_5.gpio_mode.gpio_mode_peripheral" configurationId="p02_5.gpio_mode"/>
+      <configSetting altId="p02_6.jtag_fslash_swd.tms_swdio" configurationId="p02_6"/>
+      <configSetting altId="p02_6.gpio_speed.gpio_speed_high" configurationId="p02_6.gpio_drivecapacity"/>
+      <configSetting altId="p02_6.gpio_mode.gpio_mode_peripheral" configurationId="p02_6.gpio_mode"/>
+      <configSetting altId="p02_6.sr.sr.fast" configurationId="p02_6.sr"/>
+      <configSetting altId="p02_7.jtag_fslash_swd.tck_swclk" configurationId="p02_7"/>
+      <configSetting altId="p02_7.gpio_mode.gpio_mode_peripheral" configurationId="p02_7.gpio_mode"/>
+    </pincfg>
+  </raPinConfiguration>
+</raConfiguration>

+ 22 - 0
projects/etherkit_ethernetip_opener/envsetup.sh

@@ -0,0 +1,22 @@
+#!/bin/bash
+
+export RTT_ROOT=${PWD}/rt-thread
+export ENV_ROOT=${HOME}/.env
+export BSP_ROOT=${PWD}
+export RTT_CC='gcc'
+export RTT_EXEC_PATH='/usr/bin'
+
+rtt_dir='../../rt-thread'
+lib_dir='../../libraries'
+
+if [ ! -L "rt-thread" ]; then
+	if [ -d $rtt_dir ]; then
+		ln -s $rtt_dir ./rt-thread
+	fi
+fi
+
+if [ ! -L "libraries" ]; then
+	if [ -d $lib_dir ]; then
+		ln -s $lib_dir ./libraries
+	fi
+fi

BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104408737-17340606619556.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104408737.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104422910-17340606619557.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104422910.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104437432-17340606619558.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104437432.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104519290-17340606619569.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104519290.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104533098-173406066195610.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126104533098.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114113830.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114127411.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114137199.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114149792.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114204739.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114216032.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114225267.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114233871.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241126114309177.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241213113637153.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241213113648018.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241217145852034.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241217150534826.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241217152754556.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241217153012620.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241217153316489.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20241217153547501.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165322965.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165349686.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165523298.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165538804.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165611848.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165634898.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165704492.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165725395.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165823519.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207165859632.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207170030196.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207170039473.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207170048731.png


BIN
projects/etherkit_ethernetip_opener/figures/image-20250207170109396.png


+ 6 - 0
projects/etherkit_ethernetip_opener/mklinks.bat

@@ -0,0 +1,6 @@
+@echo off
+%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
+cd /d "%~dp0"
+@echo on
+mklink /D rt-thread ..\..\rt-thread
+mklink /D libraries ..\..\libraries

+ 3 - 0
projects/etherkit_ethernetip_opener/mklinks.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+ln -s ../../rt-thread  rt-thread
+ln -s ../../libraries libraries

+ 361 - 0
projects/etherkit_ethernetip_opener/ozone_scons.jdebug

@@ -0,0 +1,361 @@
+/*********************************************************************
+*                 (c) SEGGER Microcontroller GmbH                    *
+*                      The Embedded Experts                          *
+*                         www.segger.com                             *
+**********************************************************************
+
+File          : ozone_scons.jdebug
+Created       : 2 Dec 2024 10:53
+Ozone Version : V3.38b
+*/
+
+/*********************************************************************
+*
+*       OnProjectLoad
+*
+* Function description
+*   Project load routine. Required.
+*
+**********************************************************************
+*/
+void OnProjectLoad (void) {
+  //
+  // Dialog-generated settings
+  //
+  Project.AddPathSubstitute ("./", "$(ProjectDir)");
+  Project.AddPathSubstitute ("./", "$(ProjectDir)");
+  Project.SetDevice ("R9A07G084M04");
+  Project.SetHostIF ("USB", "");
+  Project.SetTargetIF ("SWD");
+  Project.SetTIFSpeed ("50 MHz");
+  Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-R52_AArch32.svd");
+  Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-R52_AArch32.svd");
+  //
+  // User settings
+  //
+  File.Open ("$(ProjectDir)/rtthread.elf");
+}
+
+/*********************************************************************
+*
+*       OnStartupComplete
+*
+* Function description
+*   Called when program execution has reached/passed
+*   the startup completion point. Optional.
+*
+**********************************************************************
+*/
+//void OnStartupComplete (void) {
+//}
+
+/*********************************************************************
+*
+*      TargetReset
+*
+* Function description
+*   Replaces the default target device reset routine. Optional.
+*
+* Notes
+*   This example demonstrates the usage when
+*   debugging an application in RAM on a Cortex-M target device.
+*
+**********************************************************************
+*/
+void TargetReset (void) {
+//
+//  unsigned int SP;
+//  unsigned int PC;
+//  unsigned int VectorTableAddr;
+//
+//  VectorTableAddr = Elf.GetBaseAddr();
+//  //
+//  // Set up initial stack pointer
+//  //
+//  if (VectorTableAddr != 0xFFFFFFFF) {
+//    SP = Target.ReadU32(VectorTableAddr);
+//    Target.SetReg("SP", SP);
+//  }
+//  //
+//  // Set up entry point PC
+//  //
+//  PC = Elf.GetEntryPointPC();
+//
+//  if (PC != 0xFFFFFFFF) {
+//    Target.SetReg("PC", PC);
+//  } else if (VectorTableAddr != 0xFFFFFFFF) {
+//    PC = Target.ReadU32(VectorTableAddr + 4);
+//    Target.SetReg("PC", PC);
+//  } else {
+//    Util.Error("Project file error: failed to set entry point PC", 1);
+//  }
+}
+
+/*********************************************************************
+*
+*       BeforeTargetReset
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void BeforeTargetReset (void) {
+//}
+
+/*********************************************************************
+*
+*       AfterTargetReset
+*
+* Function description
+*   Event handler routine. Optional.
+*   The default implementation initializes SP and PC to reset values.
+**
+**********************************************************************
+*/
+void AfterTargetReset (void) {
+  _SetupTarget();
+}
+
+/*********************************************************************
+*
+*       DebugStart
+*
+* Function description
+*   Replaces the default debug session startup routine. Optional.
+*
+**********************************************************************
+*/
+//void DebugStart (void) {
+//}
+
+/*********************************************************************
+*
+*       TargetConnect
+*
+* Function description
+*   Replaces the default target IF connection routine. Optional.
+*
+**********************************************************************
+*/
+//void TargetConnect (void) {
+//}
+
+/*********************************************************************
+*
+*       BeforeTargetConnect
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void BeforeTargetConnect (void) {
+//}
+
+/*********************************************************************
+*
+*       AfterTargetConnect
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void AfterTargetConnect (void) {
+//}
+
+/*********************************************************************
+*
+*       TargetDownload
+*
+* Function description
+*   Replaces the default program download routine. Optional.
+*
+**********************************************************************
+*/
+//void TargetDownload (void) {
+//}
+
+/*********************************************************************
+*
+*       BeforeTargetDownload
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void BeforeTargetDownload (void) {
+//}
+
+/*********************************************************************
+*
+*      AfterTargetDownload
+*
+* Function description
+*   Event handler routine. Optional.
+*   The default implementation initializes SP and PC to reset values.
+*
+**********************************************************************
+*/
+void AfterTargetDownload (void) {
+  _SetupTarget();
+}
+
+/*********************************************************************
+*
+*       BeforeTargetDisconnect
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void BeforeTargetDisconnect (void) {
+//}
+
+/*********************************************************************
+*
+*       AfterTargetDisconnect
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void AfterTargetDisconnect (void) {
+//}
+
+/*********************************************************************
+*
+*       AfterTargetHalt
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void AfterTargetHalt (void) {
+//}
+
+/*********************************************************************
+*
+*       BeforeTargetResume
+*
+* Function description
+*   Event handler routine. Optional.
+*
+**********************************************************************
+*/
+//void BeforeTargetResume (void) {
+//}
+
+/*********************************************************************
+*
+*       OnSnapshotLoad
+*
+* Function description
+*   Called upon loading a snapshot. Optional.
+*
+* Additional information
+*   This function is used to restore the target state in cases
+*   where values cannot simply be written to the target.
+*   Typical use: GPIO clock needs to be enabled, before
+*   GPIO is configured.
+*
+**********************************************************************
+*/
+//void OnSnapshotLoad (void) {
+//}
+
+/*********************************************************************
+*
+*       OnSnapshotSave
+*
+* Function description
+*   Called upon saving a snapshot. Optional.
+*
+* Additional information
+*   This function is usually used to save values of the target
+*   state which can either not be trivially read,
+*   or need to be restored in a specific way or order.
+*   Typically use: Memory Mapped Registers,
+*   such as PLL and GPIO configuration.
+*
+**********************************************************************
+*/
+//void OnSnapshotSave (void) {
+//}
+
+/*********************************************************************
+*
+*       OnError
+*
+* Function description
+*   Called when an error ocurred. Optional.
+*
+**********************************************************************
+*/
+//void OnError (void) {
+//}
+
+/*********************************************************************
+*
+*       AfterProjectLoad
+*
+* Function description
+*   After Project load routine. Optional.
+*
+**********************************************************************
+*/
+//void AfterProjectLoad (void) {
+//}
+
+/*********************************************************************
+*
+*       _SetupTarget
+*
+* Function description
+*   Setup the target.
+*   Called by AfterTargetReset() and AfterTargetDownload().
+*
+*   Auto-generated function. May be overridden by Ozone.
+*
+**********************************************************************
+*/
+void _SetupTarget(void) {
+  //
+  // this function is intentionally empty because both inital PC and
+  // initial SP were chosen not to be set
+  //
+
+    U64 PC;
+     U32 cpsr;
+  int ElfClass;
+
+  ElfClass = Elf.GetFileClass();
+  //
+  // Set up initial PC
+  //
+  PC = Elf.GetExprValue("system_init");
+  if (PC != 0xFFFFFFFF) {
+    if (ElfClass == ELF_CLASS_64) {
+      //
+      // AArch64
+      //
+      Target.SetReg("PC", PC);
+    } else if (ElfClass == ELF_CLASS_32) {
+      //
+      // AArch32
+      //
+      Exec.Reset();
+      Target.SetReg("CPSR", 0x01da);
+      Target.SetReg("R15 (PC)", PC);
+    } else {
+      Util.Error("Project script error: failed to set initial PC", 1);
+    }
+  } else {
+    Util.Error("Project script error: failed to set initial PC", 1);
+  }
+}

+ 57 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/.clang-format

@@ -0,0 +1,57 @@
+---
+Language:        Cpp
+# BasedOnStyle:  Google
+AccessModifierOffset: -1
+ConstructorInitializerIndentWidth: 4
+AlignEscapedNewlinesLeft: true
+AlignTrailingComments: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortBlocksOnASingleLine: false
+AllowShortIfStatementsOnASingleLine: true
+AllowShortLoopsOnASingleLine: true
+AllowShortFunctionsOnASingleLine: All
+AlwaysBreakTemplateDeclarations: true
+AlwaysBreakBeforeMultilineStrings: true
+BreakBeforeBinaryOperators: false
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializersBeforeComma: false
+BinPackParameters: true
+ColumnLimit:     80
+ConstructorInitializerAllOnOneLineOrOnePerLine: true
+DerivePointerAlignment: true
+ExperimentalAutoDetectBinPacking: false
+IndentCaseLabels: true
+IndentWrappedFunctionNames: false
+IndentFunctionDeclarationAfterType: false
+MaxEmptyLinesToKeep: 1
+KeepEmptyLinesAtTheStartOfBlocks: false
+NamespaceIndentation: None
+ObjCSpaceAfterProperty: false
+ObjCSpaceBeforeProtocolList: false
+PenaltyBreakBeforeFirstCallParameter: 1
+PenaltyBreakComment: 300
+PenaltyBreakString: 1000
+PenaltyBreakFirstLessLess: 120
+PenaltyExcessCharacter: 1000000
+PenaltyReturnTypeOnItsOwnLine: 200
+PointerAlignment: Left
+SpacesBeforeTrailingComments: 2
+Cpp11BracedListStyle: true
+Standard:        Auto
+IndentWidth:     2
+TabWidth:        8
+UseTab:          Never
+BreakBeforeBraces: Attach
+SpacesInParentheses: false
+SpacesInAngles:  false
+SpaceInEmptyParentheses: false
+SpacesInCStyleCastParentheses: false
+SpacesInContainerLiterals: true
+SpaceBeforeAssignmentOperators: true
+ContinuationIndentWidth: 4
+CommentPragmas:  '^ IWYU pragma:'
+ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
+SpaceBeforeParens: ControlStatements
+DisableFormat:   false
+...
+

+ 22 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/.gitattributes

@@ -0,0 +1,22 @@
+# Code formatter settings
+*.c filter=uncrustify
+*.cpp filter=uncrustify
+*.h filter=uncrustify
+*.hpp filter=uncrustify
+
+# Set the default behavior, in case people don't have core.autocrlf set.
+* text=auto
+
+# Explicitly declare text files you want to always be normalized and converted
+# to native line endings on checkout.
+*.c text
+*.h text
+
+# Declare files that will always have CRLF line endings on checkout.
+*.sln text eol=crlf
+*.stc text eol=crlf
+*.eds text eol=crlf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary

+ 6 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/.github/dependabot.yml

@@ -0,0 +1,6 @@
+version: 2
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "weekly"

+ 71 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/.github/workflows/cmake.yml

@@ -0,0 +1,71 @@
+name: CMake
+
+on:
+  push:
+    branches: [ "master" ]
+  pull_request:
+    branches: [ "master" ]
+
+env:
+  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+  BUILD_TYPE: Release
+  BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
+
+jobs:
+  build:
+    # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
+    # You can convert this to a matrix build if you need cross-platform coverage.
+    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+    name: Build
+    runs-on: ubuntu-latest
+    env:
+      BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
+
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
+
+      - name: Set up Python 3.8 for gcovr
+        uses: actions/setup-python@v5
+        with: 
+          python-version: 3.8
+
+      - name: install gcovr 5.0
+        run: |
+          pip install gcovr==5.0 # 5.1 is not supported
+          
+      - name: Install libcap, lcov, and CppUTest
+        run: sudo apt-get install -y libcap-dev lcov cpputest
+
+      - name: Install sonar-scanner and build-wrapper
+        uses: SonarSource/sonarcloud-github-c-cpp@v3
+
+      - name: Configure CMake
+        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
+      #  See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
+        run: cmake -S ${{github.workspace}}/source -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DOpENer_PLATFORM:STRING="POSIX" -DBUILD_SHARED_LIBS:BOOL=OFF -DOpENer_TRACES:BOOL=OFF -DOpENer_TESTS:BOOL=ON -DCPPUTEST_HOME:PATH=/usr
+
+      - name: Build
+        # Build your program with the given configuration
+        run: |
+          build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
+
+      - name: Test
+        working-directory: ${{github.workspace}}/build
+        # Execute tests defined by the CMake configuration.
+        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
+        run: ctest -C ${{env.BUILD_TYPE}}
+
+      - name: Collect coverage into one XML report
+        run: |
+          gcovr --sonarqube > coverage.xml
+    
+      - name: Run sonar-scanner
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN  }} # Put the name of your token here
+        run: |
+          sonar-scanner \
+            --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" \
+            --define sonar.coverageReportPaths=coverage.xml

+ 23 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/.gitignore

@@ -0,0 +1,23 @@
+bin/
+contrib/
+source/src/cip_objects/
+!source/src/cip_objects/CMakeLists.txt
+.project
+.cproject
+.settings/
+*.*~
+*~
+CMakeCache.txt
+.idea/
+*.a
+*.cmake
+Makefile
+CMakeFiles
+devicedata.h
+source/src/ports/POSIX/OpENer
+source/cip_objects/
+
+.vscode/
+
+
+build/

+ 56 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/.travis.yml

@@ -0,0 +1,56 @@
+language: c
+branches:
+  except:
+  - gh-pages
+env:
+  global:
+  - GH_REPO_NAME: OpENer
+  - DOXYFILE: opener.doxyfile
+  - GH_REPO_REF: github.com/EIPStackGroup/OpENer.git
+  - secure: h1vuX5cGZd5W7f5TitD+EamJIsvG2qq8aBpO9MUGIOj3bShwTaR0S0qbcpCyltXiZ9DJklLc7kP5kB0XtX1o6vZMelQsqBjiHQK5yFW0vHmFAg1sLMpVBbsAN0lMWgeGJEmyRstA1KYBixwExtc5GpcgMBvS/mnJQ10zboZNcRU=
+  - secure: CN1E5LJZwa7PLJOcst1MNb1c5Nx1rM9ifrc4llevRyTRyHxJ2S15mVQdnCvMcdPFK+ranBdsl1WcIxP3BQtI4zDwj0UWjj44EHz67VTp1o3zuaCa0fExYUwbe0D8uGRP4XbX+B4+HQWneGbabOLAZcS3Gc/pUpC3WEJO2pO2BHg=
+addons:
+  apt:
+    packages:
+    - libcap-dev
+    - lcov
+    - doxygen
+    - doxygen-doc
+    - doxygen-latex
+    - doxygen-gui
+    - graphviz
+  sonarcloud:
+    organization: eipstackgroup
+    token: $SONAR_TOKEN
+
+jobs:
+  - name: "GCC on Linux"
+    os: linux
+    dist: xenial
+    env: CMAKE_URL="https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz"
+
+    install:
+      - git fetch --unshallow --tags
+      - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
+      - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
+      - |
+        mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
+        export PATH=${DEPS_DIR}/cmake/bin:${PATH}
+        cmake --version
+    before_script:
+      - $TRAVIS_BUILD_DIR/travis_scripts/linuxBeforeScript.sh
+    script:
+      - $TRAVIS_BUILD_DIR/travis_scripts/linuxScript.sh
+    after_success:
+      - $TRAVIS_BUILD_DIR/travis_scripts/linuxAfterSuccessScript.sh
+  - name: "MSVC on Windows"
+    os: windows
+    script:
+      - $TRAVIS_BUILD_DIR/travis_scripts/windowsScript.sh
+  - name: "MinGW on Windows"
+    os: windows
+    env:
+      - CC="/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin/x86_64-w64-mingw32-gcc"
+      - CXX="/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin/x86_64-w64-mingw32-g++"
+    script:
+      - $TRAVIS_BUILD_DIR/travis_scripts/windowsMinGWScript.sh

+ 4 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/AUTHORS

@@ -0,0 +1,4 @@
+Kurt Schweiger
+Rene Smodic
+Alois Zoitl
+Jonathan Engdahl

+ 390 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/ChangeLog.txt

@@ -0,0 +1,390 @@
+2011-11-22  alil
+
+	* src/cip/cipclass3connection.c, src/cip/cipconnectionmanager.c,
+	  src/cip/cipconnectionmanager.h, src/cip/cipioconnection.c: fixed
+	  issue in handling connection class trigger
+
+2011-11-21  alil
+
+	* ChangeLog.txt, src/cip/cipconnectionmanager.c,
+	  src/cip/cipconnectionmanager.h, src/cip/cipioconnection.c: added
+	  support for production inhibit time network segment
+	* ChangeLog.txt, README: updated ChangeLog.txt and README for 1.1.
+	  release
+	* .:
+	* : updated documentation for upcoming release
+
+2011-11-18  alil
+
+	* : fixed issue with latest changes to connection path handling
+	* : updated stc file
+	* : updated some parameters
+	* : first version of application triggered connection support
+
+2011-11-17  alil
+
+	* : added IApp_HandleApplication as starting point for application
+	  triggered connections
+	* : fixed issue in close socket
+	* : improved forward open infrastructure non assembly object I/O
+	  connections
+
+2011-09-13  alil
+
+	* : reworked the structure CIP_Class in order to make its
+	  maintenance easier.
+
+2011-08-25  alil
+
+	* : reworked connection handling mechanisms in a way that any CIP
+	  object can be a connection target
+
+2011-05-18  alil
+
+	* : added support for compilation on win32
+	* : fixed bug# 3285739: config assembly return value wrong
+
+2011-02-17  alil
+
+	* : fixed issue with 64Bit datatype support
+
+2011-01-04  alil
+
+	* : merged changes from 1.0.3 release branch
+
+2010-12-17  alil
+
+	* : fixed wrong endless loop in isConnectedOutputAssembly
+
+2010-12-16  alil
+
+	* : added check in setAttributeSingle of assembly objects if they
+	  are the write target in any open connection
+	* : fixed handling of configuration data
+	* : added more than 1 simultaneous connections for listen only and
+	  input only
+	* : fixed wrong initialization of listen only connections
+
+2010-12-09  alil
+
+	* : moved checking of correct originator address for connected
+	  messages into the handleReceivedConnectedData function in order
+	  to correctly check even if data is presented from wrong socket.
+	* : fixed an issue in forward open of listen and input only
+	  connections
+
+2010-12-01  alil
+
+	* : Fixed Bug# 3124374: faulty if in getListenOnlyConnection()
+	  thanks csar
+
+2010-10-21  alil
+
+	* : added config flag for enabling/disabling the support of 64Bit
+	  datatypes
+	* : Added support for 64Bit integers, implemented a basic data type
+	  decoding infrastructure that simplifies the implementation of
+	  services like SetAttributeSingle, moved encodeData and decodeData
+	  into the public interface of opener in order to allow device
+	  implementers to use them for implementing setting and getting of
+	  special attributes like structs.
+	* : Refactored the names of the encapsulation message handling
+	  functions to better show that these are the functions for
+	  handling received messages.
+
+2010-09-24  alil
+
+	* : Fixed wrong reply connection ID in connected explicit messages
+
+2010-08-11  alil
+
+	* : fixed bug# 3042699: Network handler should close sockets
+	  consistently
+
+2010-07-27  alil
+
+	* : Fixed Bug# 3034698: alignment
+
+2010-06-23  alil
+
+	* : fixed Bug# 3020064: error in tcpip object attr. 4
+
+2010-06-22  alil
+
+	* : Fixed Bug# 3019069: socket close
+
+2010-06-21  alil
+
+	* : worked to improve handling of to large packets
+
+2010-06-16  alil
+
+	* : reworked outputAttribute function to be more flexible and
+	  better usable for encoding not only certain attributes but also
+	  for arrays and structures.
+
+2010-06-14  alil
+
+	* : Fixed Bug# 3015757: endianess bug in cipcommon.c
+
+2010-06-04  alil
+
+	* : Fixed Bug# 3011151: Bug in notifyConnectedCPF (== should be =)
+
+2010-05-27  alil
+
+	* : Fixed Bug# 3007819: T_to_O_RPI
+	* : consolidated connection manager extended error defintions
+
+2010-05-25  alil
+
+	* : fixed issue when explicit messages should not return a value
+	* : fixed issues in returning the correct messages.
+	* : Fixed Bug# 3006795: unconnected send
+
+2010-05-21  alil
+
+	* : changed attrib type back to 16Bit
+
+2010-05-20  alil
+
+	* : Fixed Bug# 2996649: Identity object mixes Status (#5) with
+	  State (#8)
+	* : Fixed Bug# 3004678: attribute id bug: 8/16/32-bit?
+	* : Fixed Bug 3004683: Message Router: 16-bit attribute id
+
+2010-05-14  alil
+
+	* : added stc file for example application
+
+2010-05-12  alil
+
+	* : Fixed Bug #3000134: connection failures can put stack in
+	  unrecoverable state
+
+2010-05-11  alil
+
+	* : Applied Patch #3000005: trivial: mark correct socket closed
+
+2010-05-07  alil
+
+	* : fixed Bug 2997845: if CIP Item Id is bad, need to return
+	  encapsulation error
+
+2010-05-05  alil
+
+	* : improved reset handling in demo app
+	* : changed assembly object to do not have getAttributeAll per
+	  default
+	* : fixed explicit messaging handling regarding the return vars of
+	  the involved functions; allow that objects do not have
+	  getAttributeAll per default (e.g., needed for assembly object)
+	* : corrected setAssemblyAttributeSingle to return the right error
+	  values
+	* : changed revision of assembly class to 2 as required by the cip
+	  spec
+
+2010-05-03  alil
+
+	* : merged changes from 1.0.1 release
+
+2010-04-28  alil
+
+	* : changed assembly ids to the vendor specific range, updated
+	  opener_sample_app.eds, move ChangeLog to ChangeLog.txt
+	* : fixed bug that dissallowed using 16bit class instance ids
+
+2010-04-27  alil
+
+	* : updated ChangeLog
+
+2010-04-21  alil
+
+	* : Applied patch ID: 2989571 (explicit message access
+	  get/setattribute single) for assembly objects
+
+2010-04-15  alil
+
+	* : changed file headers to make them easier to maintain
+
+2010-04-07  alil
+
+	* : fixed bug 2983235
+
+2010-03-16  alil
+
+	* : fixed assert error thanks to csar
+
+2010-03-13  alil
+
+	* : applied custom assertion patch, thanks to bumpp
+
+2010-03-08  alil
+
+	* : applied domain name patch
+
+2010-03-05  alil
+
+	* : moved the encapsulate data to one central plaze
+	* : improved buffer usage in the encapsulation layer. this uses
+	  global vars makes opener easier to read and is the basis for
+	  multiple requests at the same time. This request is based on the
+	  patch submitted by bumpp. Thanks.
+
+2010-02-24  alil
+
+	* : made some changes reported by splint
+
+2010-02-23  alil
+
+	* : fixed wrong asserts in cip startup. Thanks to Mr. Kaiser for
+	  reporting this issue.
+
+2010-02-20  alil
+
+	* : added patch for incarnation id based connection id generation.
+	  Thanks to bumpp
+	* : fixed some pointer checks in ciptcpipinterface.c string
+	  handling
+
+2010-02-11  alil
+
+	* : fixed issue in api declaration; fixed issue for compiling
+	  networkhandler under linux
+	* : first quick fix for the "hijacked" port problem
+
+2010-02-04  alil
+
+	* : finished work on shutdown and clean up code. If opener is now
+	  shutdown it should free all allocated resources.
+	* : added support for connection shutdown on opener close
+
+2010-02-03  alil
+
+	* : Applied patch from bumpp:
+	  This patch adds value definitions for the List Identity Object's
+	  State
+	  attribute, and adds use of the "operational" define in
+	  ListIdentity()
+	  function.
+	  Changed in ListIdentity() to use the status value of the identity
+	  object instead of a constant.
+
+2010-01-24  alil
+
+	* : applied EIP_INVALID_SOCKET patch
+
+2010-01-15  alil
+
+	* : added new api for freeing allocated memory
+
+2010-01-13  alil
+
+	* : fixed wrong IO connection event on application establishment.
+	* : fixed wrong if statement in manageConnections handling
+	  connection timeouts
+
+2009-11-04  alil
+
+	* : fixed issue in an return value of ForwardOpen
+
+2009-11-03  alil
+
+	* : changed sample app to mirror outputs to the inputs
+	* : added first simple eds file with just the connections
+	* : reworked documentation
+
+2009-10-29  alil
+
+	* : added coding rules, and eclipse project settings for the code
+	  formatting
+
+2009-10-27  alil
+
+	* : fully implemented the correct behavior of exclusive owner,
+	  input only, and listen only connections.
+
+2009-10-22  alil
+
+	* : added callback for informing the application on connection
+	  state changes
+	* : starting point for new IO connection handling supporting
+	  application connection types, Attention not finished
+	  implementation!!!
+	  However exclusive owner and input only should work. Please check
+	  for the new application interface.
+
+2009-10-15  alil
+
+	* : fixed wrong handling of timeout multiplier
+
+2009-10-14  alil
+
+	* : updated connection id choosing to conform to the EIP specs
+	* : changed watchdogtimeout behavior to be per default timed out as
+	  it is required on EIP
+
+2009-10-07  alil
+
+	* : fixed issue with wrong usage of connectionIDs when given by the
+	  originator
+
+2009-09-24  alil
+
+	* : implemented support for heartbeat connections; fixed some
+	  issues with peer-to-peer connections
+
+2009-09-08  alil
+
+	* : removed testing output message
+
+2009-09-07  alil
+
+	* : worked on documentation, fixed spelling errors
+
+2009-09-03  alil
+
+	* : reworked tracing facilities to create better code especially
+	  for production code
+
+2009-09-02  alil
+
+	* : made OpENer compile able with c++, updated porting guide to
+	  include ref to setDeviceSerial
+
+2009-09-01  alil
+
+	* : added function for setting the serial number during device
+	  setup allowing to set the serial number more easily per device;
+	  changed main to prompt for command line parameters, updated TODO
+	  and README
+	* : added setsockopt for listen to broadcast messages. is necessary
+	  on some linuxes
+	* : made opener compile with ansi switch
+
+2009-08-31  alil
+
+	* : finished porting guide documentation, update and fixed some
+	  doxygen issues
+	* : finished porting guide documentation, update and fixed some
+	  doxygen issues
+
+2009-08-27  alil
+
+	* : fixed issue in assembly object creation, correctly setup
+	  default build in eclipse project
+
+2009-08-26  alil
+
+	* : worked on general documentation and introduction
+
+2009-08-25  alil
+
+	* : updated documentation main page
+	* : updated documentation of the encapsulation layer
+
+2009-08-24  alil
+
+	* : initial import
+	* :
+

+ 225 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/README.md

@@ -0,0 +1,225 @@
+[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=EIPStackGroup_OpENer&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=EIPStackGroup_OpENer)
+[![Join the chat at https://gitter.im/EIPStackGroupOpENer/Lobby](https://badges.gitter.im/EIPStackGroupOpENer/Lobby.svg)](https://gitter.im/EIPStackGroupOpENer/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+
+OpENer Version 2.3.0
+====================
+
+Welcome to OpENer!
+------------------
+
+OpENer is an EtherNet/IP&trade; stack for I/O adapter devices; supports multiple 
+I/O and explicit connections; includes objects and services to make EtherNet/IP&trade;-
+compliant products defined in THE ETHERNET/IP SPECIFICATION and published by 
+ODVA (http://www.odva.org).
+
+Participate!
+------------
+Users and developers of OpENer can join the respective Google Groups in order to exchange experience, discuss the usage of OpENer, and to suggest new features and CIP objects, which would be useful for the community.
+
+Developers mailing list: https://groups.google.com/forum/#!forum/eip-stack-group-opener-developers
+
+Users mailing list: https://groups.google.com/forum/#!forum/eip-stack-group-opener-users
+
+Requirements:
+-------------
+OpENer has been developed to be highly portable. The default version targets PCs
+with a POSIX operating system and a BSD-socket network interface. To test this 
+version we recommend a Linux PC or Windows with Cygwin (http://www.cygwin.com) 
+installed. You will need to have the following installed:
+
+* CMake
+* gcc
+* make
+* binutils
+* the development library of libcap (libcap-dev or equivalient)
+ 
+for normal building. These should be installed on most Linux installations and
+are part of the development packages of Cygwin.
+
+If you want to run the unit tests you will also have to download CppUTest via
+https://github.com/cpputest/cpputest
+
+For configuring the project we recommend the use of a CMake GUI (e.g., the 
+cmake-gui package on Linux, or the Installer for Windows available at [CMake](https://cmake.org/))
+
+Compile for Linux/POSIX:
+----------------
+1. Make sure all the needed tools are available (CMake, make, gcc, binutils)
+2. Change to the <OpENer main folder>/bin/posix
+3. For a standard configuration invoke ``setup_posix.sh``
+	1. Invoke the ``make`` command
+	2. Invoking OpENer:
+
+		``./src/ports/POSIX/OpENer <interface_name>``
+
+		e.g. ``./src/ports/POSIX/OpENer eth1``
+
+OpENer also now has a real-time capable POSIX startup via the OpENer_RT option, which requires that the used kernel has the full preemptive RT patches applied and activated.
+If you want to use OpENer_RT, prior to step 2, execute ``sudo setcap cap_ipc_lock,cap_sys_nice+ep ./src/ports/POSIX/OpENer
+`` to grant OpENEr ``CAP_SYS_NICE``, and the ``CAP_IPC_LOCK`` capabilities, which are needed for the RT mode
+
+OpENer can also be built and installed as a library by setting the CMake flag `-DOPENER_INSTALL_AS_LIB`.  To build a shared library,
+the global option `-DBUILD_SHARED_LIBS=ON` should also be set.  It has only been tested under Linux/POSIX platform.
+
+
+Compile for Windows XP/7/8 via Visual Studio:
+---------------------------------------------
+1. Invoke setup_windows.bat or configure via CMake
+2. Open Visual Studio solution OpENer.sln in bin/win32
+3. Compile OpENer by chosing ``Build All`` in Visual Studio
+4. For invoking OpENer type from the command line:
+	1. Change to <OpENer main folder>\bin\win32\src\ports\WIN32\
+	2. Depending if you chose the ``Debug`` or ``Release`` configuration in Visual Studio, your executable will either show up in the subfolder Debug or Release
+	3. Invoke OpENer via
+
+		``OpENer <interface_index>``
+
+		e.g. ``OpENer 3``
+
+In order to get the correct interface index enter the command ``route print`` in a command promt and search for the MAC address of your chosen network interface at the beginning of the output. The leftmost number is the corresponding interface index.
+		
+Compile for Windows XP/7/8/10 via Cygwin:
+--------------------------------------
+The POSIX setup file can be reused for Cygwin. Please note, that you cannot use RT mode and you will have to remove the code responsible for checking and getting the needed capabilities, as libcap is not available in Cygwin. The easier and more supported way to build OpENer for Windows is to either use MinGW or Visual Studio.
+
+Compile for MinGW on Windows XP/7/8/10
+-------------------------------
+1. Make sure 64 bit mingw is installed. (Test with gcc --version, should show x86_64-posix-seh-rev1)
+2. Make sure CMake is installed. (Test with cmake --version, should be version 3.xx)
+3. Change to <opener install dir>/bin/mingw
+4. Run the command `setup_mingw.bat` in a dos command line. (Not a bash shell). If tracing is desired, 
+use the following (where the cmake parameter must be enclosed in quotes) or change the ./source/CMakeList.txt file.
+    ```
+    setup_mingw.bat "-DOpENer_TRACES:BOOL=TRUE"
+    ```
+5. Run the command "make" from the same directory (./bin/mingw)
+6. The opener.exe is now found in <opener install dir>\bin\mingw\src\ports\MINGW
+7. Start it like this: "opener 192.168.250.22", where the ip address is the local computer's address on the nettwork you want to use.
+		
+Directory structure:
+--------------------
+- bin ...  The resulting binaries and make files for different ports
+- doc ...  Doxygen generated documentation (has to be generated for the SVN version) and Coding rules
+- data ... EDS file for the default application
+- source
+	- src ... the production source code
+		- cip ... the CIP layer of the stack
+		- cip_objects ... additional CIP objects
+		- enet_encap ... the Ethernet encapsulation layer
+		- ports ... the platform specific code
+		- utils ... utility functions
+	- tests ... the test source code
+		- enet_encap ... tests for Ethernet encapsulation layer
+		- utils ... tests for utility functions
+
+Documentation:
+--------------
+The documentation of the functions of OpENer is part of the source code. The source 
+packages contain the generated documentation in the directory doc/api_doc. If you 
+use the GIT version you will need the program Doxygen for generating the HTML 
+documentation. You can generate the documentation by invoking doxygen from the 
+command line in the opener main directory.
+
+
+Fuzzing
+--------------
+### Intro
+Fuzzing is an automated testing method that directs varying input data to a program in 
+order to monitor output. It is a way to test for overall reliability as well as identify 
+potential security bugs.
+
+The fuzzer we are using is AFL, a fuzzer that uses runtime guided techniques to create input for the tested program. From a high-level prespective AFL works as follows:
+- Forks the fuzzed process
+- Genereates a new test case based on a predefined input
+- Feeds the fuzzed process with the test case through STDIN
+- Monitors the execution and registers which paths are reachable
+
+![Alt text](fuzz/imgs/fuzz.png "AFL Fuzzing")
+
+### Compile
+To start fuzzing this project with AFL you'll need to compile it with AFL.
+First make sure you have AFL installed:
+```
+sudo apt install build-essential
+wget http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz
+tar xzf afl-latest.tgz
+cd afl*
+make && sudo make install
+echo "AFL is ready at: $(which afl-fuzz)"
+
+```
+
+Then, compile OpENer with AFL:
+1. Change to the ``OpENer/bin/posix`` directory
+2. Compile OpENer with AFL ``./setup_posix_fuzz_afl.sh`` 
+3. Run ``make``
+
+### Fuzz
+Finally, generate some test cases and start AFL:
+```
+# Generate inputs
+mkdir inputs
+echo 630000000000000000000000000000000000000000000000 | xxd -r -p > ./inputs/enip_req_list_identity
+# You can also use the inputs we prepared from OpENer/fuzz/inputs
+# Finally, let's fuzz!
+afl-fuzz -i inputs -o findings ./src/ports/POSIX/OpENer <interface_name>
+```
+
+### Reproduce a crash
+Usually to reproduce a crash it's enough to retransmit the testcase using ``cat testcase | nc IP_ADDR 44818``
+However, since CIP runs over the EtherNet/IP layer, it must first register a valid session. Therefore, we need to use a dedicated script:
+`python fuzz/scripts/send_testcase.py IP testcase_path`
+
+Running an OpENer "swarm":
+--------------------------
+
+1. Create a macvlan network for this purpose and tie it to the desired eth port.
+Specify the IP range and use aux address to exclude the addresses used by other devices in the subnet such as the IP of the EIP scanner PC, network bridge, etc.:
+docker network create -d macvlan --subnet=192.168.135.253/24 --ip-range=192.168.135.100/24 --aux-address="PC1=192.168.135.250" --aux-address="VM=192.168.135.252" --aux-address="BR=192.168.135.253" -o parent=eth2 mac_vlan_network
+
+Check the network you created with: docker network inspect mac_vlan_network
+
+The network will assign IP's to the docker containers and an external scanner will be able to communicate with them. To access the containers from inside the docker host, you will have to create a bridge.
+
+2. Create a Dockerfile.
+This uses Ubuntu as the base image. It will copy OpENer to the image root and install the required packages. Lastly run OpENer on eth0 of the image:
+#Filename: Dockerfile
+FROM ubuntu:20.04
+ADD ./bin/posix/src/ports/POSIX/OpENer /
+RUN apt-get update && apt-get install -y --no-install-recommends libcap-dev nmap
+ENTRYPOINT ["./OpENer", "eth0"]
+
+3. Create a docker-compose.yml that will let you connect the macvlan network to the containers and easily build them and tear them down:
+version: "3.3"
+services:
+dockerimagename:
+network_mode: mac_vlan_network
+image: dockeruser/dockerimagename
+
+Note that to login to a running container, you have to expose a port in the dockerfile and dockercompose files and set up a network bridge.
+
+Docker commands to start and stop multiple instances of the OpENer containers:
+Start up 128 docker image instances: docker-compose up --scale dockerimagename=128 -d
+Shut down all the instances: docker-compose down
+
+Porting OpENer:
+---------------
+For porting OpENer to new platforms please see the porting section in the 
+Doxygen documentation.
+
+Contributing to OpENer:
+-----------------------
+The easiest way is to fork the repository, then create a feature/bugfix branch.
+After finishing your feature/bugfix create a pull request and explain your changes.
+Also, please update and/or add doxygen comments to the provided code sections.
+Please stick to the coding conventions, as defined in source/doc/coding_rules
+The easiest way to conform to the indenting convertion is to set uncrustify as git filter in the OpENer repository, which can be done with the following to commands:
+
+```
+git config filter.uncrustify.clean "/path/to/uncrustify/uncrustify -c uncrustify.cfg --mtime --no-backup"
+
+git config filter.uncrustify.smudge "cat"
+```
+
+

+ 20 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/TODO

@@ -0,0 +1,20 @@
+This file serves as brainstorming buffer for ideas to improve and enhance OpENer:
+
+* New Features:
+  - Implementation of common CIP-objects
+  - CIP-Sync
+  - CIP-Motion
+
+
+* Improvements and Optimizations
+  - Remove the need for the response buffer in the explicit message handling 
+  	(zero copy stack)
+  - Rework I/O message handling:
+     - own buffers for each connection that are preconfigured and only runtime 
+       data needs to be changed.
+  - Rework socket handling 
+     - Use only one single UDP socket for all I/O messages
+         - may not be possible for point to point consuming connections where
+           the scanner gives a different port number
+     - use the registered port number 2222 for all I/O communication 
+     

Разлика између датотеке није приказан због своје велике величине
+ 115 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/data/OpENerPC.stc


+ 359 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/data/opener_sample_app.eds

@@ -0,0 +1,359 @@
+$ EZ-EDS Version 3.23.1.20171205 Generated Electronic Data Sheet
+
+[File]
+        DescText = "EDS file for the sample application of OpENer";
+        CreateDate = 11-03-2009;
+        CreateTime = 13:15:23;
+        ModDate = 02-06-2018;
+        ModTime = 14:05:38;
+        Revision = 2.3;
+        HomeURL = "https://github.com/EIPStackGroup/OpENer";
+
+[Device]
+        VendCode = 1;
+        VendName = "Rockwell Automation";
+        ProdType = 12;
+        ProdTypeStr = "Communications Adapter";
+        ProdCode = 65001;
+        MajRev = 2;
+        MinRev = 3;
+        ProdName = "OpENer PC";
+        Catalog = "OpENer-2.x";
+
+[Device Classification]
+        Class1 = EtherNetIP;
+
+[Params]
+        Param1 =
+                0,                      $ reserved, shall equal 0
+                ,,                      $ Link Path Size, Link Path
+                0x0000,                 $ Descriptor
+                0xD1,                   $ Data Type
+                1,                      $ Data Size in bytes
+                "Input Data",           $ name
+                "",                     $ units
+                "New Help String",      $ help string
+                ,,0,                    $ min, max, default data values
+                ,,,,                    $ mult, div, base, offset scaling
+                ,,,,                    $ mult, div, base, offset links
+                ;                       $ decimal places
+        Param2 =
+                0,                      $ reserved, shall equal 0
+                ,,                      $ Link Path Size, Link Path
+                0x0000,                 $ Descriptor
+                0xD1,                   $ Data Type
+                1,                      $ Data Size in bytes
+                "Output Data",          $ name
+                "",                     $ units
+                "New Help String",      $ help string
+                ,,0,                    $ min, max, default data values
+                ,,,,                    $ mult, div, base, offset scaling
+                ,,,,                    $ mult, div, base, offset links
+                ;                       $ decimal places
+        Param3 =
+                0,                      $ reserved, shall equal 0
+                ,,                      $ Link Path Size, Link Path
+                0x0000,                 $ Descriptor
+                0xD1,                   $ Data Type
+                1,                      $ Data Size in bytes
+                "Config Data",          $ name
+                "",                     $ units
+                "New Help String",      $ help string
+                ,,0,                    $ min, max, default data values
+                ,,,,                    $ mult, div, base, offset scaling
+                ,,,,                    $ mult, div, base, offset links
+                ;                       $ decimal places
+        Param4 =
+                0,                      $ reserved, shall equal 0
+                ,,                      $ Link Path Size, Link Path
+                0x0000,                 $ Descriptor
+                0xC8,                   $ Data Type
+                4,                      $ Data Size in bytes
+                "RPI",                  $ name
+                "",                     $ units
+                "New Help String",      $ help string
+                20000,,30000,           $ min, max, default data values
+                ,,,,                    $ mult, div, base, offset scaling
+                ,,,,                    $ mult, div, base, offset links
+                ;                       $ decimal places
+
+[Assembly]
+        Object_Name = "Assembly Object";
+        Object_Class_Code = 0x04;
+        Number_Of_Static_Instances = 6;
+        Assem100 =
+                "Input Assembly",
+                "",
+                32,
+                0x0000,
+                ,,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1,
+                8,Param1;
+        Assem150 =
+                "Output Assembly",
+                "",
+                32,
+                0x0001,
+                ,,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2,
+                8,Param2;
+        Assem151 =
+                "Config Assembly",
+                "",
+                10,
+                0x0001,
+                ,,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3,
+                8,Param3;
+
+[Connection Manager]
+        Revision = 1;
+        Object_Name = "Connection Manager Object";
+        Object_Class_Code = 0x06;
+        MaxInst = 1;
+        Number_Of_Static_Instances = 1;
+        Max_Number_Of_Dynamic_Instances = 0;
+        Connection1 =
+                0x84010002,             $ 0-15    = supported transport classes
+                                        $ 16      = trigger: cyclic
+                                        $ 17      = trigger: change of state
+                                        $ 18      = trigger: application
+                                        $ 19-23   = trigger: reserved
+                                        $ 24      = transport type: listen-only
+                                        $ 25      = transport type: input-only
+                                        $ 26      = transport type: exclusive-owner
+                                        $ 27      = transport type: redundant-owner
+                                        $ 28-30   = reserved
+                                        $ 31      = Client = 0 / Server = 1
+                0x44640405,             $ 0       = O->T fixed size supported
+                                        $ 1       = O->T variable size supported
+                                        $ 2       = T->O fixed size supported
+                                        $ 3       = T->O variable size supported
+                                        $ 4-5     = O->T number of bytes per slot (obsolete)
+                                        $ 6-7     = T->O number of bytes per slot (obsolete)
+                                        $ 8-10    = O->T Real time transfer format
+                                        $ 11      = reserved
+                                        $ 12-14   = T->O Real time transfer format
+                                        $ 15      = reserved
+                                        $ 16      = O->T connection type: NULL
+                                        $ 17      = O->T connection type: MULTICAST
+                                        $ 18      = O->T connection type: POINT2POINT
+                                        $ 19      = O->T connection type: reserved
+                                        $ 20      = T->O connection type: NULL
+                                        $ 21      = T->O connection type: MULTICAST
+                                        $ 22      = T->O connection type: POINT2POINT
+                                        $ 23      = T->O connection type: reserved
+                                        $ 24      = O->T priority: LOW
+                                        $ 25      = O->T priority: HIGH
+                                        $ 26      = O->T priority: SCHEDULED
+                                        $ 27      = O->T priority: reserved
+                                        $ 28      = T->O priority: LOW
+                                        $ 29      = T->O priority: HIGH
+                                        $ 30      = T->O priority: SCHEDULED
+                                        $ 31      = T->O priority: reserved
+                Param4,,Assem150,       $ O->T RPI, size, format
+                Param4,,Assem100,       $ T->O RPI, size, format
+                ,,                      $ config #1 size, format
+                ,Assem151,              $ config #2 size, format
+                "Exlusive Owner",       $ Connection Name
+                "",                     $ help string
+                "20 04 24 97 2C 96 2C 64";    $ Path
+        Connection2 =
+                0x02010002,             $ 0-15    = supported transport classes
+                                        $ 16      = trigger: cyclic
+                                        $ 17      = trigger: change of state
+                                        $ 18      = trigger: application
+                                        $ 19-23   = trigger: reserved
+                                        $ 24      = transport type: listen-only
+                                        $ 25      = transport type: input-only
+                                        $ 26      = transport type: exclusive-owner
+                                        $ 27      = transport type: redundant-owner
+                                        $ 28-30   = reserved
+                                        $ 31      = Client = 0 / Server = 1
+                0x44640305,             $ 0       = O->T fixed size supported
+                                        $ 1       = O->T variable size supported
+                                        $ 2       = T->O fixed size supported
+                                        $ 3       = T->O variable size supported
+                                        $ 4-5     = O->T number of bytes per slot (obsolete)
+                                        $ 6-7     = T->O number of bytes per slot (obsolete)
+                                        $ 8-10    = O->T Real time transfer format
+                                        $ 11      = reserved
+                                        $ 12-14   = T->O Real time transfer format
+                                        $ 15      = reserved
+                                        $ 16      = O->T connection type: NULL
+                                        $ 17      = O->T connection type: MULTICAST
+                                        $ 18      = O->T connection type: POINT2POINT
+                                        $ 19      = O->T connection type: reserved
+                                        $ 20      = T->O connection type: NULL
+                                        $ 21      = T->O connection type: MULTICAST
+                                        $ 22      = T->O connection type: POINT2POINT
+                                        $ 23      = T->O connection type: reserved
+                                        $ 24      = O->T priority: LOW
+                                        $ 25      = O->T priority: HIGH
+                                        $ 26      = O->T priority: SCHEDULED
+                                        $ 27      = O->T priority: reserved
+                                        $ 28      = T->O priority: LOW
+                                        $ 29      = T->O priority: HIGH
+                                        $ 30      = T->O priority: SCHEDULED
+                                        $ 31      = T->O priority: reserved
+                Param4,0,,              $ O->T RPI, size, format
+                Param4,32,Assem100,     $ T->O RPI, size, format
+                ,,                      $ config #1 size, format
+                0,,                     $ config #2 size, format
+                "Input Only",           $ Connection Name
+                "",                     $ help string
+                "20 04 24 97 2C 98 2C 64";    $ Path
+        Connection3 =
+                0x01010002,             $ 0-15    = supported transport classes
+                                        $ 16      = trigger: cyclic
+                                        $ 17      = trigger: change of state
+                                        $ 18      = trigger: application
+                                        $ 19-23   = trigger: reserved
+                                        $ 24      = transport type: listen-only
+                                        $ 25      = transport type: input-only
+                                        $ 26      = transport type: exclusive-owner
+                                        $ 27      = transport type: redundant-owner
+                                        $ 28-30   = reserved
+                                        $ 31      = Client = 0 / Server = 1
+                0x44240305,             $ 0       = O->T fixed size supported
+                                        $ 1       = O->T variable size supported
+                                        $ 2       = T->O fixed size supported
+                                        $ 3       = T->O variable size supported
+                                        $ 4-5     = O->T number of bytes per slot (obsolete)
+                                        $ 6-7     = T->O number of bytes per slot (obsolete)
+                                        $ 8-10    = O->T Real time transfer format
+                                        $ 11      = reserved
+                                        $ 12-14   = T->O Real time transfer format
+                                        $ 15      = reserved
+                                        $ 16      = O->T connection type: NULL
+                                        $ 17      = O->T connection type: MULTICAST
+                                        $ 18      = O->T connection type: POINT2POINT
+                                        $ 19      = O->T connection type: reserved
+                                        $ 20      = T->O connection type: NULL
+                                        $ 21      = T->O connection type: MULTICAST
+                                        $ 22      = T->O connection type: POINT2POINT
+                                        $ 23      = T->O connection type: reserved
+                                        $ 24      = O->T priority: LOW
+                                        $ 25      = O->T priority: HIGH
+                                        $ 26      = O->T priority: SCHEDULED
+                                        $ 27      = O->T priority: reserved
+                                        $ 28      = T->O priority: LOW
+                                        $ 29      = T->O priority: HIGH
+                                        $ 30      = T->O priority: SCHEDULED
+                                        $ 31      = T->O priority: reserved
+                Param4,0,,              $ O->T RPI, size, format
+                Param4,,Assem100,       $ T->O RPI, size, format
+                ,,                      $ config #1 size, format
+                ,,                      $ config #2 size, format
+                "Listen Only",          $ Connection Name
+                "",                     $ help string
+                "20 04 24 97 2C 99 2C 64";    $ Path
+
+[Capacity]
+        MaxMsgConnections = 6;
+        MaxIOProduceConsume = 2;
+        MaxIOMcastProducers = 1;
+        MaxIOMcastConsumers = 1;
+        MaxConsumersPerMcast = 6;
+        TSpec1 = TxRx, 32, 100;
+
+[TCP/IP Interface Class]
+        Revision = 4;
+        Object_Name = "TCP/IP Interface Object";
+        Object_Class_Code = 0xF5;
+        MaxInst = 1;
+        Number_Of_Static_Instances = 1;
+        Max_Number_Of_Dynamic_Instances = 0;
+
+[Ethernet Link Class]
+        Revision = 4;
+        Object_Name = "Ethernet Link Object";
+        Object_Class_Code = 0xF6;
+        MaxInst = 1;
+        Number_Of_Static_Instances = 1;
+        Max_Number_Of_Dynamic_Instances = 0;
+
+[Identity Class]
+        Revision = 1;
+        Object_Name = "Identity Object";
+        Object_Class_Code = 0x01;
+        MaxInst = 1;
+        Number_Of_Static_Instances = 1;
+        Max_Number_Of_Dynamic_Instances = 0;
+
+[QoS Class]
+        Revision = 1;
+        Object_Name = "QoS Object";
+        Object_Class_Code = 0x48;
+        MaxInst = 1;
+        Number_Of_Static_Instances = 1;
+        Max_Number_Of_Dynamic_Instances = 0;
+

BIN
projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/imgs/fuzz.png


BIN
projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/cip_req_forward_open


BIN
projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/cip_req_list_identity_cip


BIN
projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/enip_req_list_identity


BIN
projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/inputs/enip_req_register_session


+ 38 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/fuzz/scripts/send_testcase.py

@@ -0,0 +1,38 @@
+import sys
+import socket
+import struct
+
+if len(sys.argv) != 3:
+	print("python {} IP TESTCASE_PATH".format(sys.argv[0]))
+	sys.exit(1)
+
+HOST_IP = sys.argv[1]
+HOST_PORT = 44818
+TESTCASE_PATH = sys.argv[2]
+
+ENIP_SESSION_CONTEXT = b"\x92\x83J\x0b=\x9e\x0cW"
+ENIP_INIT_SESSION_PACKET = b"e\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00" + ENIP_SESSION_CONTEXT + b"\x00\x00\x00\x00\x01\x00\x00\x00"
+
+
+print("[-] Connecting to {}:{}".format(HOST_IP, HOST_PORT))
+s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.connect((HOST_IP, HOST_PORT))
+
+print("[-] Init ENIP session")
+s.sendall(ENIP_INIT_SESSION_PACKET)
+enip_session = s.recv(1024)
+session_handle = enip_session[4:8]
+print("[-] Got ENIP Session Handle: {}".format(struct.unpack("<I", session_handle)[0]))
+print("[-] Reading testcase from: '{}'".format(TESTCASE_PATH))
+with open(TESTCASE_PATH, "rb") as f:
+	testcase_data = f.read()
+
+print("[-] Patching sender context and session handle")
+testcase = testcase_data[:4]		# command, len
+testcase += session_handle 		# session handle
+testcase += testcase_data[8:12] 	# status
+testcase += ENIP_SESSION_CONTEXT 	# session context
+testcase += testcase_data[20:]		# options and payload
+print("[-] Sending testcase of {} bytes".format(len(testcase)))
+s.send(testcase)
+s.close()

+ 55 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/license.txt

@@ -0,0 +1,55 @@
+                    SOFTWARE DISTRIBUTION LICENSE FOR THE 
+                     ETHERNET/IP(TM) COMMUNICATION STACK 
+                         (ADAPTED BSD STYLE LICENSE)   
+
+Copyright (c) 2009, Rockwell Automation, Inc. ALL RIGHTS RESERVED.
+EtherNet/IP is a trademark of ODVA, Inc.
+
+Redistribution of the Communications Stack Software for EtherNet/IP and use in 
+source and binary forms, with or without modification, are permitted provided 
+that the following conditions are met:
+
+Redistributions of source code must retain the above copyright and trademark 
+notices, this list of conditions and the following disclaimer in the 
+documentation and/or other materials provided with the distribution.
+
+Redistributions in binary form must reproduce the above copyright notice, this
+list of conditions and the following disclaimer in the documentation and/or 
+other materials provided with the distribution.
+
+Neither the name of Rockwell Automation, ODVA, nor the names of its 
+contributors may be used to endorse or promote products derived from this 
+software without specific prior written permission from the respective owners.
+
+The Communications Stack Software for EtherNet/IP, or any portion thereof, with
+or without modifications, may be incorporated into products for sale.  However,
+the software does not, by itself, convey any right to make, have made, use, 
+import, offer to sell, sell, lease, market, or otherwise distribute or dispose 
+of any products that implement this software, which products might be covered 
+by valid patents or copyrights of ODVA, Inc., its members or other licensors 
+nor does this software result in any license to use the EtherNet/IP mark owned 
+by ODVA. To make, have made, use, import, offer to sell, sell, lease, market, 
+or otherwise distribute or dispose of any products that implement this software, 
+and to use the EtherNet/IP mark, one must obtain the necessary license from 
+ODVA through its Terms of Usage Agreement for the EtherNet/IP technology, 
+available through the ODVA web site at www.odva.org. This license requirement 
+applies equally (a) to devices that completely implement ODVA's Final 
+Specification for EtherNet/IP (“Network Devices”), (b) to components of such 
+Network Devices to the extent they implement portions of the Final 
+Specification for EtherNet/IP, and (c) to enabling technology products, such as
+any other EtherNet/IP or other network protocol stack designed for use in 
+Network Devices to the extent they implement portions of the Final 
+Specification for EtherNet/IP. Persons or entities who are not already licensed
+for the EtherNet/IP technology must contact ODVA for a Terms of Usage Agreement.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+

+ 17 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/sonar-project.properties

@@ -0,0 +1,17 @@
+sonar.projectKey=EIPStackGroup_OpENer
+sonar.organization=eipstackgroup
+sonar.python.version=3.8
+sonar.language=c
+sonar.c.file.suffixes=.c,.h
+sonar.cpp.file.suffixes=.cc,.cpp,.cxx,.c++,.hh,.hpp,.hxx,.h++,.ipp
+sonar.coverage.exclusions=fuzz/**, source/tests/**
+
+# This is the name and version displayed in the SonarCloud UI.
+#sonar.projectName=OpENer
+#sonar.projectVersion=1.0
+
+# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
+#sonar.sources=.
+
+# Encoding of the source code. Default is default system encoding
+#sonar.sourceEncoding=UTF-8

+ 2 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/.gitignore

@@ -0,0 +1,2 @@
+/Debug/
+/build/

+ 185 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/CMakeLists.txt

@@ -0,0 +1,185 @@
+#######################################
+# Required CMake version              #
+#######################################
+cmake_minimum_required( VERSION 3.18 )
+
+#######################################
+# Project name                        #
+#######################################
+project( OpENer LANGUAGES C VERSION 2.3 )
+
+#######################################
+# Project version                     #
+#######################################
+
+if( NOT DEFINED OpENer_Device_Config_Vendor_Id )
+  set( OpENer_Device_Config_Vendor_Id 1 CACHE STRING "Device Vendor ID" )
+endif()
+if( NOT DEFINED OpENer_Device_Config_Device_Type )
+  set( OpENer_Device_Config_Device_Type 12 CACHE STRING "Device Type ID" )
+endif()
+if( NOT DEFINED OpENer_Device_Config_Product_Code )
+  set( OpENer_Device_Config_Product_Code 65001 CACHE STRING "Device Product Code" )
+endif()
+if( NOT DEFINED OpENer_Device_Config_Device_Name )
+  set( OpENer_Device_Config_Device_Name "OpENer PC" CACHE STRING "Device Name" )
+endif()
+if(NOT DEFINED OpENer_Device_Major_Version)
+  set(OpENer_Device_Major_Version ${PROJECT_VERSION_MAJOR} CACHE STRING "Major Version")
+endif()
+if(NOT DEFINED OpENer_Device_Minor_Version)
+  set(OpENer_Device_Minor_Version ${PROJECT_VERSION_MINOR} CACHE STRING "Minor Version")
+endif()
+
+configure_file(  
+	"${PROJECT_SOURCE_DIR}/src/ports/devicedata.h.in"
+	"${PROJECT_BINARY_DIR}/src/ports/devicedata.h"
+	)
+
+find_path( OpENer_BUILDSUPPORT_DIR OpENer.cmake ${PROJECT_SOURCE_DIR}/buildsupport )
+
+INCLUDE( ${OpENer_BUILDSUPPORT_DIR}/OpENer.cmake )
+
+option(OPENER_RANDOMIZE_CONNECTION_ID "Use randomized connection IDs also for lower 16-bits?" FALSE)
+option(OPENER_PRODUCED_DATA_HAS_RUN_IDLE_HEADER "Shall produced data from OpENer also include a run idle header?" FALSE)
+option(OPENER_CONSUMED_DATA_HAS_RUN_IDLE_HEADER "Will consumed data from OpENer also include a run idle header?" TRUE)
+option(OPENER_INSTALL_AS_LIB "Build and install OpENer as a library" FALSE)
+option(BUILD_SHARED_LIBS "Build OpENer as shared library" FALSE)
+
+if(OPENER_RANDOMIZE_CONNECTION_ID)
+  add_definitions(-DOPENER_RANDOMIZE_CONNECTION_ID)
+endif()
+
+if(OPENER_PRODUCED_DATA_HAS_RUN_IDLE_HEADER)
+  add_definitions(-DOPENER_PRODUCED_DATA_HAS_RUN_IDLE_HEADER)
+endif()
+
+if(OPENER_CONSUMED_DATA_HAS_RUN_IDLE_HEADER)
+  add_definitions(-DOPENER_CONSUMED_DATA_HAS_RUN_IDLE_HEADER)
+endif()
+
+option(OPENER_IS_DLR_DEVICE "Is OpENer built with support for a basic DLR device?" FALSE)
+if (OPENER_IS_DLR_DEVICE)
+  add_definitions(-DOPENER_IS_DLR_DEVICE)
+endif()
+
+# This buffer size will be used for any received message.
+# The same buffer is used for the replied explicit message.
+# There are two uses in OpENer:
+#   1. Explicit messages will use this buffer to store the data generated by the request
+#   2. I/O Connections will use this buffer for the produced data
+set( OPENER_ETHERNET_BUFFER_SIZE "512" CACHE STRING "Number of bytes used for the Ethernet message buffer")
+add_definitions(-DPC_OPENER_ETHERNET_BUFFER_SIZE=${OPENER_ETHERNET_BUFFER_SIZE} )
+
+#######################################
+# Platform switches                   #
+#######################################
+set( OpENer_KNOWN_PLATFORMS "POSIX" "WIN32" "MINGW")
+
+set( OpENer_PLATFORM CACHE STRING "Platform OpENer will be built for" )
+set_property(CACHE OpENer_PLATFORM PROPERTY STRINGS ${OpENer_KNOWN_PLATFORMS} )
+
+#######################################
+# Platform-dependent functions check  #
+#######################################
+INCLUDE( ${OpENer_BUILDSUPPORT_DIR}/OpENer_function_checks.cmake )
+
+#######################################
+# OpENer tracer switches              #
+#######################################
+set( OpENer_TRACES OFF CACHE BOOL "Activate OpENer traces" )
+if(OpENer_TRACES)
+  createTraceLevelOptions()
+endif(OpENer_TRACES)
+
+#######################################
+# OpENer documentation target "doc"   #
+#######################################
+
+# check if Doxygen is installed
+find_package(Doxygen)
+if (DOXYGEN_FOUND)
+    # set input and output files
+    set(DOXYGEN_IN ${OpENer_SOURCE_DIR}/opener.doxyfile.in)
+    set(DOXYGEN_OUT ${OpENer_BINARY_DIR}/opener.doxyfile)
+
+    # exclude subdirectories of non active platforms depending on OpENer_PLATFORM
+    set(OpENer_EXCLUDE_PATTERNS "")
+    if (NOT (${OpENer_PLATFORM} STREQUAL "POSIX"))
+        set(OpENer_EXCLUDE_PATTERNS "${OpENer_EXCLUDE_PATTERNS} */src/ports/POSIX/*")
+    endif ()
+    if (NOT (${OpENer_PLATFORM} STREQUAL "WIN32"))
+        set(OpENer_EXCLUDE_PATTERNS "${OpENer_EXCLUDE_PATTERNS} */src/ports/WIN32/*")
+    endif ()
+    if (NOT (${OpENer_PLATFORM} STREQUAL "MINGW"))
+        set(OpENer_EXCLUDE_PATTERNS "${OpENer_EXCLUDE_PATTERNS} */src/ports/MINGW/*")
+    endif ()
+
+    # request to configure the file
+    configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
+
+    # note the option ALL which will build the docs always with the default target
+    add_custom_target( doc # ALL
+        COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
+        WORKING_DIRECTORY ${OpENer_SOURCE_DIR}
+        COMMENT "Generating API documentation with Doxygen"
+        VERBATIM )
+    message("-- Doxygen setup done")
+else (DOXYGEN_FOUND)
+  message("Doxygen needs to be installed to generate the Doxygen documentation")
+endif (DOXYGEN_FOUND)
+
+
+#######################################
+# Test switch                         #
+#######################################
+set( OpENer_TESTS OFF CACHE BOOL "Enable tests to be built" )
+if( OpENer_TESTS )
+  enable_testing()
+  enable_language( CXX )
+  set( CPPUTEST_HOME "" CACHE PATH "Path to CppUTest directory" )
+  INCLUDE( ${OpENer_BUILDSUPPORT_DIR}/OpENer_Tests.cmake )
+  INCLUDE( ${OpENer_BUILDSUPPORT_DIR}/CodeCoverage.cmake )
+  APPEND_COVERAGE_COMPILER_FLAGS()
+  # The used CppUTest framework does not support parallel jobs
+  SETUP_TARGET_FOR_COVERAGE_LCOV(NAME ${PROJECT_NAME}_coverage EXECUTABLE OpENer_Tests EXCLUDE "tests/*" "src/ports/*/sample_application/*" "${CPPUTEST_HOME}/*")
+  add_test_includes()
+  add_definitions( -DOPENER_UNIT_TEST )
+  add_subdirectory( tests )
+endif( OpENer_TESTS )
+
+#######################################
+# OpENer C flags                      #
+#######################################
+if (OpENer_PLATFORM STREQUAL "WIN32")
+  set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W4" )
+else ()
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wconversion")
+endif ()
+
+####################################################
+# Internal cache holding the available CIP objects #
+####################################################
+
+# Add definitions for additional CIP Objects
+string(COMPARE NOTEQUAL "${OpENer_ADD_CIP_OBJECTS}" "" OpENer_HAS_ADDITIONAL_OBJECT)
+if (OpENer_HAS_ADDITIONAL_OBJECT)
+    string(REPLACE " " ";" OpENer_ADD_CIP_OBJECTS_LIST ${OpENer_ADD_CIP_OBJECTS})
+    foreach (CIP_OBJECT IN LISTS OpENer_ADD_CIP_OBJECTS_LIST)
+        add_definitions(-D${CIP_OBJECT})
+    endforeach ()
+endif ()
+
+set( OpENer_ADD_CIP_OBJECTS "" CACHE INTERNAL STRING )
+set( OpENer_ADD_CIP_OBJECTS_INCLUDES "" CACHE INTERNAL STRING )
+
+#######################################
+# Add custom CIP objects              #
+#######################################
+set( OpENer_CIP_OBJECTS_DIR ${PROJECT_SOURCE_DIR}/src/cip_objects )
+include(${OpENer_BUILDSUPPORT_DIR}/OpENer_CIP_Object_generator.cmake)
+
+# ######################################
+# Add subdirectories                  #
+# ######################################
+add_subdirectory( src )

+ 172 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/doc/STM32/LwIP_HTTP_Server_Netconn_RTOS_OpENer.patch

@@ -0,0 +1,172 @@
+diff --git a/Inc/lwipopts.h b/Inc/lwipopts.h
+index ef9dbfa..6a8c593 100644
+--- a/Inc/lwipopts.h
++++ b/Inc/lwipopts.h
+@@ -56,7 +56,9 @@ a lot of data that needs to be copied, this should be set high. */
+ /* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active
+    timeouts. */
+ #define MEMP_NUM_SYS_TIMEOUT    10
+-
++/* MEMP_NUM_NETCONN: the number of struct netconns.
++   (only needed if you use the sequential API, like api_lib.c) */
++#define MEMP_NUM_NETCONN        12
+ 
+ /* ---------- Pbuf options ---------- */
+ /* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */
+@@ -94,6 +96,8 @@ a lot of data that needs to be copied, this should be set high. */
+ /* ---------- ICMP options ---------- */
+ #define LWIP_ICMP                       1
+ 
++/* ---------- IGMP options ---------- */
++#define LWIP_IGMP               1
+ 
+ /* ---------- DHCP options ---------- */
+ #define LWIP_DHCP               1
+@@ -113,6 +117,9 @@ a lot of data that needs to be copied, this should be set high. */
+  */
+ #define LWIP_NETIF_LINK_CALLBACK        1
+ 
++/* ---------- Netif options ---------- */
++#define LWIP_NETIF_HOSTNAME             1
++
+ /*
+    --------------------------------------
+    ---------- Checksum options ----------
+@@ -178,7 +185,11 @@ The STM32F4x7 allows computing and verifying the IP, UDP, TCP and ICMP checksums
+ /**
+  * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)
+  */
+-#define LWIP_SOCKET                     0
++#define LWIP_SOCKET                     1
++/**
++ * SO_REUSE==1: Enable SO_REUSEADDR option.
++ */
++#define SO_REUSE                        1
+ 
+ /*
+    ------------------------------------
+diff --git a/Inc/main.h b/Inc/main.h
+index 36ca85f..fb7961c 100644
+--- a/Inc/main.h
++++ b/Inc/main.h
+@@ -31,7 +31,7 @@
+ 
+ /* Exported types ------------------------------------------------------------*/
+ /* Exported constants --------------------------------------------------------*/ 
+-#define USE_DHCP       /* enable DHCP, if disabled static address is used*/
++//#define USE_DHCP      // not used, replaced by LWIP_DHCP
+ #define USE_LCD
+ 
+ /*Static IP ADDRESS*/
+diff --git a/SW4STM32/syscalls.c b/SW4STM32/syscalls.c
+index fa8687f..6a84edb 100644
+--- a/SW4STM32/syscalls.c
++++ b/SW4STM32/syscalls.c
+@@ -15,7 +15,7 @@
+ #include <reent.h>
+ #include <unistd.h>
+ #include <sys/wait.h>
+-
++#include <stm32f7xx_hal.h>
+ 
+ 
+ #define FreeRTOS
+@@ -99,6 +99,15 @@ void _exit (int status)
+ 	while (1) {}
+ }
+ 
++#if REDIRECT_PRINTF_TO_SWV_ITM
++__attribute__((weak)) int _write(int file, char *ptr, int len) {
++  int DataIdx;
++  for (DataIdx = 0; DataIdx < len; DataIdx++) {
++    ITM_SendChar(*ptr++);
++  }
++  return len;
++}
++#else	// standard output
+ int _write(int file, char *ptr, int len)
+ {
+ 	int DataIdx;
+@@ -109,6 +118,7 @@ int _write(int file, char *ptr, int len)
+ 		}
+ 	return len;
+ }
++#endif	// standard output
+ 
+ int _close(int file)
+ {
+diff --git a/Src/app_ethernet.c b/Src/app_ethernet.c
+index e3278ac..aab6265 100644
+--- a/Src/app_ethernet.c
++++ b/Src/app_ethernet.c
+@@ -28,6 +28,9 @@
+ #include "lcd_log.h"
+ #endif
+ 
++// for OpENer
++#include "opener.h"
++
+ /* Private typedef -----------------------------------------------------------*/
+ /* Private define ------------------------------------------------------------*/
+ /* Private macro -------------------------------------------------------------*/
+@@ -55,6 +58,8 @@ void ethernet_link_status_updated(struct netif *netif)
+     uint8_t iptxt[20];
+     sprintf((char *)iptxt, "%s", ip4addr_ntoa(netif_ip4_addr(netif)));
+     LCD_UsrLog ("Static IP address: %s\n", iptxt);
++    /* Start Ethernet/IP Stack (OpENer) */
++    opener_init(netif);
+ #else
+     BSP_LED_On(LED1);
+     BSP_LED_Off(LED2);
+@@ -124,6 +129,8 @@ void DHCP_Thread(void const * argument)
+           BSP_LED_On(LED1);
+           BSP_LED_Off(LED2);
+ #endif
++          /* Start Ethernet/IP Stack (OpENer) */
++          opener_init(netif);
+         }
+         else
+         {
+@@ -148,6 +155,8 @@ void DHCP_Thread(void const * argument)
+             BSP_LED_On(LED1);
+             BSP_LED_Off(LED2);
+ #endif
++            /* Start Ethernet/IP Stack (OpENer) */
++            opener_init(netif);
+           }
+         }
+       }
+diff --git a/Src/main.c b/Src/main.c
+index c25dbd0..e3dda6c 100644
+--- a/Src/main.c
++++ b/Src/main.c
+@@ -71,6 +71,11 @@ int main(void)
+   /* Configure the system clock to 200 MHz */
+   SystemClock_Config(); 
+   
++  /* For single step debug, e.g. timers with interrupts need to be stopped in Halt */
++  HAL_DBGMCU_EnableDBGStandbyMode();
++  HAL_DBGMCU_EnableDBGStopMode();
++  __HAL_DBGMCU_FREEZE_TIM6();
++  
+   /* Initialize LCD and LEDs */
+   BSP_Config();
+ 
+@@ -139,6 +144,8 @@ static void Netif_Config(void)
+ 
+   /*  Registers the default network interface. */
+   netif_set_default(&gnetif);
++  /*  Define the hostname, is also used by OpENer */
++  netif_set_hostname(&gnetif,"STM32");
+ 
+   ethernet_link_status_updated(&gnetif);
+ 
+@@ -180,7 +187,7 @@ static void BSP_Config(void)
+   LCD_LOG_Init();
+   
+   /* Show Header and Footer texts */
+-  LCD_LOG_SetHeader((uint8_t *)"Webserver Application Netconn API");
++  LCD_LOG_SetHeader((uint8_t *)"Webserver Application Netconn API & OpENer");
+   LCD_LOG_SetFooter((uint8_t *)"STM32746G-DISCO board");
+   
+   LCD_UsrLog ((char *)"  State: Ethernet Initialization ...\n");

+ 86 - 0
projects/etherkit_ethernetip_opener/packages/OpENer-latest/source/doc/STM32/OpENer STM32 Paths and Symbols.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cdtprojectproperties>
+  <section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.IncludePaths">
+    <language id="org.eclipse.cdt.core.assembly" name="s,S"/>
+    <language id="org.eclipse.cdt.core.gcc" name="C Source File">
+      <includepath>../../Inc</includepath>
+      <includepath>../../Src</includepath>
+      <includepath>../../Drivers/CMSIS/Device/ST/STM32F7xx/Include</includepath>
+      <includepath>../../Drivers/STM32F7xx_HAL_Driver/Inc</includepath>
+      <includepath>../../Drivers/BSP/STM32746G-Discovery</includepath>
+      <includepath>../../Drivers/BSP/Components/Common</includepath>
+      <includepath>../../Drivers/BSP/Components</includepath>
+      <includepath>../../Middlewares/Third_Party/LwIP/src/include</includepath>
+      <includepath>../../Middlewares/Third_Party/LwIP/system</includepath>
+      <includepath>../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1</includepath>
+      <includepath>../../Middlewares/Third_Party/FreeRTOS/Source</includepath>
+      <includepath>../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS</includepath>
+      <includepath>../../Middlewares/Third_Party/FreeRTOS/Source/include</includepath>
+      <includepath>../../Utilities</includepath>
+      <includepath>../../Utilities/Log</includepath>
+      <includepath>../../Drivers/CMSIS/Include</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer/cip</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer/enet_encap</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer/ports</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer/ports/STM32</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer/ports/STM32/sample_application</includepath>
+      <includepath>../../Middlewares/Third_Party/OpENer/utils</includepath>
+    </language>
+    <language name="Object File"/>
+  </section>
+  <section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">
+    <language id="org.eclipse.cdt.core.assembly" name="s,S"/>
+    <language id="org.eclipse.cdt.core.gcc" name="C Source File">
+      <macro>
+        <name>USE_HAL_DRIVER</name>
+        <value/>
+      </macro>
+      <macro>
+        <name>STM32F746xx</name>
+        <value/>
+      </macro>
+      <macro>
+        <name>USE_STM32746G_DISCOVERY</name>
+        <value/>
+      </macro>
+      <macro>
+        <name>RESTRICT</name>
+        <value>__restrict</value>
+      </macro>
+      <macro>
+        <name>STM32</name>
+        <value/>
+      </macro>
+      <macro>
+        <name>_POSIX_C_SOURCE</name>
+        <value>200112L</value>
+      </macro>
+      <macro>
+        <name>_GNU_SOURCE</name>
+        <value/>
+      </macro>
+      <macro>
+        <name>OPENER_TRACE_LEVEL</name>
+        <value>15</value>
+      </macro>
+      <macro>
+        <name>OPENER_CONSUMED_DATA_HAS_RUN_IDLE_HEADER</name>
+        <value>1</value>
+      </macro>
+      <macro>
+        <name>OPENER_WITH_TRACES</name>
+        <value>1</value>
+      </macro>
+      <macro>
+        <name>PC_OPENER_ETHERNET_BUFFER_SIZE</name>
+        <value>512</value>
+      </macro>
+      <macro>
+        <name>REDIRECT_PRINTF_TO_SWV_ITM</name>
+        <value>1</value>
+      </macro>
+    </language>
+    <language name="Object File"/>
+  </section>
+</cdtprojectproperties>

Неке датотеке нису приказане због велике количине промена