MP3播放异常 请求协助

2016-9-20 17:04 [复制链接] 5 1885

板子是老板子  v2.0的,用的代码是google上的 名称:stm32radio_svn66_v4.7z
9 U. n. W/ d! I& A$ c+ M歌曲:随便网上下的6首mp3 128kbps速率
4 d. X8 t; h6 U0 k# P情况:只有一首可以播放,播放10s后死掉
* P) R; [6 T$ y% k* q/ D$ C其他5首一放就进入hard fault on thread: ply_bg
  x/ h6 ~/ V, n7 Y2 h* L0 V& R  x, l9 X+ u
board.h配置如下:
  1. /* board configuration */
  2. // <o> SDCard Driver <1=>SDIO sdcard <0=>SPI MMC card
  3. //         <i>Default: 1
  4. #define STM32_USE_SDIO          0
  5. /* whether use board external SRAM memory */
  6. // <e>Use external SRAM memory on the board
  7. //         <i>Enable External SRAM memory
  8. #define STM32_EXT_SRAM          1
  9. //        <o>Begin Address of External SRAM
  10. //                <i>Default: 0x68000000
  11. #define STM32_EXT_SRAM_BEGIN    0x68000000 /* the begining address of external SRAM */
  12. //        <o>End Address of External SRAM
  13. //                <i>Default: 0x68080000
  14. #define STM32_EXT_SRAM_END      0x68080000 /* the end address of external SRAM */
  15. // </e>
  16. // <o> Internal SRAM memory size[Kbytes] <8-64>
  17. //        <i>Default: 64
  18. #define STM32_SRAM_SIZE         64
  19. #define STM32_SRAM_END          (0x20000000 + STM32_SRAM_SIZE * 1024)
  20. // <o> Console on USART: <0=> no console <1=>USART 1 <2=>USART 2 <3=> USART 3
  21. //         <i>Default: 1
  22. #define STM32_CONSOLE_USART     1
  23. // <o> LCD Module Version
  24. // <1=>Version 1: fmt0371
  25. // <2=>Version 2: i8080/16bit ili9320/9325/9328 LG4531 ST7783
  26. // <3=>Version 3: i8080/16bit SSD1289
  27. //         <i>Default: 1
  28. #define LCD_VERSION             1
  29. // <o> LCD backlight:
  30. // <0=>NO
  31. // <1=>PB9 TIM4_CH4 ( Version: V0.* V3.0 V3.1 )
  32. // <2=>PB6 TIM4_CH1 ( Version: V4 )
  33. //         <i>Default: 1
  34. #define LCD_USE_PWM             0
  35. /*
  36. * IMPORTANT NOTICE:
  37. * CODEC_MASTER_MODE = 1 with CODEC_USE_SPI3 = 0 is unusable due to a hardware bug of STM32's SPI2.
  38. */
  39. // <o> CODEC Mode
  40. // <0=>I2S Slave
  41. // <1=>I2S Master
  42. #define CODEC_MASTER_MODE        0
  43. // <o> CODEC SPI Port
  44. // <0=>SPI2
  45. // <1=>SPI3
  46. #define CODEC_USE_SPI3                0
  47. // <o> SPI FLASH TYPE
  48. // <1=>Version 1: AT45DB161D
  49. // <2=>Version 2: SST25VF016B
  50. //         <i>Default: 2
  51. #define SPI_FLASH_TYPE             1
复制代码
% ?' J# B4 D, ^# e8 Y. }
==================================================================
. l3 d7 Z4 l5 c  I2 U$ D& E; V$ a' W3 q/ N) Q  g
开机后打印信息如下:
  1.   | /
  2. - RT -     Thread Operating System
  3. / |  0.4.0 build Sep 20 2016
  4. 2006 - 2009 Copyright by rt-thread team
  5. found part[0], begin: 70144, size: 1.851GB
  6. SPI File System initialized!
  7. SD File System initialized!
  8. Unable to open GBK to Unicode look up table.
  9. Unable to open Unicode to GBK look up table.
  10. LCD GRAM test....  TEST PASS!
  11. rem_codes /resource/remote.txt open fail! fd:-1
  12. The remote disbale.
  13. please run rem_study()
  14. rtc is not configured
  15. please configure with set_date and set_time
  16. Thu Jan  1 00:00:00 1970
  17. dm9000 id: 0x90000a46
  18. finsh>>could not establish link
复制代码
============================================================. `) i* G8 l/ @& T1 r
发现在mp3.c 里面死掉的
- n1 O: ?) G! e, d0 d3 B6 U) w- P修改了以下打印代码:
  1.                 /* write to sound device */
  2.                 outputSamps = decoder->frame_info.outputSamps;
  3.                 if (outputSamps > 0)
  4.                 {
  5.                         int ii;
  6.                         if (decoder->frame_info.nChans == 1)
  7.                         {
  8.                                 int i;
  9.                                 for (i = outputSamps - 1; i >= 0; i--)
  10.                                 {
  11.                                         buffer[i * 2] = buffer[i];
  12.                                         buffer[i * 2 + 1] = buffer[i];
  13.                                 }
  14.                                 outputSamps *= 2;
  15.                                 rt_kprintf("debug 4.5.
  16. ");
  17.                         }
  18.                         [color=#FF0000]rt_kprintf("debug 5.
  19. ");
  20.                         ii=rt_device_write(decoder->snd_device, 0, buffer, outputSamps * sizeof(rt_uint16_t));[/color]
  21.                         if(ii==0)
  22.                                 rt_kprintf("debug 5.5.
  23. ");
  24.                 }
复制代码
==================================================================
% x2 z% @& G/ @8 O具体死掉的时候打印信息如下:
  1. debug 5.
  2. debug 5.
  3. debug 5.
  4. psr: 0x81000000
  5. pc: 0x0801ae3a
  6. lr: 0x0801ae2d
  7. r12: 0x0000000a
  8. r03: 0x000cf72d
  9. r02: 0xfffea0fd
  10. r01: 0xfffcc24c
  11. r00: 0x000026ab
  12. hard fault on thread: ply_bg
  13. thread  pri  status      sp     stack size max used   left tick  error
  14. -------- ---- ------- ---------- ---------- ---------- ---------- ---
  15. tcpip    0x0a suspend 0x000000c8 0x00000400 0x000001c0 0x00000014 000
  16. etx      0x0c suspend 0x00000088 0x00000200 0x00000088 0x00000010 000
  17. erx      0x0c suspend 0x00000088 0x00000200 0x00000088 0x00000010 000
  18. key      0x1e suspend 0x00000090 0x00000180 0x00000098 0x00000005 000
  19. ply_ui   0x19 suspend 0x000000d0 0x00001000 0x00000570 0x00000001 000
  20. ply_bg   0x0d ready   0x00000120 0x00000800 0x00000468 0x00000001 000
  21. info     0x19 suspend 0x000000d0 0x00000800 0x00000490 0x00000004 000
  22. rtgui    0x0f suspend 0x000000e0 0x00000400 0x000000e0 0x00000004 000
  23. tidle    0x1f ready   0x00000040 0x00000100 0x00000050 0x00000013 000
  24. tshell   0x14 suspend 0x00000088 0x00000800 0x00000088 0x0000000a 000
  25. init     0x08 suspend 0x000000a0 0x00000800 0x00000438 0x00000006 000
复制代码
) f& w0 T2 S& R
怀疑是标红的代码处出问题?不确定 请求协助1 ~, ^) o6 Q9 e4 X  o4 F" k
8 M6 }( f  J7 p- `" e
最后的目标是想用这个板子播放flac wav 等无损 任重道远啊
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2016-9-20 18:06:15 | 显示全部楼层

MP3播放异常 请求协助

这个板子感觉够呛。5 b3 O2 x% L2 Z" Y
6 J+ E, L- ?2 S% ^. m3 L, ?3 e5 I
查问题的话,建议在 MP3Decode() 加个打印。8 Z9 P* s$ M4 g3 A4 g' w: b' @
最好用仿真器单步调试。
使用道具 举报 回复
发表于 2016-9-20 18:11:24 | 显示全部楼层

MP3播放异常 请求协助

其实板子性能很OK的  播放flac wav ape无损 显示什么的应该没问题的
: t6 K$ o7 N7 T% qwm9878貌似差一点 高编码的播放不了 都调整好了后  再换这个dac4 F. s: O: h4 ?5 }6 d* c: S7 y
应该来说就很完美了  丢下这么久 好难搞啊
使用道具 举报 回复
发表于 2016-9-20 19:37:06 | 显示全部楼层

MP3播放异常 请求协助

是的,这个过去太久时间了,很多都是以前的东西
2 E, ]" u! P! n+ y
" w/ q5 S4 \- T7 G5 D; A楼主是在哪里,怎么想着玩这套东西
使用道具 举报 回复
发表于 2016-9-21 12:42:22 | 显示全部楼层

MP3播放异常 请求协助

bernard 好
4 B- h, p  D: h1 c, `8 v3 P毕业后工作跟开发无关  丢下几年了 也好久没怎么上论坛了
  S" d5 J1 e! l这套板子是最早试验的一批   那时候还没毕业 安哥送我的 0 `' C7 g! d! }: E/ C* R2 w
一直拿静电盒子套着  目前99新 嘿嘿  P& h& j1 w& q8 i4 u" u: i4 n! R+ s
最近想听无损 看板子的处理能力还是足够的
6 x" e1 N; c1 ^2 T* a就想重新利用起来 ' Y! _4 `: ?0 l2 ]- G% a! l3 |
否则硬件更新太快 再放着就真的浪费了
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

快速回复 返回顶部 返回列表