当前位置: 代码迷 >> WinCE >> 关于wince5.0 CeSetThreadPriority 设置优先级,系统下不进去板卡的原因,该怎么解决
  详细解决方案

关于wince5.0 CeSetThreadPriority 设置优先级,系统下不进去板卡的原因,该怎么解决

热度:75   发布时间:2016-04-28 13:07:18.0
关于wince5.0 CeSetThreadPriority 设置优先级,系统下不进去板卡的原因
各位大拿,我用的wince5.0 我想把一驱动里的线程优先级提高,现在读出来的是251,发现用CeSetThreadPriority 只能把线程优先级设置到251以下,想设个250都不行 这是为什么呀?比如说 我的驱动里初始化函数叫 AAA_Init
我就在这个里面
g_htCanIST2 = CreateThread (NULL, 0, CAN2_IntrThread, NULL, 0, NULL);//jia
然后 CeSetThreadPriority(g_htCanIST2, 150); 
结果连系统都下不进去
我读了这个驱动里的线程的优先级 然后读出啦是251
我看网上说 新建一个线程 默认就是251
我想让他比251高 结果就是不行 系统都下不进去板子
设置252~255 就都行 都可以下系统进板子
实在是很急 哪位 知道原因的话 占用您一点时间告诉我一下 就这一个问题 解决了就整个OK了 多谢多谢

------解决方案--------------------
这是函数的说明:

CeSetThreadPrioritySee Also
CeGetThreadPriority

Requirements
OS Versions: Windows CE 3.0 and later.
Header: Winbase.h.
Link Library: Nk.lib.
This function sets the priority for a real-time thread on a thread by thread basis.

BOOL CeSetThreadPriority(
HANDLE hThread, 
int nPriority
); 
Parameters
hThread 
[in] Handle to a thread. 
nPriority 
[in] Priority to set for the thread. 
This value can range from 0 (zero) through 255, with zero as the highest priority. 

应该是可以的,但 LZ 所描述的问题,可能是其它原因,例如优先级调整后线程之间的同步问题。
------解决方案--------------------
系统下不进去是什么意思?是起不来还是烧写不了镜像?若起不来,应该是你更改了优先级后线程同步问题,烧写不了,应该是你bootloader问题。还有个驱动加载先后顺序问题。