hittiger 发表于 2011-7-14 17:42:03

请教 arm linux gcc 里面怎么指定 函数入口地址?

arm linux gcc 里面怎么指定 函数入口地址呀,想要指定函数的地址,方便汇编跳转?

hittiger 发表于 2011-7-14 19:02:17

果然,搞这个的同志不多么?大概是用哪个lds文件制定,具体格式还不清楚。

dr2001 发表于 2011-7-14 19:13:11

用C函数命名,然后汇编调用_name。
通常来说都是这个关系。不需要指定地址。

hittiger 发表于 2011-7-14 20:28:19

回复【2楼】dr2001
-----------------------------------------------------------------------

我编译一个程序,这个程序在ram调试时,需要跳过汇编的mmu初始化部分,直接进入C语言函数。所以希望每一次编译,入口地址都是一样的。不然我还得去指定跳转地址。

517456 发表于 2011-7-14 21:42:33

可以指定某编译文件的位置。修改LDScript
MEMORY
{
ROM (rx) : ORIGIN = 0x00000000, LENGTH = 128k
RCM (rx) : ORIGIN = 0x00020000, LENGTH = 128k
RAM (rw) : ORIGIN = 0x40000000, LENGTH = 31k
}

/* Section Definitions */
SECTIONS
{
   .iap :
{
        *iap.o (.text)         
} > RCM

hittiger 发表于 2011-7-15 08:22:59

想到了一个方法就是,汇编部分第一个文件地址时候固定的,里面对应的函数地址也是固定的,所以我打算跳转到汇编里跳转到C的前一条指令处。这样虽然每一次编译C部分可能不一样,但是对应的汇编前一条指令地址时候一样的。

下面要解决的问题就是中断向量的跳转了。大概想法是程序每一次在ram中运行C时,第一个C函数都把自己的头部的中断跳转表copy到汇编的二级跳转表里。

hittiger 发表于 2011-7-15 08:31:26

回复【4楼】517456
-----------------------------------------------------------------------

谢谢
页: [1]
查看完整版本: 请教 arm linux gcc 里面怎么指定 函数入口地址?