【急求】我的SPI转串口的驱动程序会使WINCE系统变慢
我用GPIO口模拟的SPI来驱动SPI转串口的芯片。我自己写了一个WINCE应用程序来测试我的驱动。
运行应用程序,我通过这个芯片往外发串口信息(用的不是中断方式),系统没有问题,没有感觉变慢。
一旦外面发串口信息给这个芯片,这时去看系统就立即变慢了。(打开关闭文件夹非常的慢)。即便我停止发信息给芯片,以及我把应用程序关掉也没有用。
我的驱动用的是中断接收外面发给芯片的信息。
我的程序的结构是这这样的:
_Init(): //我在_Open里面这样初始化也试过,结果一样。
KernelIoControl();
CreateEvent();
InterruptInitialize()
CreateThread(..ISR...)
_ISR():
Waitforsingleobject(event, infinite);
readblock(); // 读取芯片接收到的串口信息
interruptdone(event);
就这么简单的一个结构,不知道为什么,我的驱动一旦外面给这个芯片发串口信息,这个wince系统就慢了,而且怎么也恢复不了,只能是关电,再重新上电。
请高手指点。
[解决办法]
添加打印消息,看你的驱动到底在哪里慢下来
[解决办法]
线程处理要注意,
最大可能性是内存泄露,这个我遇到过不少,立即死机都有可能。