This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Pure assembler project with uVision

I am looking for a step by step instruction how to setup a pure assembler project with uVision which is possible to download and debug on the target board (LM3S8962 Evaluation Board) later on.

I have no problems with a c project but with an assembler project.

Any hint would be great.

Maybe someone could post an example project just with some lines of code.

Thanks for helping.

  • What problems, exactly, do you have?

  • Hi,

    you could use an startup file that is already configured for your device, and change the jump into __main to a jump into your start code.

    The rest is the same - new project, select chip, say 'yes' to 'add startup', debug & flash download settings, compile, ...

    BR,
    /th.

  • Finally I was able to manage it. Thank you.

    I tried to setup a project with startup file before, but I got the following errors:

    Project1.axf: Warning: L6665W: Neither Lib$$Request$$armlib Lib$$Request$$cpplib defined, not searching ARM libraries.
    Project1.axf: Error: L6218E: Undefined symbol __use_two_region_memory (referred from startup.o).

    Because of your hint I tried it again but this time I remove the following section:

    IF :DEF: __MICROLIB
           EXPORT  __initial_sp
           EXPORT  __initial_sp
           EXPORT  __heap_base
           EXPORT __heap_limit
        ELSE
           IMPORT __use_two_region_memory
           EXPORT __user_initial_stackheap
    __user_initial_stackheap
           LDR     R0, =HeapMem
           LDR     R1, =(StackMem + Stack)
           LDR     R2, =(HeapMem + Heap)
           LDR     R3, =StackMem
           BX     LR
        ENDIF
    

    Without this lines of code (which are only for c projects necessary) it worked as expected.

    Thanks for helping.

  • Hi,

    this is C library startup/init stuff for stack and heap. You must manage this by yourselv. The minimum you'll need is the SP.

    But _why_ do you want to write in ASM? Why not using the armcc and write only the "hardcore-quick" funcs in asm?

    ---
    If you are not sure with the startup you may also use the arm C lib, and call your beginning assembler code as a function from C main :-)

    BR,
    /th.