<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX RT Crossover MCUs中的主题 Copy from flash to SDRAM and run</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Copy-from-flash-to-SDRAM-and-run/m-p/1885883#M30850</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I followed the document "I.MX RT - How to Boot to SDRAM" from the i.MX RT Knowledge Base but can't get it working.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Hardware&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Embedded Artists i.MX RT1064 uCOM (SDRAM 32 MB)&lt;BR /&gt;Segger JLink Plus&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Software&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;MCUXpresso 11.9.1_2170&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What I did&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;I linked the Hello World application from the SDK to the SDRAM.&lt;BR /&gt;I enabled the DCD header (XIP_BOOT_HEADER_DCD_ENABLE=1).&lt;BR /&gt;Looking at the memory map, it seems we have everything we need:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;.boot_hdr 0x80000000 0x2000

FILL mask 0xff

0x80000000 __boot_hdr_start__ = ABSOLUTE (.)

*(SORT_BY_ALIGNMENT(.boot_hdr.conf))

.boot_hdr.conf

0x80000000 0x200 ./xip/evkmimxrt1064_flexspi_nor_config.o

0x80000000 qspiflash_config

0x00001000 . = 0x1000

*fill* 0x80000200 0xe00 ff

*(SORT_BY_ALIGNMENT(.boot_hdr.ivt))

.boot_hdr.ivt 0x80001000 0x20 ./xip/fsl_flexspi_nor_boot.o

0x80001000 image_vector_table

0x00001020 . = 0x1020

*(SORT_BY_ALIGNMENT(.boot_hdr.boot_data))

.boot_hdr.boot_data

0x80001020 0x10 ./xip/fsl_flexspi_nor_boot.o

0x80001020 g_boot_data

0x00001030 . = 0x1030

*(SORT_BY_ALIGNMENT(.boot_hdr.dcd_data))

.boot_hdr.dcd_data

0x80001030 0x410 ./board/dcd.o

0x80001030 dcd_data

0x80001440 __boot_hdr_end__ = ABSOLUTE (.)

0x00002000 . = 0x2000

*fill* 0x80001440 0xbc0 ff



.text 0x80002000 0x4f68

FILL mask 0xff

0x80002000 __vectors_start__ = ABSOLUTE (.)

*(SORT_BY_ALIGNMENT(.isr_vector))

.isr_vector 0x80002000 0x2b8 ./startup/startup_mimxrt1064.o

0x80002000 __Vectors

0x80002000 g_pfnVectors

0x800022b8 . = ALIGN (0x4)

0x800022b8 __section_table_start = .

0x800022b8 __data_section_table = .&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally, I generated a bin file and flashed it to 0x70000000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;jlink log&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Executing flash operation 'Program' (Program executable into flash eaimxrt1064_hello_world_sdram.bin) - Wed Jun 12 08:55:41 CEST 2024

Checking MCU info...

Scanning for targets...

Executing flash action...

SEGGER J-Link Commander V7.96c (Compiled Apr 2 2024 12:36:46)

DLL version V7.96c, compiled Apr 2 2024 12:36:21

J-Link Command File read successfully.

Processing script file...

J-Link&amp;gt;ExitOnError 1

J-Link Commander will now exit on Error

J-Link&amp;gt;r

J-Link connection not established yet but required for command.

Connecting to J-Link via USB...O.K.

Firmware: J-Link V11 compiled Mar 14 2024 13:16:08

Hardware version: V11.00

J-Link uptime (since boot): 0d 00h 44m 27s

S/N: 851006059

License(s): RDI, FlashBP, FlashDL, JFlash, GDB

USB speed mode: High speed (480 MBit/s)

VTref=3.305V

Target connection not established yet but required for command.

Device "MIMXRT1064XXX6A" selected.

Connecting to target via SWD

InitTarget() start

InitTarget() end - Took 1.14ms

Found SW-DP with ID 0x0BD11477

Failed to power up DAP

InitTarget() start

InitTarget() end - Took 1.27ms

Found SW-DP with ID 0x0BD11477

DPIDR: 0x0BD11477

CoreSight SoC-400 or earlier

Scanning AP map to find all available APs

AP[1]: Stopped AP scan as end of AP map has been reached

AP[0]: AHB-AP (IDR: 0x04770041)

Iterating through AP map to find AHB-AP to use

AP[0]: Core found

AP[0]: AHB-AP ROM base: 0xE00FD000

