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.

Setup ARM assembly code only project in CCS

All,

I am going to purchase the MCU TM4C129X Connected Development Kit. I would like to do only ARM assembly program using CCS. I can't find a definitive solution online to my problem. Please can someone tell me how to configure CCS to do ARM assembly programs only, or provide links, documentation that show me how to do this. Also, can I use "ARM Assembly Language Tools" with this development kit?

lag

http://www.ti.com/tool/dk-tm4c129xn

  • Hi,

    From a tools standpoint, you can certainly develop applications and code in assembly for the Tiva family of MCUs using CCS - the TI ARM compiler, the GCC ARM compiler and the CCS IDE project manager/debugger support it.

    However, the tools support are only part of the story. Just like you, I couldn't find a guide that covers assembly development and example code for Tiva + CCS. A quick search around the internet yielded a few interesting results at:

    - http://users.ece.utexas.edu/~valvano/arm/

    - http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/243460

    These two references deal with different compiler/IDE suites, but the algorithms are there. I foresee the differences between these examples and the GCC/TI assemblers will be concentrated in handling special directives - things such as .arch, .text, .align, etc...

    Therefore I would first create an Empty project that uses GCC, which will pre-populate your project with the correct linker script and the startup file (but in C)

    Then I would add the file <startup_ARMCM4.S> present under the directory below:

    C:\ti\ccsv6\tools\compiler\gcc-arm-none-eabi-4_9-2015q3\share\gcc-arm-none-eabi\samples\startup

    And merge the __isr_vector table with the interrupt vectors of the startup file pre-populated by CCS (Eclipse has pretty good advanced editing modes such as showing files side-by-side and column mode to help with that). This file even has some inline assembly to initialize the .bss segment. A bit more involving step is to decode the macros on this file that enable the floating point unit and translate the operation to an assembly sequence.

    I would then create a new file and add my main function.

    You can also use a startup file of a typical Tivaware example code, as it contains the setup for any interrupt vectors. For your board the examples would be located at:

    C:\ti\TivaWare_C_Series-2.1.2.111\examples\boards\dk-tm4c129x

    That should get you started, but I would also ask additional details on the Tiva device forum, as they may have additional details.

    Hope this helps,

    Rafael