AnsweredAssumed Answered

Howto run and debug the bare metal platform SDK on IMX6DL

Question asked by andreas karlsson on Apr 23, 2014

Hi,

 

Task: I want to be able to run and debug bare metal code directly from DDR3 via trace32.

 

1. We have a Sabre SD rev C2 populated with an IMX6DL, MCIMX6DL-SDP.

2. I've test to run and debug imx6_platform_sdk_v1.1.0.tgz

3. I've ported tools\ds5\MX6DL_SabreSD_DDR3_v1.6.ds to trace32 syntax. Attached:  imx6DL_sabresd.cmm

 

To test:

4. I start trace32 and init the imx6DL via attached script

5. Load the Data.LOAD.Elf sdk_unit_test_ALL.elf built with CodeSourcey's Lite arm-eabi

6. I come to the _start label and can start single step

7. When singlestep and I reach startup.S code below (first branch instruction)  a bus error is generated

 

    @ check cpu id - cpu0 is primary cpu

    cmp     r5, #0

    beq     primary_cpu_init <-------------------------------  here a T32 "bus error generated by CPU" is generated

 

If I start the SDK without single stepping I get to the main test menu.

 

Question:

Is something else required to be able to rund and debug bare metal code? I power on the SBARESD without SD card present.

Is the DDR settings the same for MT41K128M16JT as for MT41J128M16HA-15E (script ref MT41J but MT41K is populated on the board according to the BOM) ?

 

 

 

Added ELF

Added file casuing the issue if someone got the time to try out on an MCIMX6DL card, prebuilt with CodeSorcery arm-eabi-lite and ./tools/build_sdk -t mx6sdl -b smart_device -v c

I can't single step beyond "0x1000074c beq"

 

Thanks for inout

Andreas

Original Attachment has been moved to: imx6DL_sabresd.cmm.txt.zip

Original Attachment has been moved to: sdk_unit_test_ALL.elf.zip

Outcomes