asm.h
00001 #ifndef __ASM_H__
00002 #define __ASM_H__
00003
00004 #ifdef __IAR_SYSTEMS_ASM__
00005
00006
00007 #define __END__ END
00008 #define __EXPORT__ EXPORT
00009 #define __IMPORT__ IMPORT
00010 #define __SPACE__ DS8
00011 #define __EQU__(a, b) a EQU b
00012 #define __WEAK__ PUBWEAK
00013 #define __THUMB__ THUMB
00014
00015 #if __VER__ >= 5000000
00016
00017
00018 RSEG RESETINFO:DATA
00019 RSEG CSTACK:DATA
00020 #define __CODE__ SECTION .text:CODE:REORDER:NOROOT(2)
00021 #define __BSS__ SECTION .bss:DATA:NOROOT(2)
00022 #define __BEGIN_RESETINFO__(offset) SFB(RESETINFO + offset)
00023 #define __END_RESETINFO__(offset) SFE(RESETINFO + offset)
00024 #define __BEGIN_STACK__(offset) SFB(CSTACK + offset)
00025 #define __END_STACK__(offset) SFE(CSTACK + offset)
00026 #define __CFI__(x)
00027
00028 #else // __VER__
00029
00030 #error IAR versions less that 5.xx are not supported
00031
00032 #endif // __VER__
00033
00034 #endif // __IAR_SYSTEMS_ASM__
00035
00036 #ifdef __GNUC__
00037
00038
00039 .syntax unified
00040 .thumb
00041 #define __CODE__ .text
00042 #define __THUMB__ .thumb_func
00043 #define __BSS__ .bss
00044 #define __END__ .end
00045 #define __EXPORT__ .global
00046 #define __IMPORT__ .extern
00047 #define __SPACE__ .space
00048 #define __EQU__(a, b) .equ a, b
00049 #define __WEAK__ .weak
00050 #define __BEGIN_NVDATA__(offset) (_noinit + offset)
00051 #define __BEGIN_STACK__(offset) (_stack + offset)
00052 #define __END_STACK__(offset) (_estack + offset)
00053 #define __CFI__(x)
00054
00055 #endif // __GNUC__
00056
00057 #endif // __ASM_H__