9412|34

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Wince系统大于40M!!! [复制链接]

    请教给位大仙,我已经把wince系统扩展,可以下载并运行40M以内的NK。
    然而当NK超过40M之后,依照同样的方式仍然可以下载NK到NANDFLASH中,但是系统启动的过程中停住,不明白原因,希望大仙们指教。
    是不是WINCE里面对超过40M的NK有什么限制?



    以下是我系统启动过程中停住的打印信息截图:
   ……
    Read OS image to BootMedia
ImageLength = 35328512 Byte, dwRegionStart : a0200000
Start Page = 1408, End Page = 5720, Page Count = 4313
.................................
Read OS image to BootMedia Success
System ready!
Preparing for download...
waitforconnect
INFO: OEMLaunch: Jumping to Physical Address 0x3023277Ch (Virtual Address 0x8023277Ch)...


Windows CE Kernel for ARM (Thumb Enabled) Built on Aug  4 2008 at 18:38:38
ProcessorType=0926  Revision=5
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 80232984
gpgcon:0x5550000
DCache: 128 sets, 4 ways, 32 line size, 16384 size
ICache: 128 sets, 4 ways, 32 line size, 16384 size
FCLK:400000000, HCLK:133333333, PCLK:66666666
InitDisplay......
backlight on......
SPI..Init......
OEM INIT......
MPLLCON=0x80640061
HCLKCON=0xFFFD9A06
PCLKCON=0xFFFBFF9F
SCLKCON=0xFFE1D7E2
BANKCFG=0x00049253
BANKCON1=0x44000050
BANKCON2=0x005D0035
BANKCON3=0x44000032
REFRESH=0x0000040D
-OEMInit\nSp=ffffc7cc

到这就停住了,不知道什么原因。恳请指教!



最新回复

如果是扩展的两片SDRAM就必须实现以下函数,并且nk大小不能跨sdram BOOL OEMGetExtensionDRAM(UINT32 *pMemoryStart, UINT32 *pMemoryLength)  详情 回复 发表于 2010-5-25 09:40
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
内存分配问题,看看config.bib里的RAMIMAGE段配置是否够大
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我们的NK接近40M,没有遇到楼主的问题。

MARK,学习下!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
没有这个限制。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
在config.bib里面,我已经分配了45M的空间给系统,如果config.bib里面不分配的话,从USB下载的系统到RAM中的过程就停住。这是我的理解。
不知道在config.bib里面除了调整以下的,还需要调整什么?
    NK      80200000  02C00000  RAMIMAGE     ;44M for NK
    RAM     82E00000  01200000  RAM       ; 18M for USER

望大仙指导
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

6
 
内存不足,试试看在PB窗口下的Platform->settings->Build options中的复选框“Enable Images Larger than 32M”打钩即可!要使用128M或更大内存,看帮助文档的Supporting or Simulating More than 64 MB of RAM文档!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 

Platform->settings->Build options中的复选框“Enable Images Larger than 32M”
这个我们已经打钩了。
我们板子原本是64M的,后来我们给扩展成128M,当NK小于40M的时候,系统起来之后,查看内存,可以看到扩展已经成功,因为显示的用户内存有80多M。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
http://www.cnblogs.com/feishanm/archive/2009/08/04/1538284.html
看看这里
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢楼下给的参考,这个步骤我们已经实现,在系统小于40M的时候,我们的系统可以正常运行,但是当系统大于40M的时候,系统在启动的过程中停住,见我给出的打印信息。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

10
 
失误,失误!!!
谢谢楼上给的参考,这个步骤我们已经实现,在系统小于40M的时候,我们的系统可以正常运行,但是当系统大于40M的时候,系统在启动的过程中停住,见我给出的打印信息。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 
麻烦楼上的兄台给予指导,需要做怎样的修改?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

12
 
config.bib中设置:
如你所说:40M

MEMORY

IF IMGMULTIXIP !

IF WINCEDEBUG = retail
#define        NKNAME                NK
#define        NKSTART                80100000
#define        NKLEN                02800000        ; 40 MB

#define        RAMNAME                RAM
#define        RAMSTART        82900000
#define        RAMLEN                03700000        ;55 MB
ELSE
#define        NKNAME                NK
#define        NKSTART                80100000
#define        NKLEN                03700000        ; 55 MB

