播放PCM时崩溃,各位大神帮忙看看

[ 394.160000] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 8013a480, ra c
[ 394.160000] Oops[#1]:
[ 394.160000] CPU: 0 PID: 1437 Comm: xxzlyl Not tainted 3.18.29 #13
[ 394.160000] task: 87900e88 ti: 86bc2000 task.ti: 86bc2000
[ 394.160000] $ 0 : 00000000 00000000 86b75de0 00000000
[ 394.160000] $ 4 : 00000000 803099f4 fffffffc 00000000
[ 394.160000] $ 8 : 85c03a41 86b05eb0 00000000 00000013
[ 394.160000] $12 : 0000000e 00000007 00000001 802db464
[ 394.160000] $16 : 86bc3de0 803099f4 00000000 00000001
[ 394.160000] $20 : 85c05eb0 fffffdfc 86bc3de0 00000001
[ 394.160000] $24 : 0000000e 80040c2c
[ 394.160000] $28 : 86bc2000 86bc3d18 86bc3e18 8013b55c
[ 394.160000] Hi : 0000005b
[ 394.160000] Lo : c5c44c00
[ 394.160000] epc : 8013a480 rb_erase+0x27c/0x3cc
[ 394.160000] Not tainted
[ 394.160000] ra : 8013b55c timerqueue_del+0x6c/0x88
[ 394.160000] Status: 1100e402 KERNEL EXL
[ 394.160000] Cause : 00800008
[ 394.160000] BadVA : 00000000
[ 394.160000] PrId : 00019655 (MIPS 24KEc)
[ 394.160000] Modules linked in: pppoe ppp_async iptable_nat pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nh
[ 394.160000] Process xxzlyl (pid: 1437, threadinfo=86bc2000, task=87900e88, tls=7710f960)
[ 394.160000] Stack : 87900e88 86bc3de0 87900e88 87902b98 803099e8 86bc3de0 00000000 800501fc
86bc3e18 8005076c 86bc3da8 86bc3de0 00000001 00000004 ffffffff 00000007
00c0054c 800502fc 86bc3e18 8005d2f0 00000007 87903578 86bc3de0 80050340
0000c350 00000000 86bc3f00 00000000 86bc3f00 8005dc8c 00000000 00000000
00989680 00000000 86bc3e18 00000000 00000064 86bc3dac 86bc3dac 86bc3db4

[ 394.160000] Call Trace:
[ 394.160000] [<8013a480>] rb_erase+0x27c/0x3cc
[ 394.160000] [<8013b55c>] timerqueue_del+0x6c/0x88
[ 394.160000] [<800501fc>] __remove_hrtimer+0x48/0xf8
[ 394.160000] [<800502fc>] hrtimer_try_to_cancel+0x50/0x7c
[ 394.160000] [<80050340>] hrtimer_cancel+0x18/0x34
[ 394.160000] [<8005dc8c>] futex_wait+0x1c4/0x1f8
[ 394.160000] [<8005f1fc>] do_futex+0xdc/0x810
[ 394.160000] [<8005fa34>] SyS_futex+0x104/0x194
[ 394.160000] [<80006b5c>] handle_sys+0x11c/0x140
[ 394.160000]
[ 394.160000]
Code: ac460004 0804e95d ac620008 <8c670000> 30e70001 14e00013 00602021 8c640004 34470001
[ 394.490000] —[ end trace e3d651df6c96f43a ]—
[ 394.500000] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 00000000, ra ==0
[ 394.510000] Oops[#2]:
[ 394.510000] CPU: 0 PID: 1455 Comm: xxzlyl Tainted: G D 3.18.29 #13
[ 394.510000] task: 86b7e1e8 ti: 86b74000 task.ti: 86b74000
[ 394.510000] $ 0 : 00000000 00000000 00000000 00000002
[ 394.510000] $ 4 : 00000001 8793d360 1100e400 ffff00fe
[ 394.510000] $ 8 : 86b75fe0 0000e400 00000000 00000013
[ 394.510000] $12 : 0000000e 00000007 00000001 802db464
[ 394.510000] $16 : 00000000 00000000 00000000 00000000
[ 394.510000] $20 : 00000000 00000000 00000000 00000000
[ 394.510000] $24 : 0000000e 80040c2c
[ 394.510000] $28 : 86b74000 86b75d68 00000000 00000000
[ 394.510000] Hi : 0000005b
[ 394.510000] Lo : da084900
[ 394.510000] epc : 00000000 (null)
[ 394.510000] Tainted: G D
[ 394.510000] ra : 00000000 (null)
[ 394.510000] Status: 1100e403 KERNEL EXL IE
[ 394.510000] Cause : 10800008
[ 394.510000] BadVA : 00000000
[ 394.510000] PrId : 00019655 (MIPS 24KEc)
[ 394.510000] Modules linked in: pppoe ppp_async iptable_nat pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nh
[ 394.510000] Process xxzlyl (pid: 1455, threadinfo=86b74000, task=86b7e1e8, tls=75a0d960)
[ 394.510000] Stack : 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 85c03a41 00000000
87918060 00000000 00000000 00000000 00000000 00000000 00000000 00000000

[ 394.510000] Call Trace:
[ 394.510000]
[ 394.510000]
Code: (Bad address in epc)
[ 394.510000]
[ 394.770000] —[ end trace e3d651df6c96f43b ]—
[ 394.960000] ummap MMAP[8]=0x86A90000
[ 394.960000] capture free_dma_buffer
[ 394.970000] ptri2s_config->mmap_index:16
[ 394.970000] ****** wm8960_preinit ******

多谢啦。我先试试看吧。

@mango 对了,也建议尝试尝试不走MMAP方式。现在这个驱动这一块处理默认是两种都支持的。但稳定性上可能不同,暂没有深入测试。

@yangfan 可以尝试在应用程序中合理的监听和处理ctrl+c的信号。
可以参考源码中的package/airkss/src/airkiss.c

用Alsa. 已经是mmap方式。如果确定是ctrl+c的原因那就没事了。我测试确实经常要ctrl+c强制退出。

发现在播放中,ctrl+c容易崩溃。这个程序里边操作音频接口是哪些?如果调用ALSA的话,尝试考虑MMAP方式?

好的,我测试测试

1492698339187-openwrt-ramips-mt7688-widora-squashfs-sysupgrade.bin (7.25 MB)

运行命令:
cd /tmp
xxzlyl ddd

有时候会崩溃,而且是随机性的崩溃。