I need use arm and thumb is same program , how to make this. eg. asm code startup : .text .arm .global _startup .func _startup _startup: ldr sp,=value ldr r10,=main adr lr, __main_exit bx r10 __main_exit: B __main_exit .size _startup, . - _startup .endfunc .global Sub_func .func Sub_func Sub_func: code here .size Sub_func, . - Sub_func .endfunc .equ value , 0x01000000 .end C code thumb : int main(void) { int x , y ; Sub_func(); <--- function in arm mode , how to call this function ? x = 10 ; }
marciano wrote: > I need use arm and thumb is same program , how to make this. Search the gcc documentation for -mthumb and -mthumb-interwork. > C code thumb : > > int main(void) > { > int x , y ; > Sub_func(); <--- function in arm mode , how to call this function ? > x = 10 ; > } With the versions of the toolchain I know it's not possible to write code which should be compiled for ARM mode in the same source-file as code which should be compiled for THUMB-mode. To call code compiled in one code (i.e. ARM) from code compiled in another mode (i.e. Thumb) compile and link with interworking enabled. Maybe the makefiles from my WinARM example-collection can serve as examples. In short: compile the source with the main()-code with -mthumb and -mthumb-interwork and compile the source with Sub_func() only with -mthumb-interwork (not special switch for ARM-mode needed - it's default). Martin Thomas
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.