将BSP包makefile中的RAM_HIGH_ADRS 修改为 0x08000000
编译时会报以下错误:
intALib.o(.text+0x1fc): relocation truncated to fit: R_PPC_ADDR24 noActionIntEnt
详细问题表述见http://www.vxworksos.info/ae-problem-building-a-bootapp-with-ram_high_adrs-higher-than-0x03f00000
问题描述:
I’m trying to build a bootApp in Tornado AE of a custom BSP (A
modified version of ads860 BSP). My board needs to have ROM_BASE_ADRS
= 0×00000000 and LOCAL_MEM_LOCAL_ADRS = 0×50000000. I set
RAM_HIGH_ADRS = 0×50300000, RAM_LOW_ADRS = 0×50010000, ROM_TEXT_ADRS =
0×00000100 and ROM_SIZE = 0×00280000 in both 00bsp.cdf and makefile.
When I try to build the bootApp, I always received the following
error:
ldppc -X -e usrInit -Ttext 50300000 $/(PRJ_OBJS/) $/(bootKernel_OBJS/)
-o bootApp_reloc
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o: In function
`excConnectCode’:
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0×28):
relocation truncated to fit: R_PPC_ADDR24 excEnt
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0×34):
relocation truncated to fit: R_PPC_ADDR24 excExcHandle
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0x3c):
relocation truncated to fit: R_PPC_ADDR24 excExit
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0×48):
relocation truncated to fit: R_PPC_ADDR24 excEnt
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0×54):
relocation truncated to fit: R_PPC_ADDR24 excExcHandle
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0x5c):
relocation truncated to fit: R_PPC_ADDR24 excExit
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0×68):
relocation truncated to fit: R_PPC_ADDR24 excEnt
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0×74):
relocation truncated to fit: R_PPC_ADDR24 excExcHandle
C:/Tornado_AE/target/lib/objPPC860gnuvx/excConnectALib.o(.data+0x7c):
relocation truncated to fit: R_PPC_ADDR24 excExit
make[1]: *** [bootApp_reloc] Error 0×1
make[1]: Leaving directory `R:/bootApp/test_ads/PPC860gnu_romCopy’
make: Leaving directory `R:/bootApp/test_ads’
make: *** [bootApp_romCopy] Error 0×2
It seems that I cannot modified RAM_LOW_ADRS and RAM_HIGH_ADRS to be
higher than 0x03F00000 approximately.
Is their anyone that have an idea about the nature of my problem?
Thanks.
David
解决办法1:
My hunch is that the assembly language module excConnectALib.s, which sounds
like it provides support for connecting to the exception vectors in low
memory, uses instructions with 24-bit effective