社区
嵌入开发(WinCE)
帖子详情
关于WinCE系统重启的问题
kuoshuang
2012-08-01 08:18:59
我在WinCE上编写的软件,运行时间长了系统就可能重启,查看调试串口输出的信息,没有显示错误的信息,具体显示为……+GIO_IOControl,接下来是-GIO_IOControl,接下来就是系统启动的信息了。我认为软件问题的可能性不大,不知道有没有哪个大侠知道原因,谢谢!
...全文
378
14
打赏
收藏
关于WinCE系统重启的问题
我在WinCE上编写的软件,运行时间长了系统就可能重启,查看调试串口输出的信息,没有显示错误的信息,具体显示为……+GIO_IOControl,接下来是-GIO_IOControl,接下来就是系统启动的信息了。我认为软件问题的可能性不大,不知道有没有哪个大侠知道原因,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuoshuang
2012-08-16
打赏
举报
回复
多谢楼上各位大侠解答,现在不重启了。但是不是解决了,因为这几天在忙其它的事,没管这个,这两天重新试了下,又不重启了……
以前碰到过这种诡异的情况,当时我开了四个串口线程,正常工作,后来又开了个线程通过网口向PC机写数据,但是奇怪的是网口线程一开系统就非常卡,设置优先级也不行,后来那个方案就不用了,没加网口通信的功能。但是一个月左右后偶尔又试了下(以前生成那个exe文件,没改任何东西),又好了,而且优先级也能设置了……
真是诡异啊!!!
一介布衣萧萧
2012-08-15
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
引用 10 楼 的回复:
去掉gio相关驱动试试是否重启~估计不会是简单这个驱动引起的,比较设计内核里面很多打印消息都屏蔽掉了
我之前试了,将程序中操作IO的语句去掉就不会重启了,专门写个操作IO的测试程序,每隔一定时间(几十毫秒)便对其写数据,最终重启了。而且如果是两个线程操作同一个一个IO的话重启的时间比较快,但是如果一个线程操作一个的话则重启前运行的时间较长。不知道是什么原因啊?……
[/Quote]
两个线程对一个IO进行读写操作,这个有问题吧!为啥不搞成一个线程对IO进行读写操作,把对IO进行读写进行队列化,线程中根据队列中的任务进行IO操作,这样可以解决互斥的问题。
kuoshuang
2012-08-15
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
去掉gio相关驱动试试是否重启~估计不会是简单这个驱动引起的,比较设计内核里面很多打印消息都屏蔽掉了
[/Quote]
我之前试了,将程序中操作IO的语句去掉就不会重启了,专门写个操作IO的测试程序,每隔一定时间(几十毫秒)便对其写数据,最终重启了。而且如果是两个线程操作同一个一个IO的话重启的时间比较快,但是如果一个线程操作一个的话则重启前运行的时间较长。不知道是什么原因啊?
AMOROUS
2012-08-15
打赏
举报
回复
去掉gio相关驱动试试是否重启~估计不会是简单这个驱动引起的,比较设计内核里面很多打印消息都屏蔽掉了
kuoshuang
2012-08-15
打赏
举报
回复
[Quote=引用 12 楼 的回复:]
引用 11 楼 的回复:
引用 10 楼 的回复:
去掉gio相关驱动试试是否重启~估计不会是简单这个驱动引起的,比较设计内核里面很多打印消息都屏蔽掉了
我之前试了,将程序中操作IO的语句去掉就不会重启了,专门写个操作IO的测试程序,每隔一定时间(几十毫秒)便对其写数据,最终重启了。而且如果是两个线程操作同一个一个IO的话重启的时间比较快,但是如果一个线程操作一个的话则重启前运行的时……
[/Quote]
但是一个线程的话也会重启啊,这个不存在互斥问题
kuoshuang
2012-08-14
打赏
举报
回复
[Quote=引用 8 楼 的回复:]
引用 6 楼 的回复:
那个驱动是GPIO驱动,我这几天试了下,不操作IO口就不会重启,后来专门写了个测试程序,只是循环的写IO口,测试后发现系统重启了。现在能确定是IO的问题,但是那个驱动是买开发板时带的,给厂家发邮件又一直不回。唉,深圳天漠科技啊,你的服务怎么就这么差啊!!!……
这个GPIO是初始化的时候在设置寄存器可能设置的不对,你如果有驱动的源码,就根据 芯片datash……
[/Quote]
我现在正在查,但是有一点我想不明白,为什么这个跟操作IO的时间有关系呢?同时操作4个的话四五个小时就重启了,两个的话十来个小时……
lansen0815
2012-08-10
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
那个驱动是GPIO驱动,我这几天试了下,不操作IO口就不会重启,后来专门写了个测试程序,只是循环的写IO口,测试后发现系统重启了。现在能确定是IO的问题,但是那个驱动是买开发板时带的,给厂家发邮件又一直不回。唉,深圳天漠科技啊,你的服务怎么就这么差啊!!!……
[/Quote]
这个GPIO是初始化的时候在设置寄存器可能设置的不对,你如果有驱动的源码,就根据 芯片datasheet 对着程序查找错误原因
kuoshuang
2012-08-10
打赏
举报
回复
那个驱动是GPIO驱动,我这几天试了下,不操作IO口就不会重启,后来专门写了个测试程序,只是循环的写IO口,测试后发现系统重启了。现在能确定是IO的问题,但是那个驱动是买开发板时带的,给厂家发邮件又一直不回。唉,深圳天漠科技啊,你的服务怎么就这么差啊!!!……
loongembedded
2012-08-09
打赏
举报
回复
是啊,这种情况,可以先把你GPIO驱动去掉,这个问题基本是你驱动问题导致的
kuoshuang
2012-08-02
打赏
举报
回复
哦,谢谢各位回答,我先试试吧。
zhengmeifu
2012-08-02
打赏
举报
回复
应该是你GIO_IOControl驱动问题。要不先不运行你应用程序,测测看是否会重启。
kuoshuang
2012-08-01
打赏
举报
回复
那个调试信息能正常用啊,我之前的一个访问越界的问题就是通过调试信息查出来的。而且+GIO_IOControl这个信息表示通信正常啊,为什么要卸载了?
gooogleman
2012-08-01
打赏
举报
回复
……+GIO_IOControl 把这个驱动卸载一下试试吧。不能我以为的啊
wince
系统
重启
程序(附可执行程序)
wince
6.0,
wince
7.0环境下,C#实现
重启
功能(源码),也可运营可执行文件。调用 基础库Coredll.dll的 KernelIoControl函数。使用时,可直接调用,亲测可用。
wince
系统
重启
函数
利用OEM制造商提供的OEMIoControl可以随意地处理IOCTL_HAL_REBOOT。然而应用程序不能直接调用OEMIoControl,只能通过先调用KernelIoControl然后由KernelIoControl调用OEMIoControl。 #include "winioctl.h" BOOL KernelIoControl(DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned); #define IOCTL_HAL_GET_DEVICE_INFO CTL_CODE(FILE_DEVICE_HAL, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) KernelIoControl(IOCTL_HAL_REBOOT, &inVal;, 4, outBuf, 1024, &bytesReturned;); 执行上面的代码可以实现软重起。如果你想要实现硬重起,还需首先调用SetCleanRebootFlag函数。 也可以这样用
winCE
系统
重启
桌面快捷方式丢失
用于解决
winCE
系统
的PDA
重启
后桌面快捷方式丢失的
问题
,解决方法:
重启
程序自动创建快捷方式
wince
重启
丢失快捷方式的解决办法
wince
每次
重启
会还原桌面,导致程序的快捷方式也没了,通过该程序可自动恢复快捷方式,内有使用说明。
软件
重启
WINCE
6.0
分别用c++和c# 实现软件
重启
wince
系统
,仅在
wince
6.0
系统
上实验通过,并不是所有的
wince
6.0
系统
都支持,必须是内核coredll.dll中KernelIoControl没有被裁剪过的才可以,曾在9281终端上测试通过,但在6410终端上测试失败
嵌入开发(WinCE)
19,504
社区成员
41,569
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章