ADS分散加载请教
我有两个文件head.s和led.c,想把head.s加载到0x00,led.c加载到2048处,我不太会写scatter文件,请高手赐教,我写的如下load1 0
{
RO 0
{
head.o(STARTUP,+First)
*(+RO)
}
}
load2 2048
{
RO2 0xB0004000
{
led.o (*)
}
}
编译后,提示错误:L6224E: Could not place libspace.o(.bss) in any Execution region.
请问怎么回事,我错在哪里?应该怎么修改?关于分散加载文件有什么资料可以学习?
谢谢各位! Scatter文件看编译器的手册,以及动手测试。所有的信息就这两个来源。
出错主要在于 libspace.o(.bss) 这个C RuntimeLib没有地方加载。
*(+RO) -> *(+RW, +RO)这样就行了。 回复【1楼】dr2001
-----------------------------------------------------------------------
非常感谢dr2001的解答,但是我修改后这个错误仍然存在。
其实我根本不知道*(+RO)的意思,我是仿照别人的,我是要看看ADS1.2的手册吧? 回复【2楼】z4grubby
-----------------------------------------------------------------------
*(+RO) 是你的固定属性输入段
*通配符 RO readonly load1 0
{
RO 0
{
head.o(STARTUP,+First)
*(+RO)
}
}
load2 2048
{
RO2 0x2048
{
led.o (*)
}
}
页:
[1]