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.

CCS/CC2640R2F: What is XDSTOOLS, and what is it for?

Part Number: CC2640R2F
Other Parts Discussed in Thread: SYSBIOS, CC2640, CC3200

Tool/software: Code Composer Studio

I am trying to rationalize what XDSTOOLS is used for and how it get's used in my application.  It shows up in the application properties, but there is no documentation or explanation on what it does.  I have read the _c_int00 function is supplied by the XDSTOOLS code, but I can't find any code for it, nor how it calls BOOT.ASM.  It is buried in a arm7m3 library, and I can't find the code. Yes, I am very confused.

  • Hi Greg,

    First it's XDCtools. For the long answer, that a look at this: http://www.ti.com/lit/ug/spruex4/spruex4.pdf. For the short answer, it is used to help build the TI-RTOS kernel (SYS/BIOS).

    Todd

  • Yes, I read these documents.  So, If I am using free-rtos or uCos, you don't need XDCtools?  Here are my followup questions:

    1. Is the code in Rom?  I am following the boot strap for a bare metal application, and I have implemented a blinky program.  It executes a boot loader by calling _c_int00.  Then I am lost.  Where is the code for _c_int00?
    2. Can I see the code for XDCtools?  I'd like to do the same for ti-rtos.
    3. The BLE stack is a bit of a mystery.  Is there a document on how the stack is built?  There is a project just for the stack, but it looks like it is for accessing the stack in ROM.  How does it load the network processor?
    4. How can I see api and/or source for the code contained in ROM?

     

  • An engineer will answer the XDCtools related question. Please start a new thread on the BLE stack question though to limit the scope of this thread.

    Todd

  • Hi Greg,

    XDCTOOLS is used to build the TI-provided libraries used by an application.

    Is the code in Rom?  I am following the boot strap for a bare metal application, and I have implemented a blinky program.  It executes a boot loader by calling _c_int00.  Then I am lost.  Where is the code for _c_int00?

    Yes, much of the code is in ROM. When an application is loaded using CCS, the symbol table associated with the BIOS ROM code is automatically loaded as well. “_c_int00” can be found in <SDK_INSTALL>/kernel/tirtos/packages/ti/targets/arm/rtsarm/boot_cortex_m.c.

     

    Can I see the code for XDCtools?  I'd like to do the same for ti-rtos.

    Some of the library code provided by TI is also contained in the XDCTOOLS under <XDCTOOLS_INSTALL>/packages/xdc/runtime/…

    The source files for all of ti-rtos are provided in the SDK directories.

    How can I see api and/or source for the code contained in ROM? 

    When you step into the BIOS ROM code, CCS will ask you where the source file is for the code being executed. You can then browse to the appropriate <SDK_INSTALL>/kernel/tirtos/package/ti/sysbios/… subdirectory (using the file name provided by CCS as a hint) to find the source file requested.

  • Yes, much of the code is in ROM. When an application is loaded using CCS, the symbol table associated with the BIOS ROM code is automatically loaded as well. “_c_int00” can be found in <SDK_INSTALL>/kernel/tirtos/packages/ti/targets/arm/rtsarm/boot_cortex_m.c.

    I searched for this file and found it in the path for the cc3200 sdk and tirtos.  I looked in the cc2640 sdk and it had assembler code.  I assume the logic is basically the same?  One question is a file boot.asm and a file boot515.asm.  Looks the same to me but I haven't done diffs.  Can you add what the difference is? 

    An additional question: I have not found how or where the BLE stack get's started.  I have found the startup routine in the stack code, but I can't find who calls the entry point from the stack vector table.  I assume it is either XDCtools or TI-RTOS.  Any hints?  What file?  At what stage does it happen?

     

  • I searched for this file and found it in the path for the cc3200 sdk and tirtos.  I looked in the cc2640 sdk and it had assembler code.  I assume the logic is basically the same?  One question is a file boot.asm and a file boot515.asm.  Looks the same to me but I haven't done diffs.  Can you add what the difference is? 

    They should serve the same functions. boot.asm is the bootloader that is used by RTOS. boot515.asm is for reference by TI's internal developers.

    the stack code, but I can't find who calls the entry point from the stack vector table.  I assume it is either XDCtools or TI-RTOS.  Any hints?  What file?  At what stage does it happen?

    The BLE stack entry point depends on the application as not all applications use BLE. The stack is probably started with arming a thread (perhaps embedded into a “Stack_init()” API) and calling BIOS_start() afterwards. 

    -Kevin