AnsweredAssumed Answered

Howto run and debug the bare metal platform SDK on IMX6DL

Question asked by andreas karlsson on Apr 23, 2014



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.



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


Original Attachment has been moved to:

Original Attachment has been moved to: