搜索
bottom↓
回复: 35

uCGUI lm3s9B95软解压mp3 demo程序。(cortex-m3 最后一贴)

[复制链接]

出0入0汤圆

发表于 2010-12-3 22:47:20 | 显示全部楼层 |阅读模式
步入正题之前,发一个牢骚。不想看的,直接跳到技术章节。早段时间在论坛里发了一个帖子,因为有几块多的pcb,希望能转给lm3s的初学者,顺便收回个成本。我的帖子里写的很清楚了,空pcb,加上一些非标的接插件,0402的阻容,还有一个非标的usb转串口线,45块。lcd也是45块。主要是担心非标的东西,不好买,还有就是0402的器件不好焊,所以这些算在一起45块。结果,还剩一块的时候,正好坛里的一个朋友定了hellom3,正好这个板子也可以配合hellom3用,所以就卖给他了。没想到,这个朋友拿到东西以后,居然说要退货。原因更是无俚头,他说我帖子里贴的照片是一个整套,为什么发给他的是一个只焊了阻容和非标器件的板子。我X,难道这个人买东西只看图片,不看_中国字吗?还是故意找事。是不是淘宝买个衣服,店主要把女模特也送给你?我帖子里写的很清楚了,其他购买pcb的朋友都能理解,就是这个兄弟“不明白”,还跟我说“我搞arm9 wince很多年了”。好在淘宝的MM还是明事理的,答应我给他退货。然后额外赔偿我几十块钱。算了,事情过了也就不说了。发个感慨而已。说正题。

从业10年,从arm7,arm9,arm11,cortex-a8再到多核arm,只有学习cortex-M3是完全和工作不相干的。这要感谢“永远的不知”送我的hellom3 pcb。让我第一次在业余时间学习了cortex-m3,我一直做消费类电子产品,所以一直想试一下lm3s9b95这个芯片的能力。早一段时间,抽空完成了uC-OS II+uCFS+uCGUI在hellom3上的移植。后来比较忙,就放下了。其实,我一直想试一下cpu软解mp3的能力,因为hellom3上有i2S的codec。

之前有STM32软解mp3的例子,那个核心比较旧,所以在hellom3上我没有用,而是选用了mad库,来完成decoder。目前,我发现9B95的DMA,只能用SRAM到I2S,而且最大1024 units。这是一个瓶颈。导致我的解压FIFO只开到了7个,decode task的cpu占用率高,UI的响应不及时。如果能够使用SDRAM到I2S的话,FIFO可以更多,那样的话,CPU会释放出来一些。

目前,我写的这个mp3 demo,可以流畅的一边读文件,一个解码。uCFS不好,所以自己在fatfs的基础上作了一套标准的接口,而且sd驱动加上了CRC校验,数据的正确性更有保证。

因为下周起就要用cortex-A8+android正式做产品了。没时间搞M3了,这就是为什么“cortex-m3 最后一贴”

本来预想的是把播放的时间加上去,可以seek mp3文件。还有中文的支持,一些bmp jpeg gif 图片的decode。看来是没有时间搞了,这些请“永远的不知”完善吧。

如果是做产品的话,我不会选择SDRAM。我会使用nor+sram的mcp,然后高地址扩展一个cs挂16bit的LCD,这样的话lcd的效率会提高,而且i2s的录音功能可以实现,多出来的IO可以做键盘。

太晚了,先传图片和视频。其他的明天再传。


(原文件名:boot.JPG)


(原文件名:IMG_0622.JPG)


(原文件名:IMG_0623.jpg)


(原文件名:IMG_0626.JPG)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2010-12-3 22:51:58 | 显示全部楼层
点击此处下载 ourdev_602145RE5T25.rar(文件大小:8.18M) (原文件名:mp3 demo.rar)

出0入0汤圆

发表于 2010-12-3 23:14:07 | 显示全部楼层
关于SD驱动加上了CRC校验,我上过20MHZ,没有遇到错误,是不是再快一点就会出错了?

出10入0汤圆

发表于 2010-12-4 10:29:29 | 显示全部楼层
mask~!以后有用~!

出0入0汤圆

