ARM scatter文件的length如何计算?scatte文件如下:LOAD 0x30008000{RAM_EXEC +0{startup.o (init,+FIRST)* (+RO)}STACK +0x100000 UNINIT{stack.o (+ZI)}RAM +0{* (+RW,+ZI)}HEAP +0 UNINIT{heap.o (+ZI)}EXCEPTION_EXEC 0 OVERLAY ; exception region{exception.o (+RO)}}那么在ldr r2,=|Image$$EXCEPTION_EXEC$$Length|中,length是怎么算出来的?R2?

问题描述:

ARM scatter文件的length如何计算?
scatte文件如下:
LOAD 0x30008000
{
RAM_EXEC +0
{
startup.o (init,+FIRST)
* (+RO)
}
STACK +0x100000 UNINIT
{
stack.o (+ZI)
}
RAM +0
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
heap.o (+ZI)
}
EXCEPTION_EXEC 0 OVERLAY ; exception region
{
exception.o (+RO)
}
}
那么在ldr r2,=|Image$$EXCEPTION_EXEC$$Length|中,length是怎么算出来的?R2?

在分散加载中通常给出的是起始地址及范围,具体多少可以看编译完后的map文件,一目了然.