/************************************************************************
*thumbmain.c*
*该程序是Thumb程序,子程序arm_function(void)为ARM程序*
*************************************************************************/
#include<stdio.h>
extern void arm_function(void);
int main(void)
{
printf("Hello from Thumb World n");
arm_function();
printf("And goodbye from Thumb Worldn");
return(0);
}
/************************************************************************
*armsub.c*
*该程序是ARM程序*
*************************************************************************/
#include <stdio.h>
void arm_function(void)
{
printf("Hello and Goodbye from ARM Worldn");
}
通过下面的操作编译,连接该例子。
(1)使用命令 tcc -c -apcs /interwork -o thumbmain.o thumbmian.c 编译该Thumb代码
(2)使用命令 armcc -c -apcs /interwork -o armsub.o armsub.c编译ARM代码。
(3)使用命令armlink -o hello armsub.o thumbmain.o连接目标代码。
通过armlink -info veneers armsub.o thumbmain.o可以显示连接器添加的用于程序状态切换的代码情况