5148|11

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

高分求助,急!CE系统启动问题! [复制链接]

CE系统经常启动不起来,开始都能启动,断电后再隔上几秒系统就起不来了,原来给别人供过小批量,现在再供就出现这个问题,软件硬件都是原来的,这批板子把RTC晶振,音频模块,USB DEVICE去掉了,出现问题后又加上了,可还是有问题,请各位大哥大姐救命!我用的是s3c2440+WINCE4.2!下面是几次的调试信息,求各位达人帮忙看看问题在哪!
这个是系统起来的正常的调试信息:
Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
InitSDMMC()
-----triger SD card!-----
OEMInit Done...
Sp=ffffc7cc
OEMSetRealTime: Year: 2006, Month: 1, Day: 1, Hour: 12, Minute: 0, second: 0 rcnr=1h
OEMSetRealTime(register): Year: 6, Month: 1, Day: 1, Hour: 12, Minute: 0, second: 0 rcnr=1h
OEMSetAlarmTime: Year: 2006, Month: 1, Day: 1, Hour: 12, Minute: 0, second: 0 rcnr=0h
r
---------------Enable alarm RTC-----------------
PWR: Process Attach
OEMInterruptEnable()
-----SYSINTR_POWER----OEMInterruptEnable-----
………………………………………………以下省略

这个也是能够起来的调试信息:和上面比较没有显示rtc部分的信息:
Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
InitSDMMC()
-----triger SD card!-----
OEMInit Done...
Sp=ffffc7cc
PWR: Process Attach
OEMInterruptEnable()
-----SYSINTR_POWER----OEMInterruptEnable-----
……………………………………………………………………以下省略


这个是出现问题的调试信息:停在Sp=ffffc7cc就不往下执行了
Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
InitSDMMC()
-----triger SD card!-----
OEMInit Done...
Sp=ffffc7cc

最新回复

呵呵,关注,我也碰到了这个问题。  详情 回复 发表于 2009-8-18 23:42
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有可能是USB驱动引起的,把USB驱动去掉,试式
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
从你的打印信息来看,RTC驱动的打印没出来就死掉了,会不会是你的RTC驱动的问题。你查一下你的OAL部分的代码,看看从OEMInit开始到RTC驱动之间都作了些什么,应改可以找到问题。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
我发现在private下的loader.c文件中一个kernelfindmemory函数中在系统起来和起不来时进入了不同的if 和else中,正在努力看代码!!请知道这个函数的各位也指点指点!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
哦这个是因为内存里的数据掉电引起的

WinCe认为Warm Reset内存中的东西不会丢失,所以它在启动时检查一个Signature,如果符合它认为内存中的数据都还在,所以不再初始化
相反就认为是cold Reset,重新初始化内存管理的数据结构

现在的情况是你Cold Reset了,但是内存掉电不完全,导致Signature还在而内存中的其他数据已经被破坏了

解决的方法有两个种
1.断电后多等一会再启动
2.在OEMInit里调用NKForceCleanBoot强制Cold Boot
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

6
 
LogPtr = (fslog_t *)PAGEALIGN_UP ((pTOC->ulRAMFree+MemForPT)| 0x20000000);

if (fForceCleanBoot || (LogPtr->magic1 != LOG_MAGIC)) {
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
楼上的能不能说的详细点,我也找到是那的问题,我把if里去掉了,换成了1,问题解决了,可不知道原因!4楼应该正解!!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
你看一下在你的引导代码里有没有清memory的内容,最好清一下,之前我也遇到过这种问题?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
问题解决,感谢各位,结贴!!
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(中级)

10
 
引用 5 楼 szy41 的回复:
LogPtr = (fslog_t *)PAGEALIGN_UP ((pTOC->ulRAMFree+MemForPT)| 0x20000000);

if (fForceCleanBoot || (LogPtr->magic1 != LOG_MAGIC)) {
[/quote]


..............
[quote]引用 4 楼 hhyh612 的回复:
哦这个是因为内存里的数据掉电引起的

WinCe认为Warm Reset内存中的东西不会丢失,所以它在启动时检查一个Signature,如果符合它认为内存中的数据都还在,所以不再初始化
相反就认为是cold Reset,重新初始化内存管理的数据结构

现在的情况是你Cold Reset了,但是内存掉电不完全,导致Signature还在而内存中的其他数据已经被破坏了

解决的方法有两个种
1.断电后多等一会再启动
2.在OEMInit里调用NKForceCleanBoot强制Cold Boot

真是太牛X了,原来早有人遇到这个问题。嘿嘿......
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
遇到相同问题
试试!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
呵呵,关注,我也碰到了这个问题。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表