2440 ce5.0下的eboot如何移植到ce6.0下?
我将2440 ce5.0下的除了eboot外的其他部分移植到了ce6.0下,现在我想将eboot也进行移植,当拷贝到ce6.0下进行编译时出现下面错误:
BUILD: [Thrd:Sequence:Type ] Message
BUILD: [01:0000000125:ERRORE] cs8900dbg.lib(cs8900dbg.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000126:ERRORE] smflash_lib.lib(fmd.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000127:ERRORE] fulllibc.lib(armsecgs.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000128:ERRORE] fulllibc.lib(fpraise.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000129:ERRORE] main.obj : error LNK2019: unresolved external symbol __security_cookie referenced in function SetIP
BUILD: [01:0000000130:ERRORE] eboot.lib(tftp.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000131:ERRORE] eboot.lib(dhcp.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000132:ERRORE] eboot.lib(edbg.obj) : error LNK2001: unresolved external symbol __security_cookie
BUILD: [01:0000000133:ERRORE] oal_memory_s3c2440a.lib(memory.obj) : error LNK2019: unresolved external symbol NKPhysToVirt referenced in function OALPAtoVA
BUILD: [01:0000000134:ERRORE] oal_memory_s3c2440a.lib(memory.obj) : error LNK2019: unresolved external symbol NKVirtToPhys referenced in function OALVAtoPA
BUILD: [01:0000000135:ERRORE] fulllibc.lib(armsecgs.obj) : error LNK2019: unresolved external symbol __report_gsfailure referenced in function __gsfailure
BUILD: [01:0000000136:ERRORE] fulllibc.lib(armsecgs.obj) : error LNK2019: unresolved external symbol __security_cookie_complement referenced in function __gsfailure
BUILD: [01:0000000137:ERRORE] E:\WINCE600\platform\smdk2440\target\ARMV4I\retail\eboot.exe : fatal error LNK1120: 5 unresolved externals
BUILD: [01:0000000142:ERRORE] EDITBIN : fatal error LNK1104: cannot open file 'E:\WINCE600\platform\smdk2440\target\ARMV4I\retail\eboot.exe'
如何解决?如何移植?
问题可能出现在如下两行,修改后再试试看吧。
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_memory_s3c2440a.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_cache_s3c2440a.lib \
当时移植2410的时候没有碰到这个问题。
下面是2410的sources文件,你参考一下。
TARGETNAME=eboot
TARGETTYPE=PROGRAM
RELEASETYPE=PLATFORM
EXEENTRY=StartUp
WINCECPU=1
NOMIPS16CODE=1
INCLUDES=$(INCLUDES);$(_PUBLICROOT)\common\oak\drivers\block\msflashfmd\inc
ADEFINES=-pd "_TGTCPU SETS \"$(_TGTCPU)\"" $(ADEFINES)
CDEFINES= $(CDEFINES) -DPPSH_PROTOCOL_NOTIMEOUT -DCOREDLL
LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:CV /FIXED:NO
TARGETLIBS= \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blmemory_arm.lib \
$(_PLATCOMMONLIB)\$(_CPUDEPPATH)\oal_cache_arm920t.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_kitl.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_log.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blnk.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blcommon.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\eboot.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\cs8900dbg.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ne2kdbg.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ddk_io.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\gsnull.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\smflashd_lib.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\dm9000dbg.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\bootpart_lib.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\s3c2410x_lcd_lib.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_displaylogo.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_rtc_s3c2410x.lib
SOURCES= \
startup.s \
util.s \
main.c \
debug.c \
ether.c \
flash.c \
am29lv800.c \
nand.c
WINCETARGETFILES=BootImage
硬件没变化的话,5.0的EBOOT和6.0的NK甚至可以混合使用。
我的sources文件如下:
TARGETNAME=eboot
TARGETTYPE=PROGRAM
RELEASETYPE=PLATFORM
EXEENTRY=StartUp
WINCECPU=1
NOMIPS16CODE=1
INCLUDES=$(INCLUDES);$(_PUBLICROOT)\common\oak\drivers\block\msflashfmd\inc;$(_TARGETPLATROOT)\Src\Common\Smartmedia\Fmd
ADEFINES=-pd "_TGTCPU SETS \"$(_TGTCPU)\"" $(ADEFINES)
CDEFINES=$(CDEFINES) -DPPSH_PROTOCOL_NOTIMEOUT -DCOREDLL
LDEFINES=-subsystem:native /DEBUG /DEBUGTYPE:CV /FIXED:NO
TARGETLIBS= \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_memory_s3c2440a.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_cache_s3c2440a.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_kitl.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_log.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blnk.lib \
$(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blcommon.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\bootpart.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\eboot.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\cs8900dbg.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ne2kdbg.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ddk_io.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\smflash_lib.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib \
SOURCES= \
startup.s \
util.s \
main.c \
debug.c \
ether.c \
flash.c \
usb.c \
usbs.s \
nand.cpp \
bitmap.c \
WINCETARGETFILES=BootImage
有fulllibc.lib,没有gsnull.lib;
在sources文件中加上$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\gsnull.lib后,发现错误变少了,但是依然有如下错误:
BUILD: [Thrd:Sequence:Type ] Message
BUILD: [01:0000000126:ERRORE] oal_memory_s3c2440a.lib(memory.obj) : error LNK2019: unresolved external symbol NKPhysToVirt referenced in function OALPAtoVA
BUILD: [01:0000000127:ERRORE] oal_memory_s3c2440a.lib(memory.obj) : error LNK2019: unresolved external symbol NKVirtToPhys referenced in function OALVAtoPA
BUILD: [01:0000000128:ERRORE] E:\WINCE600\platform\smdk2440\target\ARMV4I\retail\eboot.exe : fatal error LNK1120: 2 unresolved externals
BUILD: [01:0000000133:ERRORE] EDITBIN : fatal error LNK1104: cannot open file 'E:\WINCE600\platform\smdk2440\target\ARMV4I\retail\eboot.exe'
怎么办?
看看你的sources文件中是否有如下代码
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\gsnull.lib
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib
加上$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\gsnull.lib
试试看。
顶。我也遇到了,后来没解决放弃了。很多莫名其妙的link错误
我想移植,是因为我碰到烧写到SDRAM后,系统无法启动的问题,问题具体如下:
http://topic.eeworld.net/u/20100311/18/dc62fd0b-e2dc-443a-b972-414355eaac0f.html
请问luixing67,你是如何解决此问题的呢?
我想解决烧写到SDRAM的问题,是因为我碰到省电后无法唤醒的问题,问题具体如下:
http://topic.eeworld.net/u/20100311/19/f1f366ed-0760-4914-8140-c1cf6256e95b.html
请问luixing67,你是如何解决此问题的呢?