Hi,
I am porting an application from ARM compiler V5 to ARM Compiler V6.0. I have been able to compile the application.While linking there is an issue, we are having #ifdev REV1 in thr scatter file, which is working properly in ARM Compiler V5, but the same is not working in ARM Compiler 6. Ihave done --predefine=-DREV1 while linking, but i got the below error
Error: L6229E: Scatter description C:/Projects/Xnxx/Code/SDK_ARM-V6-Final/xxxxyyy/memory_map.scat is empty.Error: L6372E: Image needs at least one load region.Not enough information to list image symbols.Not enough information to list the image map.Finished: 2 information, 4 warning and 2 error messages.
The scat file shall look like
#ifdef REV1
LR_DATA_RAM 0x20000000 NOCOMPRESS 0x39F00 { ER_DATA_RAM 0x20000000 { * (+RW, +ZI) } BSP_SERVICE_OUTPUT 0x20039F00 EMPTY 0x100 { } ARM_LIB_HEAP 0x2003A000 EMPTY 0x4000 { } ARM_LIB_STACK 0x2003E000 FILL 0xDEADBEEF 0x2000 { }}
}
#else
LR_DATA_RAM 0x20000000 NOCOMPRESS 0x35F00 { ER_DATA_RAM 0x20000000 { * (+RW, +ZI) } ARM_LIB_HEAP 0x20035F00 EMPTY 0x4000 { } BSP_SERVICE_OUTPUT 0x20039F00 EMPTY 0x100 { } ARM_LIB_STACK 0x2003A000 EMPTY 0x1FE0 { }}
#endif
Has anyone faced this issue earlier? Could anyone suggest how to overcome this issue?
Regards,
Santhosh
So what happens if you get rid of all the preprocessor stuff, and just use a straight Scatter file?
If I dont use the preprocessor stuff, I got the below error
Error: L6260E: Multiple load regions with the same name (LR_DATA_RAM) are not allowed.Error: L6261E: Multiple execution regions with the same name (ER_DATA_RAM) are not allowed.Error: L6261E: Multiple execution regions with the same name (ARM_LIB_HEAP) are not allowed.Error: L6261E: Multiple execution regions with the same name (BSP_SERVICE_OUTPUT) are not allowed.Error: L6261E: Multiple execution regions with the same name (ARM_LIB_STACK) are not allowed.
So you need to fix those errors, then!
Fix the basic errors in the Scatter file before trying to add complications like preprocessing!
Santhoshkumar82 said:If I dont use the preprocessor stuff
You did make it into a valid Scatter file for just one target - didn't you ?
Hi Neil,
If I didnt add #ifdef REV1 and #else to the scatter file, I am able to compile in ARM compiler V6.
Also with the #ifdef in scatter file, I am able to compile in ARM compiler 5 toolchain, but not able to compile ARM Compiler 6.
The scatter file is for the Linker - not the compiler.
Santhoshkumar82 said:not able to compile (sic?) ARM Compiler 6
You mean you're not able to Link ?
Sorry, Yes I am not able to link. I am using the linker armlink that came with the package arm compiler(6.13).