积极答复者
5.0移植到6.0在编译OALlib的过程中遇见环境变量dwNKDrWatsonSize的错误

问题
-
在5.0移植到6.0编译OALlib的过程中出现了问题。
BUILD: [Thrd:Sequence:Type ] Message
BUILD: [01:0000000076:ERRORE] D:\WINCE600\PLATFORM\mini2440\src\oal\oallib\.\init.c(53) : error C2065: 'dwNKDrWatsonSize' : undeclared identifier
不过警告有很多,当然在警告的最后也包含了对dwNKDrWatsonSize的警告:
UILD: [00:0000000023:WARNN ] File: D:\WINCE600\PLATFORM\mini2440\src\oal\oallib\Build.wrn does not exist (2).
BUILD: [01:0000000042:WARNN ] D:\WINCE600\PLATFORM\mini2440\SRC\Common\Intr_dvs\.\intr.c(628) : warning C4013: 'NKCallIntChain' undefined; assuming extern returning int
关于:NKCallIntChain,我上网搜了一下,大概意思是:
要生成错误报告的dump文件,需要至少有128K的内存。OAL层初始化函数OEMInit中,变量dwNKDrWatsonSize就是记录这个内存的大小。内核会从主内存区域的最后,保留出这一块内存。设置编译环境变量SYSGEN_WATSON_DMPGEN,让镜像包含有错误报告生成器的功能。
不知道有谁能帮我解释下?或者这个变量在那个文件里出现,我找了好多文件都没有发现。。。
再次要麻烦你们了!
答案
全部回复
-
恩,谢谢何老师。我试试,看了一些人的介绍:5.0里面直接外部引用的全局变量,在6.0里不能用了,而是通过
platform/common/src/inc/oal.h->public/common/oak/inc/oemglobal.h->public/common/oak/inc/bcoemglobal.h
#define dwNKDrWatsonSize g_pOemGlobal->cbErrReportSize
在6.0里把extern DWORD dwNKDrWatsonSize去掉就可以了,extern DWORD CEProcessorType;有这个定义的话也去掉。
不过又有其他的错误了,我先看看自己能解决不。
至于5.0移植6.0只要参考微软的官方移植文档是MSDN里面得这个Migrating a BSP to Windows Embedded CE 6.0目录嘛?