请教WinCE无法启动的问题

longdandan   2009-11-19 00:07 楼主
网上购买的S3C2440核心板,自己做了两轮底板。
核心板配合第一轮的底板,WinCE启动没问题。
可是用第二轮的底板死活起动不了,显示屏上出现了bootlogo,然后就是一片漆黑。无法进入WinCE。
重新刷boot和nk.bin,还是相同的症状。
仔细检查了两块底板,与核心板相连接的电路都是相同的。
我刚学习WinCE和ARM,不知如何排除故障,只有做对比。
现在看来是第二轮做的底板有问题,请各位大侠指点一下方向。多谢!
串口打印的信息如下:
[k] Download linux kernel
[y] Download root_yaffs image
[a] Absolute User Application
[n] Download Nboot
[l] Download WinCE boot-logo
[w] Download WinCE NK.bin
[d] Download & Run
[z] Download zImage into RAM
[g] Boot linux from RAM
[f] Format the nand flash
Boot the system
Set the boot parameters
Backup NAND Flash to HOST through USB(upload)
[r] Restore NAND Flash from HOST through USB
[q] Goto shell of vivi
Enter your selection: b

Read wince image from flash:
Clear the free memory
Sector addr on NAND: 0xb00
TotalSector: 0xcb7d
LoadAddress: 0x30200000
JumpAddr: 0x30201000

(就停在这里了)

回复评论 (9)

你可以看下JumpAddr: 0x30201000
这个跳转地址是否正确?
点赞  2009-11-19 00:58
两轮板子的硬件电路是完全一样的吗?
点赞  2009-11-19 09:02
用第一块板子烧写,然后到第二块板子上启动,保证NK烧写到板子上了
点赞  2009-11-19 09:18
多谢各位兄弟回复,抱歉来晚了。
现在用SHIP_BUILD开启串口调试信息,发现不是不能启动,而是一旦启动就马上关机了,不知道是为啥?
最后出现的信息是:
PWR_Close(0x3a6a0)
PCF: HW_Close
Prescaler:3
           OEMIoControl: Unsupported Code 0x10100d0 - device 0x0101 func 52
OEMIoControl: Unsupported Code 0x10100f8 - device 0x0101 func 62
BWSCON=0x22111120, BANKCON3=0x700, BANKCON4=0x700
BWSCON=0x22111120
[dm9: Chip signature is 2B000000
PMGET! System Power state is 'systemidle', flags 0x00000000
                                                           >>>>>>>>>>>>>>>>>>> s
tate == systemidle <<<<<<<<<<<<<<<<<<<
OEMIoControl: Unsupported Code 0x10100f4 - device 0x0101 func 61
WAVEDEV::HardwareContext::PowerDown
PCF: HW_PowerDown
+OEMPowerOff Called
pIntr->INTMOD = 0x0
pIntr->INTMSK = 0xf3733ffa
pIntr->INTSUBMSK = 0x7e97

后来,我把电脑板子之间的USB下载线断开,可以进入WinCE界面了,可是我一插上USB(板上的USBdevice口),马上就黑屏了,看下面的信息。
Explorer(V2.0) taskbar thread started.  //这时候已经进入WinCE桌面了

PWR_IST: pPWR->State = 0x2    //这里又关机了,不知道咋回事呀。
PMGET! System Power state is 'useridle', flags 0x00000000
                                                         >>>>>>>>>>>>>>>>>>> sta
te == useridle <<<<<<<<<<<<<<<<<<<
OEMIoControl: Unsupported Code 0x10100f4 - device 0x0101 func 61
USERLED: LED_PowerDown
HW_USBClocks::D4
WAVEDEV::HardwareContext::PowerDown
PCF: HW_PowerDown
+OEMPowerOff Called
pIntr->INTMOD = 0x0
pIntr->INTMSK = 0x71511fd8
pIntr->INTSUBMSK = 0x7ebf
点赞  2009-11-21 21:36
哦,不是插上USB就马上黑屏,是等了几秒钟,我正在纳闷,activesync怎么还没起动的时,就黑屏了,应该就是s3c2440检测到usb-device口有连接时黑屏的。
原来是一直连接着USB线,串口打印信息,USB下载bootloader和wince image,结果就是一进入WinCE就黑屏,有时候直接黑屏,有时候是刚好出现WinCE桌面。
这可能是什么原因造成的呀?
应该不是USB口短路呀,因为下载都是正常的。
点赞  2009-11-21 21:41
是否你的BSP的某个地方用到了外部中断用来关机,而USB插入的时候正好触发了那个中断?
看下USB插入的时候会影响哪个IO脚,然后在你的BSP里边搜索一下。
点赞  2009-11-22 00:48
问题在PWR的驱动那边,你的硬件触发了关机键。
如果这个驱动不重要,可以先把它卸载了,做后面的。
要是不可或缺,还是看下这个驱动的触发条件吧。
点赞  2009-11-22 06:24
PCF: HW_PowerDown
+OEMPowerOff Called
---------------------------------
问题在这里。楼主,小问题来的。

我记得是Powerbutton 按键驱动。呵呵。
估计你焊接的时候刚好满足了按键触发中断。

你找到PCF: HW_PowerDown 打印信息,然后把该驱动禁用,试试,估计绝对OK了
点赞  2009-11-22 08:40
多谢各位相助,确实是powerbutton驱动的问题。原来的开发板BSP中把EINT0当作了电源按钮输入,我的板子上EINT0没有任何连接,可能有时候有点什么干扰,就触发了中断,关机了。
后来给EINT0飞了一个上拉电阻就好了。
点赞  2009-12-8 23:53
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复