-
Hello, I am using a Zephyr example that prints "Hello world" on UART1. I added blinking the LED to this code. I can get this running on the MIMXRT1060-EVKB. It uses external SPI flash which is at address 0x60000000. I program this hex file using JTAG and I am monitoring the PC and CycleCnt and they seem to be behaving normally (PC = 60002DEA, CycleCnt = F630B9B9). I have also tried flashing a circuit python hex to this new board and a regular bare-metal example. The flashing works and when I halt the MCU, the PC values seem like what it should be (PC = 60007E36, CycleCnt = DFDEC1A7). Using circuit python I am able to toggle GPIO_AD_B1_03, so I know it is not grounded. When looking at JLinkFlashLite API, the circuitpython code is as follows: The bare-metal example looks like: And the firmware file from PIO looks like: Any ideas what could potentially be happening? Again, I can run the code just fine on the EVKB board. Is there an extra configuration I have to do on a chip that is not on an evaluation board? The registers are as follows on the evaluation board: The registers are as follows on our product board: |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
One clue I found is that our SPI flash device is different from the default. The dev kit uses IS25WP064. Our new board uses GD25Q64E. Most things remain the same between the two, but my guess is 'jedec-id' will be different. I changed the jedec-id to the Gigadevice one (0xC8 0x40 0x17), but there was no difference in the hex file generated and this code still works on the evaluation board. |
Beta Was this translation helpful? Give feedback.
-
Turns out the problem was external/internal RAM. There is an external RAM present in the dev kit which is not there in our board. |
Beta Was this translation helpful? Give feedback.
-
Hi @Shruuts , Also, these MCUs have a boot ROM with a Device Configuration Data (DCD) option. And these EVKs with the SDRAM will include a DCD in the Zephyr application image. The main reason for including the DCD like this is to have the boot ROM initialize the SEMC memory interface and the external SDRAM, so the Zephyr application can access the SDRAM at the start of execution. If your custom board does not include external SDRAM, then this DCD should not be included in your build (or if you want a DCD with your board, it should be modified to not initialize the SEMC and SDRAM). When cloning the EVK's Best regards |
Beta Was this translation helpful? Give feedback.
Turns out the problem was external/internal RAM. There is an external RAM present in the dev kit which is not there in our board.