I am trying to debug my code using my new custom board that has iMX RT1062 MCU on it and a 16 MB flash on it: IS25LP128F-JBLE.
I verified that my boot configuration is correct. I set it internal boot. However, when I run my debugger, I get the error below:
Break at address "0xdeadbeee" with no debug information available, or outside of program code.
I am using Segger debugger. Can any one tell me what this error is all about?
I am still having issues booting up from the flash. The board was working fine. Now when I try to debug I get this message:
any idea about what's happening?
Hi Andre marcus,
Try to erase all the external flash, then try it again, your debugger should works.
You can enter the serial download mode: SW7:1-OFF, 2-OFF,3-OFF, 4-ON.
Then you can use the MCUBootUtility to connect your board through the UART interface.
MCUBootUtility tool link is:
https://github.com/JayHeng/NXP-MCUBootUtility/releases/tag/v2.0.0
the related user manual is:
https://github.com/JayHeng/NXP-MCUBootUtility
You can download a new firmware, or erase the external flash directly.
You also can use the JLINK debugger associate with the JLINK commander: erase all , to erase the whole external flash.
Please try it.
If you still have questions, just let me know.
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi Kerry!
i submitted another question at link about ELCDIF. Could you please have a look ?
https://community.nxp.com/message/1237286?commentID=1237286&et=watches.email.thread#comment-1237286
Hi Andre marcus,
Thanks for your new question post.
After checking it, I find my colleague Victor Jimenez already provide service for you.
BTW, you need to told him, your SDK version is 2.6.x? not the MCUXpresso IDE version.
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi Kelly! Could you please help me with this issue
Hi Kerry!
I was previously able to erase, program and debug. I don’t know what happened to my Segger debugger. I tried installing mcu bootutility tool on my machine, but it does not install; I have windows 10. Any comments on this? If I can debug using bootutility tool, I should be fine, but does u boot allows for debugging?
Cheers!
Hi Andre marcus,
The MCUbootutility tool don't need to install it.
After you download it, you just need to open the NXP-MCUBootUtility.exe under:
NXP-MCUBootUtility-2.0.0\bin
This tool is the app download tool, not the debug tool, you need to enter the serial download mode, then use the UART or the HID to download the app code. I just want to check whether use this tool to download the code, it will boot successfully on your side.
Do you mean, you previously can erase, program and debug with JLINK debugger, and after downloading the code, without the debugger , the app also can boot, but now, suddenly, the JLINK debugger can't work, right?
If yes, can you use the RAM flexSPI code to do the external flash mass erase at first, then try it again?
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hello Kelly!
Everything was working fine as supposed to be. Now when I try to boot from the QSPI flash, I see the error below:
Now I know the issue I had in the past has nothing to do with my boad, but rather it is an issue with Segger Jtag adapter, any clue please how to fix this Segger problem?
Cheers!
Hi Andre marcus,
Thanks for your updated information.
About the Segger JTAG problem, maybe you also need to contact with Segger side:
https://www.segger.com/support/technical-support/
They will be more family with their tools.
You said: Everything was working fine as supposed to be
What's the details working? program, erase, read? Now, just QSPI boot can't work, right?
Do you tried MCUBootUtility on your side? You never answer my question about this tool, just without the debugger, use the MCUBootutility tool, can you boot from QSPI flash after the code downloading?
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi Andre marcus,
You give me the key clue: I just want to let you know that I am using these pins for my Flexspi interface. These are not the same as in the iMX RT1060-evk dev board.
Please share your schematic with me, I need to check the detail pins, I also need to check whether your hardware is really supported by the ROM bootloader.
If you want to boot correctly, you must refer to the RT1060 RM, Table 8-1. ROM Bootloader Peripheral PinMux
Or ,do you use the secondary pinmux option?
Please share your schematic.
This is very important to the problem solving, if you are using the secondary pinmux, you can't use the JLINK debug it, because the JLINK programmer algorithm can't support it, the JLINK programmer algorithm just support the primary mode. Then you just can try the MCUBootUtility to download the code, if you are really using the secondary pimux option, you also make sure your primary didn't connect the useful flash.
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi Kerry!
Thanks a lot for your generous support. Yes indeed I’m using the secondary pinmux for flexspi signals. But just to let you know I managed to erase and program the qspi flash using Segger jtag and the same configuration I sent you in the schematics screen shot before.
I just used a different board and everything worked well. I just don’t know why the changes your recommended for the configuration are different than what I have, but still my board worked. Also I want to understand how the flexspi signals are configured. I did not explicitly configured them in Pinmux.c file.
but thanks for the help.
I have more questions about the eLCDIF peripheral. Can I forward them to you in a different thread?
Thank you so much!
Farid
Sorry, I think you are using the primary flexspi in the previous time.
If you are using the secondary pinmux, you still lneed to set the BOOT_CFG2[2:0] to 111, not 000, 000 is used for the primary flexspi.
Do you try the MCUBootUtility tool in the serial downloader mode, whether it works or not? Then your code don't need to configure the pinmux.c.
If you are using the IAR download the normal app, you also don't need to configure the pinmux.c for the flexspi.
But you need to modify the option0 and option1 in the .board
the parameters can be:
"--Qspi" - QuadSPI NOR - Quad SDR Read (same if no arg is used)
"--QspiDDR" - QuadSPI NOR - Quad DDR Read
"--Hyper1V8" - HyperFLASH 1V8
"--Hyper3V0" - HyperFLASH 3V0
"--MxicOpiDDR"- MXIC OPI DDR (OPI DDR enabled by default)
"--McrnOct" - Micron Octal DDR
"--McrnOpi" - Micron OPI DDR
"--McrnOpiDDR"- Micron OPI DDR (DDR read enabled by default):
"--AdstOpi" - Adesto OPI DDR
"--Opt0 0x..."- set Option0 hex value
"--Opt1 0x..."- set Option1 hex value
You can try it.
About the eLCDIF issue, you can create the post and let me know, I will help you in your new post.
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
With the new changes for config1 and config2; I run the example: evkmimxrt1060_flexspi_nor_polling_transfer and I ended up with the error below.
if (memcmp(s_nor_program_buffer, s_nor_read_buffer, sizeof(s_nor_program_buffer)))
{
PRINTF("Erase data - read out data value incorrect !\r\n ");
return -1;
}
here is my initial boot config, but now I changed it as I mentioned in the above message
Hi Kerry!
Thanks you for your support, I tried running the example you mentioned by removing the qspi fash memory configuration( I went to MCU settings and just deleted the board flash configuration) then I run the code. I was able to program the processor this way. In this case, I believe I was booting from the RAM or the internal flash that’s why the code run successfully, am I right? If I run the code as it is with the qspi flash configured, I can’t do any erase or programming.
But with jlink commander I was able to connect to the processor. I don’t know if I can use jlink commander to erase qspi flash?
The first three bits of Config2 should be 1 based on the mcu manual for QSPI flash. But you mentioned they can be Zero. Am I right?
Also I would like to know how the flexspi is configured in the source code for the demo examples of 1060-evil dev board. I don’t see those pins configured in mux.c files. Could you please say how this flexspi is configured ( pins and clock)
Cheers,
farid
Hi Andre marcus,
1. \polling_transfer
Do you download to the RAM, run all the code, this project already contains the erase, program and read.
Don't download to the external flash, just download to the RAM, and debug it in the RAM.
2. If it works, you can test the led_blinky code, and download it to the external flash.
3. JLINK erase,
You can follow my following steps, the JLINK can erase the external QSPI flash:
4. BOOT_CFG2[2:0]
No, you need to select 000, not the 111.
Please note, 111 qspi is used for the secondary pinmux option.
5. pinmux already contains the flexspi pin
Wish it helps you!
If you still have questions about it, please kindly let me know.
Have a great day,
Kerry
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi Kerry! please see the messages I get when I try to do flash erase all
Now my BOOT_CFG1[0-7] are set to 0. and BOOT_CFG2[0-3] are also set to zero. my Boot0 is set to 0 and BOOT1 is set to 1. I still cannot erase or program the QSPI flash.
I just want to let you know that I am using these pins for my Flexspi interface. These are not the same as in the iMX RT1060-evk dev board.
also please see the test results I got with jlink commander:
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_09_FLEXSPIA_DQS, /* GPIO_SD_B1_05 is configured as FLEXSPIA_DQS */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_05 */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_15_FLEXSPIA_SS0_B, /* GPIO_SD_B1_06 is configured as FLEXSPIA_SS0_B */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_06 */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_14_FLEXSPIA_SCLK, /* GPIO_SD_B1_07 is configured as FLEXSPIA_SCLK */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_07 */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_13_FLEXSPIA_DATA00, /* GPIO_SD_B1_08 is configured as FLEXSPIA_DATA00 */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_08 */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_12_FLEXSPIA_DATA01, /* GPIO_SD_B1_09 is configured as FLEXSPIA_DATA01 */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_09 */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_11_FLEXSPIA_DATA02, /* GPIO_SD_B1_10 is configured as FLEXSPIA_DATA02 */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_10 */
IOMUXC_SetPinMux(
IOMUXC_GPIO_AD_B1_10_FLEXSPIA_DATA03, /* GPIO_SD_B1_11 is configured as FLEXSPIA_DATA03 */
1U); /* Software Input On Field: Force input path of pad GPIO_SD_B1_11 */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_09_FLEXSPIA_DQS, /* GPIO_SD_B1_05 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_15_FLEXSPIA_SS0_B, /* GPIO_SD_B1_06 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_14_FLEXSPIA_SCLK, /* GPIO_SD_B1_07 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_13_FLEXSPIA_DATA00, /* GPIO_SD_B1_08 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_12_FLEXSPIA_DATA01, /* GPIO_SD_B1_09 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_11_FLEXSPIA_DATA02, /* GPIO_SD_B1_10 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig(
IOMUXC_GPIO_AD_B1_10_FLEXSPIA_DATA03, /* GPIO_SD_B1_11 PAD functional properties : */
0x10F1u); /* Slew Rate Field: Fast Slew Rate
Drive Strength Field: R0/6
Speed Field: max(200MHz)
Open Drain Enable Field: Open Drain Disabled
Pull / Keep Enable Field: Pull/Keeper Enabled
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */