Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
DIY综合交流区
软件计划贴,及时更新,欢迎提意见::WMA,MOUNT,LWIP等问题急需解决.
发布于 2009-08-10 14:45:23 浏览:30712
订阅该版
软件平台用RT-Thread - 文件系统暂时先用RT-Thread中带的DFS-EFSL(FAT16/32文件系统) - 协议栈用LwIP,这个已经是移植好的 - 界面用RT-Thread GUI,需要在上面写radio的应用程序 - wma软解码器,待完成 - DM9000A网卡驱动,测试中,还存在一些问题。 aozima 2010-03-23添加 wma解码:(非常紧急) 目前耗费资源太大,还用不起来.但这个问题不解决,在白名单下,这个东西只能成为一个摆设. 网络不稳定:(非常紧急) 目前RADIO的网络还不稳定,应该是软件上面的问题,具体原因还待查明. 此问题不彻底解决,继续进行下去的工作价值不大. 目录播放: 能够在文件浏览器中选择目录进行播放这个目录下所有的mp3文件。可以考虑,在文件浏览器中,当按下enter键时,弹出一个选择菜单,菜单项包括: - 打开 - 播放 - 删除 - 返回 界面优化: 对初始主界面进行优化(取消渐变色?),能够比较好的进行电台播放状态的更新 在USB联机视图上添加图标; 显示电台名称及多电台列表. 及无法读取资源文件时自动联机并试图修复 https://club.rt-thread.org/ask/question/296&p=2929#p2929.html 还需要完成: 2010-01-01 从存储设备完成IAP功能,欢迎认领.... [降低紧急程度,先暂停] aozima 2010-03-24添加: - 以SPI_FLASH为/,把SDCARD挂载到/SD并正常播放.基本完成.2010-03-24 - 单声道兼容完成. 2010-03-24 - 自动识别采样率功能基本完成. 2010-03-24 - wav文件播放,完成 - mp3软解码器,helix定点解码器,OK - mass storage框架完成,届时,SPI_FLASH,SDCARD,NAND将分为3个逻辑单元添加到mass storage中. - 自学习型红外遥控程序,已基本实现. ![netradio.jpg](https://oss-club.rt-thread.org/uploads/53_dbb9e3b6400a01d0a709131a190136ac.jpg) 下载附件 [player.pdf](https://oss-club.rt-thread.org/uploads/53_eff694d7dcd3104c87fcb163ae6d2898.pdf) ![audio_mp.jpg](https://oss-club.rt-thread.org/uploads/53_b814c7ff77b1a40ef690545b6f692aaa.jpg)
查看更多
41
个回答
默认排序
按发布时间排序
bernard
2009-08-14
这家伙很懒,什么也没写!
mp3软解占用资源比想象中的大很多,也比当时纯软解占用资源大很多(当时是50%左右)。 优化需要: mp3 decoder数据放片内SRAM中,开辟了一块2560 * 2 * 2的memoy pool,helix mp3 decoder数据也放于片内SRAM。 -O3优化编译 经过这样做之后,decode的速度大于播放的速度,声音也连续流畅了(但破音存在,播放同一首mp3及此mp3转换而成的wav,在相同的地方存在破音)。 最关键的问题,目前播放是基于I2S中断方式的,每发送一个short就产生一次中断。试过DMA方式,但加入DMA后(DMA1_Channel5),却对SDIO的DMA2_Channel4造成影响,不解中。
zhengrob
2009-08-14
这家伙很懒,什么也没写!
调程序是这样的,有时候意想不到的顺利,有时候意想不到的难以捉摸。 对于这个mp3解码,我们的bottom line就是如果软解总是有若干个小问题牵涉较多精力的话,先上VS1053。这样既省掉这一块的问题,又给其他模块留出了足够的硬件资源。这样争取了时间,降低了难度。当然缺点就是增加了30元的成本,但这也给持续改进留下了机会(比如等软解成熟了,将其放在第二版上)。不知楼主意下如何。 另外,按照LZ定义的软件模块构架,我们是否可以将一些模块分给一些有能力并且乐意参与的网友,由楼主做总体协调并定义出模块接口,从而使这些模块能够并行进行? 按照ourdev上关于这个主题的访问量和回复量,我相信会有相当数量的资深网友愿意参与进来。这是我想到的一个建议。
bernard
2009-08-16
这家伙很懒,什么也没写!
谢谢楼上建议,本来是打算如果要启用硬解的话,那么这个项目还不如不做,所以软解非常关键。 重新试过了,代码不需要优化(-O0)软解也没什么问题。现在是SD卡用DMA方式,I2S也用DMA方式,能够正常播放,还需要解决破音的问题。 进行到这个地步,确实需要仔细的规划规划了,在软件上今天会把模块划分出来,以及如何对这个系统进行优化的方案也拿出来,优化过后,这个系统会是一个非常棒的系统!
bernard
2009-08-16
这家伙很懒,什么也没写!
软件的框架图 [attach]0[/attach] (软件部分设计遵循从粗到细的方式进行层层分解,通过这个也能够看到一个系统,它完整的软件是如何设计出来的) 模块分为几个部分 基础组件部分: RTOS Kernel:非RT-Thread莫属。RT-Thread做为一套完善、稳定的实时操作系统,对于这个应用完全能够适用。通过使用RT-Thread来作为网络收音机的操作系统,大家也能够了解、熟悉、甚至是精通如何使用RT-Thread编程,如何使用RT-Thread来构建商业产品的基础平台。 文件系统:使用RT-Thread内置的DFS虚拟文件系统,目前这个DFS虚拟文件系统包装的是EFSL,以后根据情况可能会换一换,但对上层应用是感觉不到下面文件系统已经被替换(换成另一FAT文件系统实现或另一非FAT文件系统,上层都感觉不到),以后的版本应该会支持Nand Flash。 TCP/IP协议栈:LwIP轻型TCP/IP协议栈,目前和RT-Thread的整合已经非常完善了,对应用层提供了标准的socket接口,并且LwIP自身支持多种协议,例如ICMP, IGMP, DHCP, ppp等。 图形用户界面:RTGUI,这个还没怎么露面,参与这个项目的应该会提前见到它的身影。这个项目应该只会使用到它的基本功能(网络收音机项目包含一个320x240的TFT屏,5向导航键,无触摸屏,主要采用键盘操作)。 USB Mass Storage:U盘,采用STM32 USB固件库来实现一个完整的U盘,使得能够直接从电脑上操作播放器上的文件。在通过U盘操作文件时,系统自动停止播放,关闭打开的文件,不再操作文件,直到断开USB连接。 网络播放应用部分: UI: Information Workbench,用于显示系统的一些信息,例如USB连接状态,电池状态,当前日期、时间等。 UI: Player Workbench,用于显示播放器界面。界面不会做得太过复杂,毕竟软解已经耗费了很多资源,想做视频动画效果估计芯片的能力已经跟不上了。需要包括:播放视图;网络电台列表更新视图;收藏列表视图;当前播放列表视图; UI: Home Workbench,这个实际上是RTGUI的应用管理器,用于启动其他的应用,当前活动应用的列表等,一个workbench等于一个应用。 player模块,播放控制的核心模块。用于控制播放何种格式,何种来源。还有就是通常意义的控制操作,前进、后退、暂停、停止等。 mp3 codec模块,也就是mp3软解库,ID3TAG是需要的。 wav模块,提供wav音频格式的信息解析,及提供音频数据。 wma模块,wma软解库,必须是针对ARM定点优化过的解码库算法。。 netstream模块,网络音频流模块,它会包含几个子模块:http流,rtsp流等。 为了管理STM32F103ZE宝贵的片内SRAM资源,还需要一个sram buffer管理模块,形成一个类似cache的模块,部分的缓冲将直接从它上面分配出来。 设备驱动部分: codec驱动,wm8753驱动,向上层应用提供设备名为snd的抽象设备接口。 keyboard驱动,五向导航键驱动,只用于RTGUI中。 LCD驱动,FSMC接口的LCD驱动,只用于RTGUI中。 网卡驱动,DM9000驱动 STM32的电源管理,会把RT-Thread设备管理模块的电源管理部分实现了。
bernard
2009-08-16
这家伙很懒,什么也没写!
[http://upload.wikimedia.org/wikipedia/commons/0/01/Mp3filestructure.svg](Mp3的格式),好像要FireFox才能打开svg的图形格式文件 ![](http://upload.wikimedia.org/wikipedia/commons/0/01/Mp3filestructure.svg)
bernard
2009-08-19
这家伙很懒,什么也没写!
mp3丢帧的问题解决了,一个完整的mp3播放器正慢慢呈现出来 [s:173]
ningmeng7294
2009-08-19
这家伙很懒,什么也没写!
虽然我出不上力,但是当拉拉队,给大伙加油助威 [s:154]
zhengrob
2009-08-21
这家伙很懒,什么也没写!
Bernard, 很高兴看到软件方面的进展! 关于硬件方面不知道是否已开始。如果需要画线路图,请把与软件相关的pin脚定义列一下:- -- STM32F103ZET6与SRAM,NANDFLASH的连接(参照某个开发板schematic?)。 -- SD card 连接 SDIO, SDcard detect用哪个GPIO? -- DM9000A 使用8 bit还是16bit方式? 它的控制端引脚用哪些GPIOs? -- TFT LCD的型号是否确定为34元的那个? 控制端引脚用哪些GPIOs合适? -- WM8753与STM32F103ZET6的I2S如何连接的?同样控制端引脚用哪些GPIOs合适? -- Buttons 用哪些GPIOs? -- 电源管理用哪个AD口和GPIO控制口? -- 是否要将MCU的pin都引出(2.54mm距)以兼容一个开发板的功能? 其实,最好的方式就是你是用的哪块开发板来调的软件模块,我们的线路图就按照那块开发板来走。这样确定软硬件接口会简单些。
bernard
2009-08-21
这家伙很懒,什么也没写!
现在电路图还没定下来,原来说画图的兄弟临时有些事,现在在考虑接手的事。 硬件是基本都确定下来了,就差图了。pin脚倒确实希望能够都通过2.54mm接出来,这样调试也方便些。
zhengrob
2009-08-21
这家伙很懒,什么也没写!
Bernard, 我来画图吧。请将相关硬件接口细节传给我。
wanghar@163.com
sch大概3-4天。PCB大概4-5天。 我用PADS2005 SP3。
撰写答案
登录
注册新账号
关注者
0
被浏览
30.7k
关于作者
bernard
这家伙很懒,什么也没写!
提问
414
回答
5938
被采纳
76
关注TA
发私信
相关问题
1
[项目]搞个开源的硬件项目
2
硬件计划贴,及时更新,欢迎提意见
3
MMS协议
4
定点的wma解压库-libwma
5
QQ群记录 [20090821]
6
STM32网络收音机PCB报名征集
7
第一版调试记录
8
第二版硬件讨论
9
RADIO项目相关模块规格--欢迎大家自己做板时规格与此兼容,减少重复劳动
10
第一版PCB缺陷列表及第二版要注意的事项
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
TinyUSB Demo运行教程
2
RT-Thread学习大礼包一键带走!
3
freemodbus从机调试说明
4
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
5
基于 RT-Thread 星火一号开发板的俄罗斯方块
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
出出啊
1516
个答案
342
次被采纳
小小李sunny
1440
个答案
289
次被采纳
张世争
799
个答案
171
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部