ECLIPSE链接脚本设置--实现分散加载

初学者对于ARM的内存映射问题真是不好理解,在使用全局数组的时候总是报错,我使用的IDE是ECLIPSE,在默认不使用链接脚本的时候,调试时程序被默认加载到0x8000这个地址,这个地址空间不是DDR空间地址,而且地址范围有限,导致全局数组定义越界而出错。那么,怎么才能将代码加载到DDR中去呢?一开始走了很多弯路,在网上查说是用分散加载技术才能把代码加载到指定的地方,但是大部分说的都是在ADS里怎么设置,而ECLIPSE中根本没有那些选项。后来查到用链接脚本也可以实现这个功能,试了一下,果然有效,现在终于可以将代码加载到任意的地方了,再大的数组都没问题,只要DDR够大就行,哈哈!


开发环境:

OS: Mac OS X

IDE:ECLIPSE + YAGARTO+ Zylin


设置方法:

在项目上点右键-->属性-->C/C++ Bulid-->Settings-->Tool Settings-->ARM Yagarto Mac OS X GCC C Linker-->General-->Script file-->选择你的脚本文件


重新编译一下,然后再调试即可。


最简单的链接脚本

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
	. =0x57000000;
	.text      :
	{
	  *(.text)
	}

	.rodata : { *(.rodata) }

	.data : { *(.data) }
	
	.bss : { *(.bss) }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值