wince60下声卡驱动wave2

wince_2011 2011-03-22 12:43:12
哪位大侠做过wince60下声卡驱动WAVE2??

小弟现在做这个驱动,硬件是PXA270,声卡芯片是WM9712

硬件没问题,以前是跑wince4的,点击触摸屏等可以发出声音

但是现在移植到wince6下就不行

在wince4上的声卡驱动是分层的,

到wince6,发现声卡驱动就变成一个wavedev2了,我把硬件部分移植到目前的驱动中

通过打印信息看貌似运行的没什么问题(声卡驱动流程不熟悉,在控制面板中看有“音量和声音属性”)

就是不出声

以前没做过相关驱动,请教各位高手,哪位帮忙指点一下,看需要注意哪里,谢谢啦!

...全文
109 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wince_2011 2011-03-31
  • 打赏
  • 举报
回复
请教:在wavedev2的hwctxt.cpp中:
BOOL HardwareContext::InitAudioDMA()
{
DWORD dwDMAIrq = IRQ_DMAC;
if(m_SysIntrAudioDMA == SYSINTR_UNDEFINED)
{
/*if(!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwDMAIrq, sizeof(DWORD), &m_SysIntrAudioDMA, sizeof(DWORD), NULL))
{
DEBUGMSG(ZONE_ERROR, (TEXT("Error obtaining DMA interrupt SYSINTR value!\n")));
return (FALSE);
}*/
m_SysIntrAudioDMA = SYSINTR_AUDIO;
}
}
在Intr.c中
OALIntrStaticTranslate(SYSINTR_AUDIO, IRQ_DMAC);
但是在BSPIntrEnableIrq、BSPIntrDisableIrq、BSPIntrDoneIrq函数中并没有对IRQ_DMAC进行处理
在BSP的其他地方也没有,别人的pxa270的BSP也没有相关处理
请问IRQ_DMAC的处理在哪里定义的呢??
谢谢各位!
wince_2011 2011-03-29
  • 打赏
  • 举报
回复
请教:在wavedev2的hwctxt.cpp中:
BOOL HardwareContext::InitAudioDMA()
{
DWORD dwDMAIrq = IRQ_DMAC;
if(m_SysIntrAudioDMA == SYSINTR_UNDEFINED)
{
/*if(!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &dwDMAIrq, sizeof(DWORD), &m_SysIntrAudioDMA, sizeof(DWORD), NULL))
{
DEBUGMSG(ZONE_ERROR, (TEXT("Error obtaining DMA interrupt SYSINTR value!\n")));
return (FALSE);
}*/
m_SysIntrAudioDMA = SYSINTR_AUDIO;
}
}
在Intr.c中
OALIntrStaticTranslate(SYSINTR_AUDIO, IRQ_DMAC);
但是在BSPIntrEnableIrq、BSPIntrDisableIrq、BSPIntrDoneIrq函数中并没有对IRQ_DMAC进行处理
在BSP的其他地方也没有,别人的pxa270的BSP也没有相关处理
请问IRQ_DMAC的处理在哪里定义的呢??
谢谢各位!
当我遇上-你 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vieri32_inter 的回复:]
同楼上建议,先检查initcodec();如果还不行,把register的值都打印出来对比


引用 1 楼 loongembedded 的回复:
我建议楼主还是在wince60下声卡驱动WAVE2下正对你之前WINCE4.0下面ok的音频驱动来修改把,这修改的动作一般是HardwareContext::InitCodec()下寄存器的差异
[/Quote]
打印串口信息,看驱动成功加载没有,在驱动中应该加些调试语句输出来
vieri32_inter 2011-03-22
  • 打赏
  • 举报
回复
同楼上建议,先检查initcodec();如果还不行,把register的值都打印出来对比

[Quote=引用 1 楼 loongembedded 的回复:]
我建议楼主还是在wince60下声卡驱动WAVE2下正对你之前WINCE4.0下面ok的音频驱动来修改把,这修改的动作一般是HardwareContext::InitCodec()下寄存器的差异
[/Quote]
loongembedded 2011-03-22
  • 打赏
  • 举报
回复
我建议楼主还是在wince60下声卡驱动WAVE2下正对你之前WINCE4.0下面ok的音频驱动来修改把,这修改的动作一般是HardwareContext::InitCodec()下寄存器的差异

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