We have a functional version of the firmware that is programmed in the factory with a script. This code works.
However, after programming the modules, it is not possible to update the software and run in debug mode again.
Hello @dsilva,
In the fuse map I saw that you're booting from a 1.8V hyperflash, are you booting from the fuses and this configuration is correct? From the fuses, I couldn't see the fuse that disables the JTAG enabled.
Also, did you modified the HW_OCOTP_SCS in your firmware to disable the JTAG?
Best Regards,
Alexis Andalon
Yes, the fuses have been modified. Cfg1 register to 0x00000010 (BT_FUSE_SEL).
There were no changes to disable jtag. And I am unaware of changes to the HW_OCOTP_SCS.
The on-board debugger works in the EVKB (QSPI). But does not work with PEMicro..
Hello @dsilva,
Could you try using the serial downloader mode and erase the flash using the debugger? It could be that the firmware block the debug access and the serial downloader will put this in a known state.
Best Regards,
Alexis Andalon
Hello,
I erase the flash memory with the command below:
NXP-MCUBootUtility-master/tools/blhost2_3/win/blhost -t 2048000 -u 0x15A2,0x0073 -j -- flash-erase-region 1610612736 139264 9
After that I tried to run the debug using the hello_world example. The same error happend.
Hello @dsilva,
Are you unable to erase the flash with the debugger when is in serial downloader?
Best Regards,
Alexis Andalon
Hello,
It is not clear to me what procedure you expect.
The only way debugging works is with EVKB on the linkserver. EVKB does not work with PEMicro.
My pcb doesn't have an on-board debug and the debug doesn't work via jtag. Serial or internal boot makes no difference.
If debugging doesn't work, how do you expect me to erase the flash in debug mode?
When running the flash example on the EVKB it returns the error in the attached image.
I'm suspecting that a fuse has been set wrong and it is blocking the debug.
So I repeated the whole procedure on a new processor.
1.Connect to the processor using the NXP-MCUBootUtility software.
2.Click "Boot Device COnfiguration".
3.Select "ISSI_IS25LPxxxA_IS25WPxxxA".
4.Select Quad Mode Setting to "Set StatusReg1[16]".
5.Click "Connect to ROM".
6.Menu "eFuse Operation Utility", click "Cfg1" and change "BT_FUSE_SEL = 1".
7.Click "Burn".
8.Run the example "flexspi_nor_polling_transfer".
At this point the example stop at:
clock_config.c => "while (DCDC_REG0_STS_DC_OK_MASK != (DCDC_REG0_STS_DC_OK_MASK & DCDC->REG0))"
If I remove this line the example works.
"""""
FLEXSPI example started!
Vendor ID: 0xc2
Erasing whole chip over FlexSPI...
Erase finished !
Erasing Serial NOR over FlexSPI...
Erase data - successfully.
Program data - successfully.
""""
When programming the official firmware of the product in this processor the debug still doesn't work.
Hello @dsilva,
I want to make sure if any of the debug commands was capable to access the debug interface while in the serial downloader mode.
In the last case where the firmware was able to run without issues, there was any other modification apart from the clock_config.c file?
Best Regards,
Alexis Andalon