Hi Everyone,
I am working with the RIOP RT1189 board and have a few questions regarding software compatibility and debugging.
Initially, I successfully programmed the RIOP demo application using the Secure Provisioning Tool in Serial Download Mode, and the demo is working as expected.
After that, I tried to run the MIMXRT1180 EVK SDK example projects (for example, the LED Blinky example) on the RIOP RT1189 board.
What I tried
Modified the LED pin configuration in the RT1180 EVK LED Blinky example to match the RIOP RT1189 board.
Programmed the image using the Secure Provisioning Tool in Serial Download Mode.
However, the application does not run on the RIOP board.
To verify the hardware, I took the working RIOP demo project, commented out most of the demo functionality, added only the LED Blinky code, and programmed it again. In this case, the LED Blinky works correctly.
This makes me think there are additional board-specific configurations in the RIOP demo that are required beyond simply changing the LED GPIO pin.
Questions
Can the MIMXRT1180 EVK SDK example projects be used directly on the RIOP RT1189 board?
If not, what board-specific modifications are required (clock configuration, memory configuration, FlexSPI, linker script, startup code, etc.) to make the SDK examples work on the RIOP board?
Debugging Issue
I also tried to debug the demo application using MCU-Link, but the debugger fails during flash initialization with the following error:
Inspected v.2 External Flash Device on SPI using SFDP JEDEC ID MIMXRT1180_SFDP_FlexSPI1_A_QSPI.cfx
Image 'iMXRT1180_SFDP_FlexSPI1_A_QSPI Jun 26 2025 18:32:16'
Opening flash driver MIMXRT1180_SFDP_FlexSPI1_A_QSPI.cfx
VECTRESET requested, but not supported on ARMv8-M CPUs. Using SOFTRESET instead.
Using SOFT reset to run the flash driver
Driver V.2 dynamic startup failed - driver Init provided no flash parameters
Flash Driver V.2 startup failed - rc Ef(55): Dynamic flash driver startup failed to provide flash parameters.
Terminate (0x0, 0x0, 0x0) status 0x40 - driver reports init failure - EXTSPIJ driver rc 20107 (0x4E8B)
chip initialization failed - Ef(55): Dynamic flash driver startup failed to provide flash parameters.
failed to initialize flash driver MIMXRT1180_SFDP_FlexSPI1_A_QSPI.cfx
Could this error indicate that the RT1180 EVK flash driver is incompatible with the external flash used on the RIOP RT1189 board, or is there an additional flash configuration that needs to be provided for debugging?
Any guidance or suggestions would be greatly appreciated.
Thank you!
Hello @Pavankumar1,
The Remote I/O Platform (RIOP) is intended as a production-ready platform that supports industrial communication protocols such as EtherCAT®, EtherNet/IP™, and PROFINET® RT.
I would like to clarify that the hardware configuration of the RIOP RT1189 board differs from that of the RT1180-EVK, examples developed for the RT1180-EVK cannot run directly on the RIOP hardware. Porting an RT1180-EVK example to the RIOP RT1189 will require additional development to adapt the application to the different hardware connections and peripherals. For this reason, I recommend starting with the examples specifically provided for the RIOP RT1189 board.
As a starting point, I recommend check firstly the Getting Started with the Remote I/O Platform (RIOP), which provides an overview of the platform architecture and demonstrates its capabilities.
If your objective is to evaluate the RIOP hardware without using industrial communication protocols, you can refer to the following example:
https://github.com/nxp-appcodehub/rd-riop-demo/tree/main
In addition, some example applications are available for the supported industrial protocols. Their corresponding User Guides include instructions on how to download, install, and import the projects into the MCUxpresso for VS Code extension. If you have any further questions about these user's guide, do not hesitate to let me know. These guides can be found in the Documentation section, as shown in the image below:
If you are interested on these examples the following link might be helpful:
https://github.com/nxp-appcodehub/rd-riop
In order to support you better, could you please share me more details about your intended application? Specifically, could you clarify why you would like to port an RT1180-EVK example to the RIOP RT1189 platform and what functionality you are interested to implement?
BR
Habib
Hi @Habib_MS
Thank you for your reply.
I have explored the RIOP demo application available at the following link and tested it with the FreeMASTER application:
https://github.com/nxp-appcodehub/rd-riop-demo/tree/main
The demo works correctly when I program it using the Secure Provisioning Tool in Serial Download Mode. However, I am unable to debug the demo project using MCUXpresso for VS Code and MCU-Link. During the debug process, I encounter the following error:
Could you please let me know if there are any additional steps required to enable debugging on the RIOP RT1189 board? Is there a specific flash driver or debug configuration that should be used instead of the default RT1180 EVK configuration?
My objective is to explore and develop applications for the Analog Front End (AFE) module available on the RIOP board. For this, I need to be able to build, debug, and modify the firmware.
Could you please advise on the following?
1. Is it possible to create a new MCUXpresso project from scratch specifically for the RIOP RT1189 board and configure the Analog Front End module?
2. Is there a basic example project, such as an LED Blinky example, specifically for the RIOP RT1189 board that I can use as a starting point for my application?
3. If no such example is available, what is the recommended approach for developing custom applications on the RIOP RT1189 platform?
Any guidance or documentation would be greatly appreciated.
Thank you for your support.
Best regards,
Pavankumar A G
Hello @Pavankumar1,
I understand that you are using MCUXpresso IDE instead of MCUXpresso for VS Code extension, as the screenshot references a .cfx file, which is the flash loader format used by MCUXpresso IDE. Is my understanding correct?
If so, could you try debugging the application using the MCUXpresso for VS Code extension, or alternatively attach the debugger after programming the image with the Secure Provisioning Tool, and let me know the results?
Also, thank you for providing additional details about your application. The example already includes a driver for the NAFE13388, which can be found in the NAFE_hw folder. It also demonstrates how to configure the device in the AFE_Init() task located in the api_afe.c file, which may serve as a useful reference for your implementation.
BR
Habib
Hi @Habib_MS,
Thank you for your response.
I tried debugging the riop_demo application using MCUXpresso for VS Code, but I encountered the attached error.
I also programmed the image using the Secure Provisioning Tool and attempted to attach to the running target, as you suggested. However, I am still encountering the same error.
Could you please advise on the required modifications if I create a new project for the RIOP board? Specifically, I would like to know what changes are needed to make the application run correctly on the RIOP hardware.
Thank you for your support.
Regards,
Pavanakumar A G
Hello @Pavankumar1,
The errors occur because the debug configurations used to communicate with the external flash were not designed as a full debugging solution for the RIOP. Instead, the examples and the guides are primarily intended to demonstrate the use of the different software components that the board offers.
With that in mind, one option would be to debug the application from the internal RAM. Once you are satisfied with the behavior of your application, you can follow the Secure Provisioning Tool flow to program the image into the external flash and perform the tests you require.
You can refer to the "Image Running in Internal RAM" section of the MCUXpresso Secure Provisioning Tool v26.06 User's Guide for details on how to create an image that runs from internal RAM using MCUXpresso IDE. This approach allows you to work with the SDK examples provided for the RT1180-EVK. However, since your hardware differs from the EVK, some project modifications may be required.
Alternatively, if you would like to debug directly from the external flash, you could create and use your own flash loader. MCUxpresso IDE uses a .cfx file to communicate with the external flash and program the image, so you can develop a custom .cfx flash loader for your device and configure the IDE accordingly. The following documents can be used as reference:
AN13386: RT600 Flash Loader for Custom Flash Device
How to Create a New Flash Driver for MCUXpresso IDE
At the moment, there is no specific guide describing how to implement this workflow with the VS Code extension. However, you can take the different build configurations available in the RT1180-EVK SDK examples as a reference for creating a similar setup:
BR
Habib
Hello @Pavankumar1,
As you may know each memory has specific commands to performing read, write or erase operations. For this reason, the LUT configuration used in the example may not be compatible with this specific flash device. You can use the Boot Memory Configuration feature in the MCUXpresso Secure Provisioning Tool v26.6 to make your entire FCB. You can take the flash configurations used in the "Running the ECAT application" section as a reference when configuring the FCB for the flash device.
Additionally, I recommend reviewing this community post, particularly the steps starting from point 15. That section provides a more detailed explanation of how the Secure Provisioning Tool generates the boot memory configuration and may help clarify the parameters and output produced by the tool.
If you have any further questions, I would kindly ask you to open a new community post and include your questions there. This helps us provide more organized support and makes future reference easier. Feel free to tag me and with pleasure I will continuing supporting you.
BR
Habib
Hi @Habib_MS,
I am now able to debug my application by running it from the internal RAM.
Currently, I am trying to interface the Macronix MX25UW6345GXDI00 Octal Flash on the RT1189 RIOP board and test the read/write operations while executing the application from RAM.
For this, I started with the FlexSPI Octal Flash Polling example from the RT1189 EVK SDK and made the following modifications:
Updated the pin configuration to match the RIOP board.
Changed the Flash port from Port A to Port B (kFLEXSPI_PortB1).
However, when I try to read the Flash Vendor ID, the FLEXSPI_TransferBlocking() API returns kStatus_FLEXSPI_SequenceExecutionTimeout, and the Vendor ID is 0x00.
I would like to know:
1. Besides changing the pin configuration and FLASH_PORT to kFLEXSPI_PortB1, are there any other FlexSPI configurations that need to be modified for the RIOP board?
2. Does the MX25UW6345GXDI00 power up directly in Octal mode, or does it need to be switched to Octal/OPI mode before using the Octal LUT?
3. Does the FlexSPI LUT provided in the RT1189 EVK example (which is based on the Micron MT35XU512 flash) need to be modified for the Macronix MX25UW6345GXDI00?
4. Has anyone successfully used the MX25UW6345GXDI00 with the RT1189 FlexSPI interface? If so, could you please share the required initialization sequence or any additional configuration changes?
Any guidance would be greatly appreciated.
Best regards,
Pavanakumar A G