阅读:1627回复:2
尊敬的版主,各位高手:如果要在eboot中使用malloc应该在source文件中加入哪些库呢??非常感谢您!!
尊敬的版主,各位高手:
请教一个问题,在bootloader中如何调用malloc和free函数? 我在eboot中调用malloc函数,编译就是无法通过,我试着在source文件中加入库,还是不行。可以告诉我如果要使用malloc应该在source 文件中加入哪些库吗?? 程序中我加了这些头文件: #include <stdio.h> #include <stdlib.h> 但是一旦调用p_tmp_pkt = (UINT8 *)malloc(PKTLEN_1K ); 编译时就会出错: BUILD: [01:0000000170:ERRORE] fulllibc.lib(free.obj) : error LNK2019: unresolved external symbol LocalFree referenced in function free BUILD: [01:0000000171:ERRORE] fulllibc.lib(malloc.obj) : error LNK2019: unresolved external symbol LocalAlloc referenced in function _nh_malloc BUILD: [01:0000000172:ERRORE] C:\WINCE500\platform\VIASOC\target\ARMV4I\retail\eboot.exe : fatal error LNK1120: 2 unresolved externals 我的source文件引用的库如下: TARGETLIBS = \ $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blcommon.lib \ $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_blnk.lib \ $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_memory_arm.lib \ $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_kitl.lib \ $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_log.lib \ $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_other.lib \ $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\vt3300_dbgserial.lib \ $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\vt3300_io.lib \ $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\oal_ethdrv_lan91c_vt3300.lib \ $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\eboot.lib \ $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ne2kdbg.lib \ $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib 还缺什么呢??非常感谢您的帮助!! |
|
沙发#
发布于:2007-07-31 09:28
Re:尊敬的版主,各位高手:如果要在eboot中使用malloc应该在source文件中加
如果数据量不大的话,建议直接用数组 |
|
板凳#
发布于:2007-08-04 21:02
Re:尊敬的版主,各位高手:如果要在eboot中使用malloc应该在source文件中加
malloc需要操作系统的内存管理来支持,这个东西本身很复杂,BOOT程序中一般都不会支持.但BOOT中可以访问任意一个内在地址,所以如果要使用大内存块,直接指定一个SDRAM地址就行了.只是需要注意不要与堆栈等重叠. |
|
|