CPUID register: 0x411FC271. Implementer code: 0x41 (ARM)

Cache: L1 I/D-cache present

Found Cortex-M7 r1p1, Little endian.

FPUnit: 8 code (BP) slots and 0 literal slots

CoreSight components:

ROMTbl[0] @ E00FD000

[0][0]: E00FE000 CID B105100D PID 000BB4C8 ROM Table

ROMTbl[1] @ E00FE000

[1][0]: E00FF000 CID B105100D PID 000BB4C7 ROM Table

ROMTbl[2] @ E00FF000

[2][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7

[2][1]: E0001000 CID B105E00D PID 000BB002 DWT

[2][2]: E0002000 CID B105E00D PID 000BB00E FPB-M7

[2][3]: E0000000 CID B105E00D PID 000BB001 ITM

[1][1]: E0041000 CID B105900D PID 001BB975 ETM-M7

[1][2]: E0042000 CID B105900D PID 004BB906 CTI

[0][1]: E0040000 CID B105900D PID 000BB9A9 TPIU-M7

[0][2]: E0043000 CID B105F00D PID 001BB101 TSG

I-Cache L1: 32 KB, 512 Sets, 32 Bytes/Line, 2-Way

D-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way

Memory zones:

"Default" Description: Default access mode

Cortex-M7 identified.

Reset delay: 0 ms

Reset type NORMAL: Resets core &amp;amp; peripherals via SYSRESETREQ &amp;amp; VECTRESET bit.

ResetTarget() start

Could not find valid reset vector.

Target halted on flash header read.

ResetTarget() end - Took 124ms

AfterResetTarget() start

AfterResetTarget() end - Took 1.44ms

J-Link&amp;gt;h

PC = 002114C8, CycleCnt = 00000000

R0 = 00000001, R1 = 402A4210, R2 = 5AF05AF0, R3 = 00000004

R4 = 00000001, R5 = 0021B368, R6 = 00000000, R7 = 401F46E0

R8 = 00000000, R9 = 00000000, R10= 41EDA67B, R11= 400F8000

R12= 00000000

SP(R13)= 20200D10, MSP= 20200D10, PSP= 00000000, R14(LR) = 0020F8FF

XPSR = 41000000: APSR = nZcvq, EPSR = 01000000, IPSR = 000 (NoException)

CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000

FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000

FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000

FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= FFFFFFFF

FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000

FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000

FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000

FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= FFFFFFFF

FPSCR= 00000000

J-Link&amp;gt;loadfile "/home/mn/Documents/MCUXpresso_11.9.1_2170/workspace/eaimxrt1064_hello_world_sdram/Debug/eaimxrt1064_hello_world_sdram.bin" 0x70000000

'loadfile': Performing implicit reset &amp;amp; halt of MCU.

ResetTarget() start

Could not find valid reset vector.

Target halted on flash header read.

ResetTarget() end - Took 123ms

AfterResetTarget() start

AfterResetTarget() end - Took 2.08ms

Downloading file [/home/mn/Documents/MCUXpresso_11.9.1_2170/workspace/eaimxrt1064_hello_world_sdram/Debug/eaimxrt1064_hello_world_sdram.bin]...

J-Link: Flash download: Bank 0 @ 0x70000000: Skipped. Contents already match

O.K.

J-Link&amp;gt;qc

Script processing completed.&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the tutorial, an s19 file is generated, but I didn't succeed in flashing this file to the flash memory (as it's linked to SDRAM, the JLink tries to flash it to SDRAM, which is not what I want).&lt;/P&gt;&lt;P&gt;After all this, I see that the application doesn't start. Moreover, in the JLink log, you can see "Could not find valid reset vector."&lt;/P&gt;&lt;P&gt;What am I doing wrong?&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;</description>
    <pubDate>Wed, 12 Jun 2024 15:19:45 GMT</pubDate>
    <dc:creator>mnagoga</dc:creator>
    <dc:date>2024-06-12T15:19:45Z</dc:date>
    <item>
      <title>Copy from flash to SDRAM and run</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Copy-from-flash-to-SDRAM-and-run/m-p/1885883#M30850</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I followed the document "I.MX RT - How to Boot to SDRAM" from the i.MX RT Knowledge Base but can't get it working.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Hardware&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Embedded Artists i.MX RT1064 uCOM (SDRAM 32 MB)&lt;BR /&gt;Segger JLink Plus&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Software&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;MCUXpresso 11.9.1_2170&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What I did&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;I linked the Hello World application from the SDK to the SDRAM.&lt;BR /&gt;I enabled the DCD header (XIP_BOOT_HEADER_DCD_ENABLE=1).&lt;BR /&gt;Looking at the memory map, it seems we have everything we need:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;.boot_hdr 0x80000000 0x2000

