编译出现以下的错误:
BUILD: [00:0000000078:PROGC ] Building LINK Pass in D:\WINCE600\PLATFORM\LPC32XX\src\drivers\SERIAL\ directory.
BUILD: [01:0000000089:PROGC ] Linking D:\WINCE600\platform\LPC32XX\target\ARMV4I\debug\SERIAL.dll
BUILD: [01:0000000108:ERRORE] bsp_clkpwr_support.lib(bsp_clkpwr_support.obj) : error LNK2019: unresolved external symbol OALPAtoVA referenced in function clkpwr_get_base_clock_rate
BUILD: [01:0000000109:ERRORE] D:\WINCE600\platform\LPC32XX\target\ARMV4I\debug\SERIAL.dll : fatal error LNK1120: 1 unresolved externals
*************************************************
SOURCES文件里
SOURCELIBS= \
$(_TARGETPLATROOT)\lib\$(_CPUDEPPATH)\bsp_clkpwr_support.lib \
***************************************************
clkpwr_get_base_clock_rate这个函数是在bsp_clkpwr_support.c下的,也就是在bsp_clkpwr_support.lib 库里边
而bsp_clkpwr_support.c这个文件在SRC下COMMON下的CLKPWR目录下(BSP自带的程序部分)
在那个函数里pClkPwr = (CLKPWR_REGS_T *) OALPAtoVA((UINT32) CLKPWR, FALSE);
请问为什么OALPAtoVA会提示没有定义呢?
SOURCES文件
- TARGETNAME=SERIAL
- RELEASETYPE=PLATFORM
- TARGETTYPE=DYNLINK
- DLLENTRY=_DllEntryCRTStartup
- FILE_VIEW_INCLUDES_FOLDER= \
- serial.h
- INCLUDES= ..\..\inc;$(INCLUDES)
- SOURCES= \
- bspIrda.c \
- bspserial.c \
- serial.c \
- serialhw.c \
- CDEFINES=$(CDEFINES) -DSERIAL_EXPORTS
- CDEFINES=$(CDEFINES) -DUSE_NEW_SERIAL_MODEL
- TARGETLIBS= \
- $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ddgpe.lib
- SOURCELIBS= \
- $(_TARGETPLATROOT)\lib\$(_CPUDEPPATH)\bsp_clkpwr_support.lib \
- $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\com_mdd2.lib \
- $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
- $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
OALPAtoVA是开源的,你要把他连接进来,你参考一下别的驱动是怎么实现的,或者找个5.0BSP of 2440
貌似你是什么MIPS的哦。5.0BSP我已经长传到eeworld了
http://download.eeworld.net/source/759134——在这里可以下载,你下来参考一下。
哈哈,楼主你好郁闷啊,一个人在战斗。
我们公司一个产品异想天开用资料很少的ATMel来做产品,现在郁闷了好久了。
看来还是三星够狠,不得不买他的产品。
晕死, 你的driver里用到了Oal中的东西当然不行啊, 把OALPAtoVA用VirtulAlloc等替换吧.
连接的库放前面吧!看别人怎么写SOURCES文件的!
我的是WINCE6.0的平台,是一个人在奋斗着。。
那个函数的作用是获取串口CLK时钟,是在SRC下COMMON下的CLKPWR目录下(BSP自带的程序部分) ,那个函数是不能修改的吧
库放在前面也一样的,因为他已经打开了bsp_clkpwr_support.lib 这个库,是提示clkpwr_get_base_clock_rate这个函数里的OALPAtoVA有问题
库已经生成了,除非就象3楼所说的问题了。。
事情的起因是源于下面这样的一则广告贴(目前幸运还没有被删除,可以链接成功):
[/url]
事情的发展是在这个贴:
我在移动平台专区被封权限是为什么?这个要找谁?
[url=http://topic.eeworld.net/u/20081118/08/cf7d0af3-35cc-4fb7-9dc2-4567041b89e5.html?seed=1367941736 ]
事情的最新进展是这样的:
[抗议]对硬件/嵌入开发的某些版主武断,简单,粗暴的执法方式表示严重的抗议!
[/url]
当小贩被野蛮城管打死后之eeworld版
[url=http://topic.eeworld.net/u/20081120/09/8af968cb-af00-4ddb-8604-dab1fb5421be.html?seed=613093649]
我重申一下,我一直不是在为我发广告贴辩护,我是在为处理此事的过程中受到的不合理对待即wxf0204 武断,简单,粗暴加野蛮的方式执法的行为,就我看跟城官差不多,对残踏我作为eeworld网友尊严,无视我作为eeworld网友存在的言行进行回击,悍卫我作为eeworld网友所具有的最基本的权利,而且之前连一个申诉的地方都没有,也没有找到班主封ID,删除留言的规定!
别人城管也不会第一次去执法看到有小贩就直接打死,也会先劝导,就第一次收了别人小贩的东西也会开个条说一下情况,开个清单,收了什么,什么时候来取,要受到何种处罚,你们这帮斑猪不通人性,看到小贩直接毙了,之前之后,不声不响,不闻不问,不通人性,比城管还城管...................
而且还不知反省,以暴抑暴,导致事件恶性循环!
大家注意抗议的主题,不是对删除贴子,封ID有异议,对此贴前已经说的很清楚,现在的问题是抗议某些斑猪或者大部分斑猪在处理此事时粗暴的方式,野蛮的态度,狭隘的思想,如果在封ID之前给予警告,封ID之后对被封ID用户说明情况如确认被封的具体原因,封的时间以及当前所犯事件的严重程度等,事情何以至此,现在某些斑主为撑面子,继续执迷不悟!
再者跟城管没得比,别人城管之前还有警告,收了东西之后还要开个单子,通知什么时候去取回,有什么处罚,你们的粗野方式就是直接毙了,一了百了,跟原始人一样,难不成eeworld都是这样,真没人性化,我看别的论坛都是有流程,有说明,有警告,有通知!而且应该还有申诉的渠道,不能一手遮天,一毙完事!
知会一下,举手之劳,别的论坛都这么做......你们不这么做就是不通人性.........你自己想下,你这样野蛮,我为何要惧怕你的淫威,你以为你是谁,做错事直接闷棍打死,真正怎么死的都不知,...........不给没有前科的人以任何机会,手段之残忍,心恨之至极...........令人发指........让人不服,还不让辩解.....................
引用: 引用 4 楼 eagle1597 的回复:
晕死, 你的driver里用到了Oal中的东西当然不行啊, 把OALPAtoVA用VirtulAlloc等替换吧.
那就是说要用到的这个时钟寄存器得重新影射才能用?不能调用他这个bsp_clkpwr_support.lib 来调用他吗?
OALPAtoVA 是OAL里用到的东西, 你是在Driver层, 怎么能用呢?
bsp_clkpwr_support.lib 这个lib估计是在BSP包中的Oal中用吧.
如果用只是要用到的这个时钟寄存器, 你自己做映射啊.
要是CE5.0的话, OalPAtoVA倒是可以直接移过来用, CE6.0的话不行喽, 还是自己做映射再去访问.