SWARM-Bot Firmware  v1.0
Mobile robot OS - Embedded C/C++
Assembler Support

Control Statements

#define REPEAT(count)   .rept count
 Repeat the following statements count times. More...
 
#define END_REPEAT()   .endr
 Mark the end of the statements to be repeated. More...
 
#define SET_LOC(offset)   .org offset
 Set the location counter to offset. More...
 
#define END_FILE()
 Mark the end of the file. More...
 

Data Objects

#define FILL_BYTES(count)   .fill count
 Allocate space for count bytes. More...
 

Symbol Definition

#define EXTERN_SYMBOL(name)
 Declare name as an external symbol referenced by this file. More...
 
#define FUNCTION(name)   gas_begin_func name 0
 Define a file-local function called name. More...
 
#define PUBLIC_FUNCTION(name)   gas_begin_func name 1
 Define a globally visible function called name. More...
 
#define WEAK_FUNCTION(name)   gas_weak_function name
 Define a weak function called name. More...
 
#define WEAK_FUNCTION_ALIAS(name, strong_name)    gas_weak_function_alias name strong_name
 Define name as a weak alias for the function strong_name. More...
 
#define END_FUNC(name)    .size name, . - name
 Mark the end of the function called name. More...
 

Section Definition

#define TEXT_SECTION(name)    .section name, "ax", @progbits
 Start a new section containing executable code. More...
 
#define RODATA_SECTION(name)    .section name, "a", @progbits
 Start a new section containing read-only data. More...
 
#define DATA_SECTION(name)    .section name, "aw", @progbits
 Start a new section containing writeable initialized data. More...
 
#define BSS_SECTION(name)    .section name, "aw", @nobits
 Start a new section containing writeable zero-initialized data. More...
 

Detailed Description

This group provides a good handful of macros intended to smooth out the differences between various assemblers, similar to what compiler.h does for compilers, except that assemblers tend to be much less standardized than compilers.

Macro Definition Documentation

◆ BSS_SECTION

#define BSS_SECTION (   name)     .section name, "aw", @nobits

Start a new section containing writeable zero-initialized data.

◆ DATA_SECTION

#define DATA_SECTION (   name)     .section name, "aw", @progbits

Start a new section containing writeable initialized data.

◆ END_FILE

#define END_FILE ( )

Mark the end of the file.

◆ END_FUNC

#define END_FUNC (   name)     .size name, . - name

Mark the end of the function called name.

◆ END_REPEAT

#define END_REPEAT ( )    .endr

Mark the end of the statements to be repeated.

◆ EXTERN_SYMBOL

#define EXTERN_SYMBOL (   name)

Declare name as an external symbol referenced by this file.

◆ FILL_BYTES

#define FILL_BYTES (   count)    .fill count

Allocate space for count bytes.

◆ FUNCTION

#define FUNCTION (   name)    gas_begin_func name 0

Define a file-local function called name.

◆ PUBLIC_FUNCTION

#define PUBLIC_FUNCTION (   name)    gas_begin_func name 1

Define a globally visible function called name.

◆ REPEAT

#define REPEAT (   count)    .rept count

Repeat the following statements count times.

◆ RODATA_SECTION

#define RODATA_SECTION (   name)     .section name, "a", @progbits

Start a new section containing read-only data.

◆ SET_LOC

#define SET_LOC (   offset)    .org offset

Set the location counter to offset.

◆ TEXT_SECTION

#define TEXT_SECTION (   name)     .section name, "ax", @progbits

Start a new section containing executable code.

◆ WEAK_FUNCTION

#define WEAK_FUNCTION (   name)    gas_weak_function name

Define a weak function called name.

Weak functions are only referenced if no strong definitions are found

◆ WEAK_FUNCTION_ALIAS

#define WEAK_FUNCTION_ALIAS (   name,
  strong_name 
)     gas_weak_function_alias name strong_name

Define name as a weak alias for the function strong_name.

See also
WEAK_FUNCTION