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

Is there a hello world assembly language project for M4 WITHOUT Startup code?

I really want to just write some values to registers but I am really struggling to get the most simple of ASM projects to build

I am coming from PIC background and for an intial lab I want to be able to just show some students how to load a register and add together..Something like this

AREA text, code, readonly
ENTRY
MOV R0, #5
ADD R0, R0, #1
END

I found this code online, however the build is failing saying it "Cannot find arguement _Vectors" I see that vectors is defined in Startup.s but I really don't want to use any other additional files. Is there a way to do a simple ASM file like above without any additional files? and debug it

The board being used is the STM32F401RE  NUCLEO..

Thanks

Parents
  • Hi Alban

    Just got to work and the file doesn't build it says

    .\assembly.axf: Error: L6218E: Undefined symbol SystemInit (referred from assembly.o).

    .\assembly.axf: Error: L6218E: Undefined symbol __use_two_region_memory (referred from assembly.o).

    I am guessing this is because the C file isn't attached but I wanted to avoid using the C file and just get the project up and running with nothing but 1 ASM file. I will report back with my findings

Reply
  • Hi Alban

    Just got to work and the file doesn't build it says

    .\assembly.axf: Error: L6218E: Undefined symbol SystemInit (referred from assembly.o).

    .\assembly.axf: Error: L6218E: Undefined symbol __use_two_region_memory (referred from assembly.o).

    I am guessing this is because the C file isn't attached but I wanted to avoid using the C file and just get the project up and running with nothing but 1 ASM file. I will report back with my findings

Children
  • Try removing the 'IMPORT SystemInit", the "IMPORT __use_two_region_memory" and the comment-block ...

    ;                 LDR     R0, =SystemInit

    ;                 BLX     R0

    ;                 LDR     R0, =__main

    ;                 BX      R0

    ...I think that would get rid of those errors.