none
wince debug 编译出错 RRS feed

  • 问题

  • 我编译wince debug模式出现下面错误
    Error: Ram start overlaps rom binary
    Rom end :  0x8e5b2e84
    Ram start: 0x8e03b000
    NK
    physfirst 8c200000
    physlast 8e5b2e84
    请问怎么回事?

    我的config.bibru如下:

     ; NK name
     #define NKNAME NK
     
     ; NK Start address
     #define NKSTART  8C200000
     #define NKLEN  01e00000 ;01D00000
     
     #define RAMSTART 8E000000 ;8E000000
     #define RAMLEN  01F00000

     $(NKNAME)   $(NKSTART)      $(NKLEN)    RAMIMAGE
     RAM         $(RAMSTART)     $(RAMLEN)   RAM

    2009年3月19日 8:15

答案

  • 2 Solutions
    1. Add AUTOSIZE=ON
    2. Modify
    #define NKLEN 02400000
    #define RAMSTART 8E600000
    #define RAMLEN 01900000

    因為 build 出來的 nk size 太大了, 超過原先的設定, 所以無法產生 nk
    1. 由 platform builder 自動調整 nk 及 ram 的大小及位址.
    2. 自己手動調整, 但下次更改時, 可能要在手動調整一次

    Paul, Chao @ Techware
    2009年3月19日 10:39

全部回复

  • 2 Solutions
    1. Add AUTOSIZE=ON
    2. Modify
    #define NKLEN 02400000
    #define RAMSTART 8E600000
    #define RAMLEN 01900000

    因為 build 出來的 nk size 太大了, 超過原先的設定, 所以無法產生 nk
    1. 由 platform builder 自動調整 nk 及 ram 的大小及位址.
    2. 自己手動調整, 但下次更改時, 可能要在手動調整一次

    Paul, Chao @ Techware
    2009年3月19日 10:39
  • 在config.bib里添加了AUTOSIZE=ON,
     编译成功了,nk.bin有35.5M,可是通过PB下载到目标机时在传输到28.8M时出现错误下面提示:
    download failed:review your download service selection and configuration.

    不知道这是怎么回事?

    对了,您能否给我解释下AUTOSIZE=ON的意思?
    我看了相关的资料还是不太理解。


    还有咱们的这个NK.bin最终是在memery里定义的RAM段中运行还是在NK段里运行,我现在很糊涂了???
    2009年3月19日 12:17
  • 1. 可否將 eboot 所輸出的 debug message 皆傳上來以好判斷.
    2. config.bib 中有兩個主要的 region
        NK: 放置你所 build 出來的 nk image, size 要比你所 build 出來的 image 相同或大些, 你一開始的錯誤就是這個範圍留的大小不夠大
        RAM: wince 運行時所需的記憶體, 用來做為變數儲存, heap, stack, object store..... 等.

    通常, 實體 ram 大小 = NK + RAM + reserved.
    以你的例子, SDRAM start address(VA) = 0x8C000000, size maybe 64MByte
    8C000000 ~ 8C200000 =  2MByte = reserved for other used (like as eboot, frame buffer, etc.)
    8C200000 ~ 8E000000 = 30MByte = windows CE image
    8E000000 ~ 8FF00000 = 31MByte = ram used by wince
    8FF00000 ~ 90000000 =  1MByte = reserved for other used (like as eboot, frame buffer, etc.)


    3. AUTOSIZE 的說明, Platform Builder 內的 online-help 有很詳盡的說明, 你可以參考 http://msdn.microsoft.com/en-us/library/aa909394.aspx
    若以上面的例子, 那就是 platform builder 會自動根據 nk 的 size 需求, 讓 nk + ram 還是在 8C200000 ~ 8FF00000, 自己調整 8E000000 這個位置值, 若是 nk 加大 1 M, 則 nk=8c200000~8e100000, ram=8e100000~8ff00000, 若是 nk 減少 1M, 則 nk=8c200000~8df00000, ram=8df00000~8ff00000.

    Paul, Chao @ Techware
    2009年3月20日 2:48
  • 看了你的讲解收获很大谢谢你了!
    我是用PB下的,没用到EBOOT吧!真不知道这是为什么原因,都编译成功了,怎么下不进去到RAM呢?很奇怪啊!
    2009年3月24日 8:14