不能下载附件的请看这里:论坛限制流量,临时解决方法
返回列表 回复 发帖

求助:GCC自定义段定位问题:

我要对一段程式做一个定位,我所用的工具是: avr studio+WinAVR 20071227 来做的,不知道为什么:
我定义一个程式段:我是在操作介面输入一些参数(configuration options/menory setting),在其自带的makefile中有看到生成成功如下:
LDFLAGS += -Wl,-section-start=mymy=0x3e00

我的程式为:
#include<avr/iom128.h>

void MYMY(void) __attribute__ ((section (".mymy")));

void MYMY (void)
  {
       asm("nop");
       asm("nop");
  }

  int main(void)
     {  
       asm("nop");
       asm("nop");
      while(1);
     }


程式可以运行,可是从汇编处看,mymy还是紧跟着main()地址而下, 参照 Program的Memory 也确实是跟着main() ,
理论上 mymy 应当是从:0x3e00地址开始的,从网上也查了很多资料,大多数人并不用Winavr, 请问有哪位高手知道是什么原因吗?
社区口号:开发路上不能单打独斗,帮助需要帮助的人,是对帮助过你的人最大的感谢!
是否是编译器优化的原因?
欢迎大家参加单片机工具淘宝1元起拍活动,详见网址:http://www.nbglin.com/hot.htm
返回列表