This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Needs baremetal code for K2K EVM board for ARM

Hello,

I wanted to run my own logic in K2K arm multicore I need below details please help me to get the below details.

1) Wanted bare metal BSP's for K2K Arm core. Where is the location for ARM BSP's in installation folder from where they are getting linked. 
2) I want to connect the onboard debugger via CCS. wanted to flash only bsp's and my logic in main no need of any OS. 
3) Please share me the reset vector details once vector remapping happened from boot rom to ram (may be cinit API's file).
4) Just wanted printf to get prints in console. what are all the thing we need to carry out for this.

Thanks,
Vinayak.

  • Hi Vinayak,

    Here is what I can answer of your questions:
    1) Wanted bare metal BSP's for K2K Arm core. Where is the location for ARM BSP's in installation folder from where they are getting linked.

    The PDK examples do not need an OS istalled to run. You can navigate to ti/pdk_<version>/packages & use the pdkProjectCreate.sh or pdkProjectCreate.bat scripts to create your arm project, then import it to CCS, build it & execute it on your board:
    pdkProjectCreate.sh [soc] [board] [endian] [module] [processor]
    the last parameter [processor] specifies weather the code will run on dsp or arm, see the description at the beginning of the script for more info:
    processors.wiki.ti.com/.../Rebuilding_The_PDK
    processors.wiki.ti.com/.../Rebuilding_The_PDK

    2) I want to connect the onboard debugger via CCS. wanted to flash only bsp's and my logic in main no need of any OS.

    As I said the pdk example projects run basically on their own (no OS needed). Another option is to follow the examples provided here:
    processors.wiki.ti.com/.../Processor_SDK_Bare_Metal_Examples

    3) Please share me the reset vector details once vector remapping happened from boot rom to ram (may be cinit API's file).

    The cinit is located in the corresponding compiler folder, for example inspect ccsv6/tools/compiler/arm_15.12.3.LTS/lib/lnk.cmd, ccsv6/tools/compiler/arm_15.12.3.LTS/lib/src/autoinit.c & ccsv6/tools/compiler/arm_15.12.3.LTS/lib/src/autoinit.h

    Also the following wiki may be of use:
    processors.wiki.ti.com/.../Linker_Special_Section_Types


    4) Just wanted printf to get prints in console. what are all the thing we need to carry out for this.

    The links in question 1 & question 2 should answer this as well.

    Hope this helps.

    Best Regards,
    Yordan
  • Hello,
    Thanks for the reply..
    ---- We want to have our own reset handler and want run our own kernel logic on the k2k ARM multicore.
    ---- Please let us know where we can find the irq handler and basic board initialization code.

    Thank,
    Vinayak
  • Hi Vinayak,

    You can use the GEL files, located in ~/ti/ccsv6/ccs_base/emulation/boards/xtcievmk2x/gel/, as a generic board initialization code. For IRQ handlers & reset vectors, as I said, you need to inspect the corresponding compilers, linker files, cmd & lds files located in the ccs install directory, i.e. have a look at:
    for arm:
    ~/ti/ccsv6/ccs_base/arm/include/
    ~/ti/ccsv6/tools/compiler/arm_15.12.3.LTS/lib/src/ & ~/ti/ccsv6/tools/compiler/arm_15.12.3.LTS/lib/lnk.cmd
    ~/ti/ccsv6/ccs_base/c6000/include/ /*dsp directory*/
    ~/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3
    for dsp:
    ~/ti/ccsv6/tools/compiler/c6000_7.4.18
    ~/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.1/lnk.cmd
    Above is part of the CCS installation.

    Also another example for board initialization code is the pdk sbl/ibl. The link to Processor SDK download is, to which I refer is:
    software-dl.ti.com/.../index_FDS.html

    Best Regards,
    Yordan