上海妇科疾病研究所 上海女性不孕医院 上海引产医院 无痛引产痛不痛 上海人流医院 白癜风治疗医院 上海小儿脑瘫医院 上海女子医院
Blackfin 的VDK的Mutex用法和KernelPanic处理-Blackfin-技术中心-国内专业ADI仿真器,Blackfin开发板,DSP芯片,软件算法,解决方案提供商-北京四维卓信电子有限公司
用户名: 密码:
主页 设为首页 加入收藏
      产品中心       技术中心       下载中心        社区新闻        诚聘英才       大学计划        关于我们       技术论坛
  您的当前位置:ADSP开源社区 >> 技术中心 >> Blackfin 今天是:
技术中心  
SigmaDSP
SHARC
A2B音频总线
Blackfin
ADI操作系统
ADSP-218X
TigerSAHRC
ADI DSP仿真器
产品导航
ADI DSP仿真器
SigmaDSP开发板
ADI A2B总线开发板
SHARC DSP开发板
销售网络
Blackfin  
Blackfin 的VDK的Mutex用法和KernelPanic处理
[ 作者: ] [ 来源:ADSP开源社区 ] [ 发布时间:2012-9-17 ]
处理器: Blackfin   Visual DSP++5.0

from: VisualDSP++5.0 Help Manual

 
VDK5.0可以使用Mutex需要注意以下几点:
1、Mutex可以在任何线程创建。
2、Mutex可以被某个线程拥有,或者不被任何线程拥有。
3、一旦Mutex被一个线程拥有之后,其他线程还要使用这个Mutex的话必须等待,直到已经使用Mutex的线程release掉这个mutex
4、如果一个线程Acquire了一个Mutex,还没有Relase的话,如果这个线程被销毁了,会引起线程异常。系统崩溃,调试的话可以看到汇编进入__KernelPanic。
5、如果一个线程已经拥有了一个Mutex还没有释放,那么线程重入后,再执行到Acquire Mutex的时候会直接过去,因为这个线程已经拥有了这个Mutex。
 
__KernelPanic处理
1、如果不小心程序发生了__KernelPanic的话(调试时表现在调试程序停止,汇编语句会跳转到__KernelPanic函数,如果系统脱机运行的话就会死机),可以通过查询变量获取错误信息。
2、查询方法:在变量查看窗口输入VDK::g_KernelPanicError即可查看到错误的枚举类型,根据错误枚举值的命名就可以看出为什么发生这个错误了。
3、如果不是VDK线程错误,可以通过Vdsp的菜单栏的工具查看错误信息: Register->Core->Status->Squece Status 里面的EXCAUSE变量的值,再查询帮助可以查出这个值对应什么错误。
   上述的Mutex没有被释放但是线程已经销毁导致的错误是:0x80000040 (kInvalidMutexOwner)
联系我们 | 关于我们 | 免责声明 | 诚征英才 | 友情链接
Copyright 2019 All rights reserved  本网页版权属Open ADSP所有
北京海淀区中关村大街32号新中发市场3659 邮编100100
电话 18611096839 
粤ICP备14035876号-1