Could not debug my new custom board

cancel
Showing results for 
Search instead for 
Did you mean: 

Could not debug my new custom board

1,067 Views
fma23
Contributor II

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?

Labels (1)
26 Replies

377 Views
farid_mabrouk
Contributor II

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: Jtag.png

any idea about what's happening?

0 Kudos

377 Views
kerryzhou
NXP TechSupport
NXP TechSupport

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.
-------------------------------------------------------------------------------

0 Kudos

377 Views
farid_mabrouk
Contributor II

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 

0 Kudos

377 Views
kerryzhou
NXP TechSupport
NXP TechSupport

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.
-------------------------------------------------------------------------------

0 Kudos

377 Views
farid_mabrouk
Contributor II

Hi Kelly! Could you please help me with this issue

i.MX RT eLCDIF RGB Mode Use Case  

0 Kudos

377 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Andre marcus,

  OK, I will help you, will reply you later!

Best Regards,

Kerry

0 Kudos

384 Views
farid_mabrouk
Contributor II

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! 

0 Kudos

379 Views
kerryzhou
NXP TechSupport
NXP TechSupport

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.
-------------------------------------------------------------------------------

0 Kudos

384 Views
farid_mabrouk
Contributor II

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!

0 Kudos

384 Views
kerryzhou
NXP TechSupport
NXP TechSupport

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.
-------------------------------------------------------------------------------

0 Kudos

384 Views
kerryzhou
NXP TechSupport
NXP TechSupport

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

pastedImage_2.png

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.
-------------------------------------------------------------------------------

384 Views
farid_mabrouk
Contributor II

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 

0 Kudos

384 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Andre marcus,

    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.

pastedImage_164.png

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

pastedImage_168.png

pastedImage_167.png

pastedImage_165.pngthe 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.
-------------------------------------------------------------------------------

384 Views
farid_mabrouk
Contributor II

   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;
    }

0 Kudos

384 Views
farid_mabrouk
Contributor II

here is my initial boot config, but now I changed it as I mentioned in the above message

BootConf.png

0 Kudos

384 Views
farid_mabrouk
Contributor II

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 

384 Views
kerryzhou
NXP TechSupport
NXP TechSupport

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:

pastedImage_1.png

pastedImage_2.png

4. BOOT_CFG2[2:0]

   No, you need to select 000, not the 111.

pastedImage_6.png

Please note, 111 qspi is used for the secondary pinmux option.

5. pinmux already contains the flexspi pin

pastedImage_7.png

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.
-------------------------------------------------------------------------------

0 Kudos

384 Views
farid_mabrouk
Contributor II

Hi Kerry! please see the messages I get when I try to do flash erase all

0 Kudos

384 Views
farid_mabrouk
Contributor II

Jlink.png

0 Kudos

384 Views
farid_mabrouk
Contributor II

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:

JlinkImage2.png

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 */

0 Kudos