none
5.0移植到6.0在编译OALlib的过程中遇见环境变量dwNKDrWatsonSize的错误 RRS feed

  • 问题

  • 在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,让镜像包含有错误报告生成器的功能。


    不知道有谁能帮我解释下?或者这个变量在那个文件里出现,我找了好多文件都没有发现。。。
    再次要麻烦你们了!
    2009年10月11日 7:23

答案

  • 看来出错的代码在oal自己的代码中。其实我感觉,可以把dwNKDrWatsonSize注释掉,禁止dump这个功能,或者自己在任何一个头文件里面定义一个就好了,看看5.0版本的bsp该变量定义在哪里的。据自己的经验,5.0移植6.0只要参考微软的官方移植文档,基本上工作量不大。



    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    • 已标记为答案 无解 2009年10月13日 1:54
    2009年10月12日 5:53
    版主

全部回复

  • 看来出错的代码在oal自己的代码中。其实我感觉,可以把dwNKDrWatsonSize注释掉,禁止dump这个功能,或者自己在任何一个头文件里面定义一个就好了,看看5.0版本的bsp该变量定义在哪里的。据自己的经验,5.0移植6.0只要参考微软的官方移植文档,基本上工作量不大。



    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    • 已标记为答案 无解 2009年10月13日 1:54
    2009年10月12日 5:53
    版主
  • 恩,谢谢何老师。我试试,看了一些人的介绍: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目录嘛?
    2009年10月12日 6:58
  • 恩,那个文档比较有用。
    我记得CE6刚出来的时候,我领着一个本科生,大概一周的时间,就把一个CE5的bsp移植到CE6上去了。当然,仅仅是可以跑,如果严格按照Production Quality要求的话,还有很多事情要做。

    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    2009年10月12日 12:34
    版主