WinCE5.0 热启后网络异常!

vuvme   2010-4-9 16:20 楼主
WinCE5.0 热启后网络异常!
使用20100125版的TQBSP,热启动后网络不正常!

使用20100125版的TQBSP生成CE镜像,
冷启动后,pc端可以正常ping通SKY2440_V5.0开发板,一切正常;
但是热启后,pc端不可以ping通SKY2440_V5.0开发板!
为啥?

回复评论 (24)

在这个实验过程,PC端和WinCE端的IP地址均不改变!

同时发现WinCE5.0只支持热启动命令,不支持冷启动命令;

  1. //VC++编程实现WinCE重启
  2. #define IOCTL_HAL_GET_DEVICE_INFO CTL_CODE(FILE_DEVICE_HAL, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
  3. #define IOCTL_HAL_REBOOT          CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
  4. #define IOCTL_HAL_COLDBOOT        CTL_CODE(FILE_DEVICE_HAL, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
  5. BOOL KernelIoControl(DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned);
  6. void WINAPI Reboot(int nBootMode)
  7. {
  8.     int   inVal;
  9.     BYTE  outBuf[1024];
  10.     DWORD bytesReturned;

  11.     if(nBootMode == 0)
  12.         KernelIoControl(IOCTL_HAL_REBOOT, &inVal, 4, outBuf, 1024, &bytesReturned);   //0:热启动
  13.     else
  14.         KernelIoControl(IOCTL_HAL_COLDBOOT, &inVal, 4, outBuf, 1024, &bytesReturned); //1:冷启动(使用的WinCE5.0版本不支持)
  15. }

  16. Reboot(0);        //热启动(速度快)       
  17. //Reboot(1);        //冷启动(使用的WinCE5.0版本不支持)


那个知道怎雅才能让WinCE5.0支持冷启动命令?也就是应用软件发一个命令让CE系统冷启动。
谢谢
点赞  2010-4-9 16:23
以前用从4.2移植上来的2440BSP在wince5.0中用,热启后网络还是正常的
为啥这个“正宗的”wince5.0 BSP有这个问题呢?
点赞  2010-4-9 16:27
现在发现由看门狗引起的CE系统复位后,网络也是无法ping不通!
点赞  2010-4-12 17:51
没弄过。

帮顶下,期待学习下。

MARK.
点赞  2010-4-12 18:02
我是做linux的,过来学习下。
点赞  2010-4-12 19:40
这个得有时间细看一下BSP包中启动的驱动
点赞  2010-4-13 12:21
现在修改了一下DTQ2440\Src\Bootloader\Stepldr\startup.s文件,想stepldr.nb1不论那种情况,都按照冷启动来执行.
修改如下:
第一处:

  1. ; Are we waking up from a suspended state?
  2.     ;
  3.     ldr                r1, =0x01                ;重启全部设置为冷启类型_chang by Rn 20100415
  4.     ;ldr        r1, =GSTATUS2
  5.     ldr                r0, [r1]
  6.     tst                r0, #0x2
  7.     ; Yes?  Then go to the resume handler code...
  8.     bne                WAKEUP_POWER_OFF

第二处:

  1. ; If this is a cold boot or a warm reset, clear RAM because the RAM filesystem may be
  2. ; bad.  If this is a software reboot (triggered by the watchdog timer), don't clear RAM.
  3.     ;
  4.     ldr                r1, =0x01                ;重启全部设置为冷启类型_chang by Rn 20100415
  5.     ;ldr        r1, =GSTATUS2   ; Determine why we're in the startup code.
  6.     ldr                r10, [r1]       ;
  7.     str          r10, [r1]       ; Clear GPSTATUS2.
  8.     tst                r10, #0x4       ; Watchdog (software) reboot?  Skip code that clears RAM.
  9.     bne                %F40


重新生成stepldr.nb1,烧录到硬件,CE系统中的应用软件执行看门狗复位或是执行热启指令,是可以让硬件“冷启动”[至少通过LCD上的画面和等待时间表现和手动按下RESET健触发重启的效果一样],能正常进入CE系统,但是网络还是无法正常ping通,
郁闷!!!




点赞  2010-4-15 11:42
通过软件热启或是通过看门狗复位系统后,虽然PC端ping不通开发板,但是开发板上的按键还是可以正常使用,也就是说明中断能正常使用,板子上的其他功能也能正常使用。

那这里就很奇怪了,为啥都有网络有问题?
点赞  2010-4-15 16:52
这是因为cpu复位了,而网卡并没有复位。有可能系统找不到网卡的。
点赞  2010-4-15 20:57
引用: 引用 10 楼 paul85 的回复:
这是因为cpu复位了,而网卡并没有复位。有可能系统找不到网卡的。


这么神奇么?

不是都执行了冷启动了么?
点赞  2010-4-15 22:29
我的wifi网卡是这样的。断电后重启是正常的。如果按复位键重启就会不正常。原因是wifi没有收到cpu的复位信号,造成了不同步。希望这么描述更清楚。
点赞  2010-4-16 10:38
恩,那看来有点启发!

点赞  2010-4-16 15:08
网卡怎么控制的,有没有用到GPIO口控制,如果用到了,在系统复位启动之前断开,启动后打开
点赞  2010-4-16 16:47
引用: 引用 14 楼 hudaweikevin 的回复:
网卡怎么控制的,有没有用到GPIO口控制,如果用到了,在系统复位启动之前断开,启动后打开


看来又得看看驱动
点赞  2010-4-16 19:15
MARK,学习!
点赞  2010-4-16 22:28
看来又得看看驱动
点赞  2010-4-16 23:17
引用: 引用 12 楼 paul85 的回复:
我的wifi网卡是这样的。断电后重启是正常的。如果按复位键重启就会不正常。原因是wifi没有收到cpu的复位信号,造成了不同步。希望这么描述更清楚。


learning 从未搞过网卡,wifi正在开始,不过别人提供了源码的。呵呵
点赞  2010-4-17 09:07
wifi的电流有100MA以上,要用IO口来控制电源的话,需要用继电器来解决.否则需要用IO口来控制wifi的中断接口.
点赞  2010-4-17 13:26
wifi的电流有100MA以上,要用IO口来控制电源的话,需要用继电器来解决.否则需要用IO口来控制wifi的复位接口.
点赞  2010-4-17 13:26
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复