#define        RAMNAME                RAM
#define        RAMSTART        83800000
#define        RAMLEN                03000000        ; 56MB --> 48 MB
ENDIF
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

13
 
以下是我们做项目时候,关于扩展系统NK时的文档,望大家指正。
按照下面步骤,系统NK扩展在40M以内没有问题,但是当系统超过40M之后,还是依照同样的办法扩展,就出现了系统启动停住的问题,见我开始给出的相应打印信息。

望大仙们指点!!!

大于32M的NK烧写问题
通常情况,wince系统默认的image大小是32M,一般这个大小是够了。但如果添加的组件比较多,生成的NK.bin就会超过32M,这时就需要做一些修改了。
1、将项目的配置属性 "Run-time image can be larger than 32MB (IMGRAM64=1)"打上勾。
2、修改WINCE500\PLATFORM\SMDK2450\Src\Bootloader\Eboot.Whimory\loader.h
//
// Nk Memory reigions defined in config.bib...
//
#define ROM_RAMIMAGE_START          0x80000000
#define ROM_RAMIMAGE_SIZE            0x02800000
这里我将image调整到40M。
3、修改WINCE500\PLATFORM\SMDK2450\Files\config.bib
MEMORY
IF IMGMULTIXIP !
IF WINCEDEBUG = retail
    NK      80200000  02800000  RAMIMAGE
    RAM     82A00000  01600000  RAM
````
        ROMSTART = 80200000
        ROMWIDTH = 32
ROMSIZE = 02800000
修改规则:
NK start 80200000为image开始,与Eboot对应
NK size 2800000 为image大小,与Eboot对应
RAM start 82A00000为RAM开始地址,NKstart+NKsize=82A00000
RAM size 01600000为RAM大小,
84000000(64M flash)-RAMSTART=01600000
ROMSTART = NKstart
ROMSIZE = NKsize
由此可知,NK调大,RAM就会减小。此外ROMSIZE还是设置NK.nbX的大小。
4、修改WINCE500\PLATFORM\SMDK2450\Src\Inc\image_cfg.h
#define IMAGE_WINCE_RAM_SIZE            0x02800000
5、修改WINCE500\PLATFORM\SMDK2450\Src\Bootloader\Eboot.Whimory\usb.c里面的DMA地址:
#define DMABUFFER 0x31000000
#define USBDEV_BASE 0xB0B00000 // VIRTUAL Address
#define pISR (*(volatile unsigned *)(0x30000000+0x18)) // Virtual Address 0x0 is mapped to 0x30000000, ISR Address is VA 0x18
这时你的内核只要不超过40M就OK了。



上面的步骤使我们参考使用,还望大仙们不吝赐教
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

14
 
我没有遇到过你说的这种情况。只是改了内存映射的大小就可以了。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

15
 
谢谢给位的指点,我再尝试几次,看看是不是我哪里没有弄清楚。
希望大家看看我上面发的修改步骤是不是哪里错了。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

16
 
mark
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(中级)

17
 
是不是你在你的eboot中对40M以后的空间有利用,产生冲突?或者在kernel driver中分配了固定地址的内存?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

18
 
觉得这个帖子应该加精
帮楼主顶上去
顺便学习一下
——————————————————————————
JOYZML(菜鸟朱铭雷)
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

19
 
似乎我现在也处于这个情况,出错了呢
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 17 楼 alex_gogo 的回复:
是不是你在你的eboot中对40M以后的空间有利用,产生冲突?或者在kernel driver中分配了固定地址的内存?


Eboot中对RAM空间的使用是在前2M的空间,没有涉及到后面的。

kernel driver中分配了固定地址的内存?
这个我就不清楚了。因为对这个系统掌握还不足。


本来想通过打印信息搜索系统停住的原因。但是不同的层之间函数名不一样,所以找不到停在什么位置,因为什么停住了。



不知道哪位大仙可以给一个WINCE 系统内核启动的流程图,或者说明启动步骤什么的。

我知道在Eboot中有这样一个类似的主函数Blcommon来管理Eboot的运行的调度,在系统NK运行中有没有主要一个类似的主函数呢???
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表