发表于 2010-12-4 10:35:14 | 显示全部楼层
好贴 mark

出0入0汤圆

发表于 2010-12-4 10:45:38 | 显示全部楼层
支持,请问那位兄弟退回来的板子可以转给我不?

出0入0汤圆

发表于 2010-12-4 10:55:25 | 显示全部楼层
回复【3楼】dgtg
mask~!以后有用~!
-----------------------------------------------------------------------
"mask"???楼上的兄弟周末在和苍井空约会?

出0入0汤圆

发表于 2010-12-4 11:06:46 | 显示全部楼层
是视频,没程序?

界面做得很漂亮

出0入0汤圆

发表于 2010-12-4 11:12:23 | 显示全部楼层
准备搞9b96 顶个

出0入0汤圆

 楼主| 发表于 2010-12-4 12:38:51 | 显示全部楼层
libmad-0.15.1b不提供源码,有兴趣研究的,网上下载。这是一个很优秀的解码核心,我只是做了部分优化,还有就是针对边读边解得处理。主要是libmad是gcc编译的。在keil上不好移植。所以,在这里我直接放了一个类似ROM库的bin。rom里面提供下列的功能。

typedef struct tagDLLFUN
{
        int (*rom_mp3_play)(void **start_address,unsigned long len );
        int (*rom_mp3_initialize)( void );
        void (*rom_mp3_finish)( void );
        void (*rom_InitLibMad)(void);
}DLLFUN;

这个rom占用flash 0x30000~3FFFF 64Kb的空间。 SRAM 占用0x20010A00~0x20017fff 29.5Kb空间。

开机时调用rom_InitLibMad,初始化lib。
播放mp3前,调用rom_mp3_initialize,
播放时,将读出的mp3文件 传给rom_mp3_play
播放结束时,调用rom_mp3_finish。
libmad会要求一个output的回调函数。输出pcm数据。

想深入了解mp3的,可以用这个ROM去写应用。界面可以用我之前上传得那个ucgui工程来做。

不想费事,只想玩玩的。过段时间,我把东西提供给给“永远的不知”,让他在hellom3上做一个完善的demo。大家直接拿去玩就好了。

UI我写的很简单。本来想把能量均衡器,mp3时间 ,快进 快退 做上去的。现在没时间了,直接放上来吧。

点击此处下载 ourdev_602218O791P6.rar(文件大小:30K) (原文件名:libmad.rar)

出0入0汤圆

 楼主| 发表于 2010-12-4 12:46:39 | 显示全部楼层
点击此处下载 ourdev_602219CH4W6S.rar(文件大小:5K) (原文件名:mp3task_demo.rar)

点击此处下载 ourdev_602220Q4M91K.rar(文件大小:4K) (原文件名:widget_mp3.rar)


widget_mp3 和 mp3_task 写的极其简单。 dir遍历的时候使用了链变都没有考虑free的问题。没时间完善了。给大家一个参考。了解这个rom lib怎么用,用兴趣的自己研究吧

出0入0汤圆

 楼主| 发表于 2010-12-4 12:51:52 | 显示全部楼层
回复【2楼】90999 张耀扬
关于sd驱动加上了crc校验,我上过20mhz,没有遇到错误,是不是再快一点就会出错了?
-----------------------------------------------------------------------

SD正常下,数据不会错的。只有极端情况下会有问题,如开关机,掉电,严重干扰。
自己玩的,就不需要加CRC了,影响速度的。
但是做产品的一定要加,我们很早以前有一个产品因为没有CRC和crc出错之后的保护机制。
到了用户手上会偶发,TF卡不能使用,除非format。原因是读到错误数据,回写,破坏了文件系统。
产品上,你可以弹提示框告诉用户写失败,要求重试,但是决不能把用户的卡写坏。

出0入0汤圆

 楼主| 发表于 2010-12-4 13:03:18 | 显示全部楼层
回复【5楼】holged
支持,请问那位兄弟退回来的板子可以转给我不?
-----------------------------------------------------------------------

pcb 和 LCD都在,真想要,70 ,一起拿走。

现在看到这个,我就有上淘宝买女装的冲动,说不定能讹到店家,送一个女模特呢? 呵呵。