FILL mask 0xff

0x80000000 __boot_hdr_start__ = ABSOLUTE (.)

*(SORT_BY_ALIGNMENT(.boot_hdr.conf))

.boot_hdr.conf

0x80000000 0x200 ./xip/evkmimxrt1064_flexspi_nor_config.o

0x80000000 qspiflash_config

0x00001000 . = 0x1000

*fill* 0x80000200 0xe00 ff

*(SORT_BY_ALIGNMENT(.boot_hdr.ivt))

.boot_hdr.ivt 0x80001000 0x20 ./xip/fsl_flexspi_nor_boot.o

0x80001000 image_vector_table

0x00001020 . = 0x1020

*(SORT_BY_ALIGNMENT(.boot_hdr.boot_data))

.boot_hdr.boot_data

0x80001020 0x10 ./xip/fsl_flexspi_nor_boot.o

0x80001020 g_boot_data

0x00001030 . = 0x1030

*(SORT_BY_ALIGNMENT(.boot_hdr.dcd_data))

.boot_hdr.dcd_data

0x80001030 0x410 ./board/dcd.o

0x80001030 dcd_data

0x80001440 __boot_hdr_end__ = ABSOLUTE (.)

0x00002000 . = 0x2000

*fill* 0x80001440 0xbc0 ff



.text 0x80002000 0x4f68

FILL mask 0xff

0x80002000 __vectors_start__ = ABSOLUTE (.)

*(SORT_BY_ALIGNMENT(.isr_vector))

.isr_vector 0x80002000 0x2b8 ./startup/startup_mimxrt1064.o

0x80002000 __Vectors

0x80002000 g_pfnVectors

0x800022b8 . = ALIGN (0x4)

0x800022b8 __section_table_start = .

0x800022b8 __data_section_table = .&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally, I generated a bin file and flashed it to 0x70000000.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;jlink log&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Executing flash operation 'Program' (Program executable into flash eaimxrt1064_hello_world_sdram.bin) - Wed Jun 12 08:55:41 CEST 2024

Checking MCU info...

Scanning for targets...

Executing flash action...

SEGGER J-Link Commander V7.96c (Compiled Apr 2 2024 12:36:46)

DLL version V7.96c, compiled Apr 2 2024 12:36:21

J-Link Command File read successfully.

Processing script file...

J-Link&amp;gt;ExitOnError 1

J-Link Commander will now exit on Error

J-Link&amp;gt;r

J-Link connection not established yet but required for command.

Connecting to J-Link via USB...O.K.

Firmware: J-Link V11 compiled Mar 14 2024 13:16:08

Hardware version: V11.00

J-Link uptime (since boot): 0d 00h 44m 27s

S/N: 851006059

License(s): RDI, FlashBP, FlashDL, JFlash, GDB

USB speed mode: High speed (480 MBit/s)

VTref=3.305V

Target connection not established yet but required for command.

Device "MIMXRT1064XXX6A" selected.

Connecting to target via SWD

InitTarget() start

InitTarget() end - Took 1.14ms

Found SW-DP with ID 0x0BD11477

Failed to power up DAP

InitTarget() start

InitTarget() end - Took 1.27ms

Found SW-DP with ID 0x0BD11477

DPIDR: 0x0BD11477

CoreSight SoC-400 or earlier

Scanning AP map to find all available APs

AP[1]: Stopped AP scan as end of AP map has been reached

AP[0]: AHB-AP (IDR: 0x04770041)

Iterating through AP map to find AHB-AP to use

AP[0]: Core found

AP[0]: AHB-AP ROM base: 0xE00FD000

CPUID register: 0x411FC271. Implementer code: 0x41 (ARM)

Cache: L1 I/D-cache present

Found Cortex-M7 r1p1, Little endian.

FPUnit: 8 code (BP) slots and 0 literal slots

CoreSight components:

ROMTbl[0] @ E00FD000

[0][0]: E00FE000 CID B105100D PID 000BB4C8 ROM Table

ROMTbl[1] @ E00FE000

[1][0]: E00FF000 CID B105100D PID 000BB4C7 ROM Table

ROMTbl[2] @ E00FF000

