duzhig 发表于 2011-9-14 21:12:44

关于load_addr选项的疑问

load_addr选项中得mask是怎么用的 常见的是0XFFFFF和0xFFFFFF
我的内存共64M是不是写0xFFFFFF就可以了谢谢!

ksh 发表于 2011-9-16 12:46:53

不是,mask是用来掩掉可执行文件的section中偏移地址,假设你的elf文件有三个section,它们的加载地址分别为0xC024_6600, 0xc044_5800, 0xc060_0000,你想把这三个section加载到0x3000_0000的地址,则设置base=0x3000_0000, mask=0xFFFFFF 。SkyEye加载每个sectio都会把section加载到 ( base | (section_addr & mask))的地址,这样的话,你前面的三个section就可以加载到0x3024_6600, 0x3044_5800, 0x3060_0000

duzhig 发表于 2011-9-18 18:48:53

多谢康老师回复,明白了
页: [1]
查看完整版本: 关于load_addr选项的疑问