我的邮箱,前面的帖子里有。

出0入0汤圆

发表于 2010-12-4 13:22:10 | 显示全部楼层
谢谢楼主

出0入0汤圆

发表于 2010-12-4 17:06:51 | 显示全部楼层
支持张兄,多谢张兄分享,以后有机会再一起合作。

出10入0汤圆

发表于 2010-12-5 01:29:52 | 显示全部楼层
回复【6楼】wuyya
回复【3楼】dgtg  
mask~!以后有用~!
-----------------------------------------------------------------------
"mask"???楼上的兄弟周末在和苍井空约会?

-----------------------------------------------------------------------

呵呵,你不说我还没注意到原来自己打错字了~!哈哈....汗呀~!!!

出0入0汤圆

发表于 2010-12-5 08:35:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-5 09:08:34 | 显示全部楼层
回复【11楼】zclcom79  
回复【2楼】90999 张耀扬
关于sd驱动加上了crc校验,我上过20mhz,没有遇到错误,是不是再快一点就会出错了?
-----------------------------------------------------------------------

sd正常下,数据不会错的。只有极端情况下会有问题,如开关机,掉电,严重干扰。
自己玩的,就不需要加crc了,影响速度的。
但是做产品的一定要加,我们很早以前有一个产品因为没有crc和crc出错之后的保护机制。
到了用户手上会偶发,tf卡不能使用,除非format。原因是读到错误数据,回写,破坏了文件系统。
产品上,你可以弹提示框告诉用户写失败,要求重试,但是决不能把用户的卡写坏。
-----------------------------------------------------------------------

OK,谢谢了

出0入264汤圆

发表于 2010-12-5 10:53:59 | 显示全部楼层
xuexi

出0入0汤圆

发表于 2010-12-7 23:11:11 | 显示全部楼层
楼主做的逻辑分析仪呢,怎么没有下文了

出0入0汤圆

发表于 2010-12-14 14:34:15 | 显示全部楼层
楼主牛人.

出0入0汤圆

 楼主| 发表于 2010-12-17 11:32:47 | 显示全部楼层
回复【19楼】sky_walker
楼主做的逻辑分析仪呢,怎么没有下文了
-----------------------------------------------------------------------

从硬件上,我飞线了一块板子,功能是可以实现的。剩下的就是做PCB版,完善PC端的软件。不过,目前没有时间来写像usbee那样华丽

的PC端软件。

硬件上usb芯片和USBee是一样的,但是增加了FIFO和时钟控制电路,可以让FX2工作在slave FIFO模式,采样率会更高,数据会保证连

续。当然成本就上去了。

出0入0汤圆

发表于 2010-12-17 12:56:52 | 显示全部楼层
cortex-A8+android正式做产品了

这个……让我想起国产MID了,比如安派^_^

出0入0汤圆

发表于 2010-12-17 13:33:44 | 显示全部楼层
支持,但是没时间玩,只能看看啦

出0入0汤圆

发表于 2010-12-17 15:50:31 | 显示全部楼层
超级库柏

出0入0汤圆

发表于 2010-12-18 00:38:52 | 显示全部楼层
mark!~

出0入0汤圆

发表于 2011-5-8 10:17:01 | 显示全部楼层
mark

出0入264汤圆

发表于 2011-5-8 11:22:20 | 显示全部楼层
学习。

出0入0汤圆

发表于 2011-5-9 16:45:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-21 17:11:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-21 17:36:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-21 23:05:04 | 显示全部楼层
超级库柏

出0入0汤圆

发表于 2011-6-22 09:49:50 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-7-15 00:28:19 | 显示全部楼层
MARK

出100入101汤圆

发表于 2014-1-7 16:35:46 | 显示全部楼层
zclcom79 发表于 2010-12-4 12:46
点击此处下载 ourdev_602219CH4W6S.rar(文件大小:5K) (原文件名:mp3task_demo.rar)

点击此处下载 ourdev_ ...

LZ,是否可分享下完整的工程文件?

出0入0汤圆

发表于 2014-1-9 09:27:22 | 显示全部楼层
     MARK!!!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 11:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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