当前位置: 技术问答>linux和unix
ARM混合编程
来源: 互联网 发布时间:2017-04-21
本文导语: #include extern void asm_strcpy(const char *src, char *dest); int Main() { const char *s = "seasons in the sun"; char d[32]; asm_strcpy(s, d); //printf("source: %s", s); //printf("destination: %s",d); return 0; } AREA asmfile, CODE, READON...
#include
extern void asm_strcpy(const char *src, char *dest);
int Main()
{
const char *s = "seasons in the sun";
char d[32];
asm_strcpy(s, d);
//printf("source: %s", s);
//printf("destination: %s",d);
return 0;
}
AREA asmfile, CODE, READONLY
EXPORT asm_strcpy
asm_strcpy
start
loop
ldrb r4, [r0], #1
cmp r4, #0
beq over
strb r4, [r1], #1
b loop
over
mov pc, lr
END
这是C程序调用汇编函数
但是编译的时候我发现加上printf();
就会提示L6218E Undefined symbol _printf(referred from ...o)
去掉就没有错了;
可是我想知道为什么,怎么才能改对了
|
lz上编译过程的命令来看看
|
感觉应该是没有链 libc 的库,可以看看在什么地方设置。具体就不了解了,不用集成开发环境。