[2][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7

[2][1]: E0001000 CID B105E00D PID 000BB002 DWT

[2][2]: E0002000 CID B105E00D PID 000BB00E FPB-M7

[2][3]: E0000000 CID B105E00D PID 000BB001 ITM

[1][1]: E0041000 CID B105900D PID 001BB975 ETM-M7

[1][2]: E0042000 CID B105900D PID 004BB906 CTI

[0][1]: E0040000 CID B105900D PID 000BB9A9 TPIU-M7

[0][2]: E0043000 CID B105F00D PID 001BB101 TSG

I-Cache L1: 32 KB, 512 Sets, 32 Bytes/Line, 2-Way

D-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way

Memory zones:

"Default" Description: Default access mode

Cortex-M7 identified.

Reset delay: 0 ms

Reset type NORMAL: Resets core &amp;amp; peripherals via SYSRESETREQ &amp;amp; VECTRESET bit.

ResetTarget() start

Could not find valid reset vector.

Target halted on flash header read.

ResetTarget() end - Took 124ms

AfterResetTarget() start

AfterResetTarget() end - Took 1.44ms

J-Link&amp;gt;h

PC = 002114C8, CycleCnt = 00000000

R0 = 00000001, R1 = 402A4210, R2 = 5AF05AF0, R3 = 00000004

R4 = 00000001, R5 = 0021B368, R6 = 00000000, R7 = 401F46E0

R8 = 00000000, R9 = 00000000, R10= 41EDA67B, R11= 400F8000

R12= 00000000

SP(R13)= 20200D10, MSP= 20200D10, PSP= 00000000, R14(LR) = 0020F8FF

XPSR = 41000000: APSR = nZcvq, EPSR = 01000000, IPSR = 000 (NoException)

CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000

FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000

FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000

FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= FFFFFFFF

FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000

FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000

FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000

FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= FFFFFFFF

FPSCR= 00000000

J-Link&amp;gt;loadfile "/home/mn/Documents/MCUXpresso_11.9.1_2170/workspace/eaimxrt1064_hello_world_sdram/Debug/eaimxrt1064_hello_world_sdram.bin" 0x70000000

'loadfile': Performing implicit reset &amp;amp; halt of MCU.

ResetTarget() start

Could not find valid reset vector.

Target halted on flash header read.

ResetTarget() end - Took 123ms

AfterResetTarget() start

AfterResetTarget() end - Took 2.08ms

Downloading file [/home/mn/Documents/MCUXpresso_11.9.1_2170/workspace/eaimxrt1064_hello_world_sdram/Debug/eaimxrt1064_hello_world_sdram.bin]...

J-Link: Flash download: Bank 0 @ 0x70000000: Skipped. Contents already match

O.K.

J-Link&amp;gt;qc

Script processing completed.&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the tutorial, an s19 file is generated, but I didn't succeed in flashing this file to the flash memory (as it's linked to SDRAM, the JLink tries to flash it to SDRAM, which is not what I want).&lt;/P&gt;&lt;P&gt;After all this, I see that the application doesn't start. Moreover, in the JLink log, you can see "Could not find valid reset vector."&lt;/P&gt;&lt;P&gt;What am I doing wrong?&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;</description>
      <pubDate>Wed, 12 Jun 2024 15:19:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Copy-from-flash-to-SDRAM-and-run/m-p/1885883#M30850</guid>
      <dc:creator>mnagoga</dc:creator>
      <dc:date>2024-06-12T15:19:45Z</dc:date>
    </item>
    <item>
      <title>回复： Copy from flash to SDRAM and run</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Copy-from-flash-to-SDRAM-and-run/m-p/1886688#M30873</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/234442"&gt;@mnagoga&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Hope you are doing well!&lt;/P&gt;
&lt;P&gt;I've helped a customer test a related project before. Please refer to this thread which provides detailed instructions.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/Boot-to-SDRAM-MCU-Boot-utility-How-to-Use-download/td-p/1789125" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors/Boot-to-SDRAM-MCU-Boot-utility-How-to-Use-download/td-p/1789125&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Gavin&lt;/P&gt;</description>
      <pubDate>Thu, 13 Jun 2024 07:12:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Copy-from-flash-to-SDRAM-and-run/m-p/1886688#M30873</guid>
      <dc:creator>Gavin_Jia</dc:creator>
      <dc:date>2024-06-13T07:12:42Z</dc:date>
    </item>
  </channel>
</rss>

