在特定地址设置功能

时间:2013-11-09 04:48:42

标签: c gcc linker arm

我有下一个单独的C代码,我正在尝试使用arm-gcc GNU和eclipse编译arm。

main.h

#ifndef
#define MAIN_H_
extern int rmain(int,int);
#endif

的main.c

#include main.h
#include sum.h
int rmain(a1,a2){
    int z=0x89;
    return sum(a1+a2)+z;

sum.h

#ifndef
#define SUM_H_
extern int sum(int,int);
#endif

sum.c

#include sum.h
int sum(int a1,int a2)
    return a1+a2;

我的链接器脚本文件就像这样: mem.lds

ENTRY(rmain)
SECTIONS:{
.=0x808080
.text:{*(.text)}
.data:{*(.data)}
.bss:{*(.bss)}
}

这项工作还可以,但我的问题是我需要将函数rmain设置为0x808080地址,那么我怎么能这样做呢?

我尝试过:

SECTIONS:{
.=0x808080
.start:{main.o (.text)}
.text:{*(EXCLUDE_FILE(main.o).text)}
.data:{*(.data)}
.bss:{*(.bss)}
}

但运气接头不是说:rmain的多重定义。

0 个答案:

没有答案