相信大家在前面弄了下会发现在开发板上还是不能播放文件,这里还得修改下内核:
内核版本:2.6.12
编译器版本:arm-linux-gcc 3.4.1
1  修改/arch/arm/mach-s3c2410/devs.c
解决文件系统大于30M无法烧到板上的问题:
struct mtd_partition gec24xx_default_nand_part_b[] = {
 [0] = {
  .name = "Bootload",
  .size = 0x00030000,
  .offset = 0
 },
 [1] = {
  .name = "Kernel",
  .size = 0x001d0000,
  .offset = 0x00030000,
 },
 [2] = {
  .name = "RootFileSystem",
  .size = 0x03e00000,   
  .offset = 0x00200000,
 }
 
};
struct s3c2410_nand_set nandset ={
nr_partitions: 3 ,
partitions: gec24xx_default_nand_part_b,  //partition_info ,
};

2  修改/sound/oss/s3c2410-oss.c文件,解决mplayer无法使用oss播放音频
音频无法播放的原因及解决:
这个问题产生的根源最终追溯到音频的驱动部分。现在大部分的嵌入式板子都使用菲利普uda1341音频芯片,
因而也都使用了相同一个音频驱动,即MIZI 公司拥有版权的linux   uda1341音频驱动,这个驱动基本上符合了oss的规范,
但是当使用到多段DMA音频数据传输时,出现了一个问题,即DMA缓冲的建立发生在第一次调用write()函数
将音频数据传送到设备描述符的时候,然而oss驱动的调用者通常要在打开音频设备描述时候,就期望获取DMA缓冲的信息,
然而因为缓冲尚未建立,因而返回缓冲大小为0这个结果。 
  
      解决的办法是在音频驱动源码的smdk2410_audio_open()函数体,加上如下一段代码, 
  
  if   (!output_stream   .buffers   &&   audio_setup_buf(&output_stream))    
                                      return   -ENOMEM; 
  
  添加的位置具体见以下代码的粗体部分:    
  
  static   int   smdk2410_audio_open(struct   inode   *inode,   struct   file   *file)    
  {    
                int   cold   =   !audio_active;   
  
                DPRINTK("audio_open\n");    
  
                if   ((file->f_flags   &   O_ACCMODE)   ==   O_RDONLY)   { 
  
                              if   (audio_rd_refcount   ||   audio_wr_refcount) 
  
                                            return   -EBUSY; 
  
                              audio_rd_refcount++; 
  
                }   else   if   ((file->f_flags   &   O_ACCMODE)   ==   O_WRONLY)   { 
  
                              if   (audio_wr_refcount) 
  
                                            return   -EBUSY; 
  
                              audio_wr_refcount++; 
  
                }   else   if   ((file->f_flags   &   O_ACCMODE)   ==   O_RDWR)   { 
  
                              if   (audio_rd_refcount   ||   audio_wr_refcount) 
  
                                            return   -EBUSY; 
  
                              audio_rd_refcount++; 
  
                              audio_wr_refcount++; 
  
                }   else 
  
                              return   -EINVAL;    
  
              if   (cold)   { 
  
                              audio_rate   =   AUDIO_RATE_DEFAULT; 
  
                              audio_channels   =   AUDIO_CHANNELS_DEFAULT; 
  
                              audio_fragsize   =   AUDIO_FRAGSIZE_DEFAULT; 
  
                              audio_nbfrags   =   AUDIO_NBFRAGS_DEFAULT; 
  
                              if   ((file->f_mode   &   FMODE_WRITE)){ 
  
                                                          init_s3c2410_iis_bus_tx(); 
  
                                                          audio_clear_buf(&output_stream); 
  
                                //   加上以下这行代码       
                                if   (!output_stream   .buffers   &&   audio_setup_buf(&output_stream))    
                                      return   -ENOMEM;    
                              } 
  
                              if   ((file->f_mode   &   FMODE_READ)){ 
  
                                                          init_s3c2410_iis_bus_rx(); 
  
                                                          audio_clear_buf(&input_stream); 
  
                              } 
  
                }    
  
                MOD_INC_USE_COUNT; 
  
                return   0; 
  
  }    
  
  改完驱动后,重新编译内核。  
重新烧下zImage吧,相信大家照这样下来基本上都能播放文件了。  

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>

阅读(596) | 评论(1) | 转发(0) |

0

上一篇:mplayer移植记录(一)

下一篇:mplayer移植到S3C2440(三)制作皮肤

相关热门文章
  • uboot移植第一课
  • 常州同城好易购 加盟代理 加盟...
  • LCD驱动移植
  • s3c6410 arm移植实验四:qte4...
  • 网卡AX88796(NE2000兼容网卡...
  • linux守护进程的几个关键地方...
  • stagefright与opencore对比
  • 嵌入式Linux之我行——u-boot-...
  • 嵌入式Linux之我行——内核、...
  • CodeNavigator -- 程序员必备...
  • ChinaUnix & ITPUB社区12周年...
  • ssh连接出现以下提示,求解...
  • 如何扩展MYSQL
  • 准备做一个大型门户,用户什么...
  • gbk or utf8
给主人留下些什么吧!~~

chinaunix网友2011-03-02 20:30:55

请问smdk2410_audio_open()函数是在哪个文件里面?

回复 | 举报

评论热议

mplayer移植到S3C2440(二)相关推荐

  1. 嵌入式linux mplayer,Mplayer 移植

    关于mplayer移植网上资料很多,但都很混乱.在此,我做了一个关于mplayer 的详细总结.在做之前好在解压源码包后,先通过./configure --help看一下相关配置. X86的LINUX ...

  2. 最新版本mplayer移植pxa270成功

    最新版本mplayer移植pxa270成功 1.下载新版本的mplayer,方法可以参见其他版本的README cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/c ...

  3. SimpleFOC移植STM32(二)—— 开环控制

    目录 注意事项 一.硬件介绍 1.1.硬件准备 1.1.1.SimpleMotor方案 1.1.2.SimpleFOCShield V2.0.3方案 1.2.硬件连接 1.2.1.原理图 1.2.2. ...

  4. 嵌入式linux播放视频 mplayer,mplayer 移植后无法播放视频

    请 登录 后使用快捷导航 没有帐号?注册 阅 2800|回 5 最后登录2016-9-8 在线时间1 小时 威望0分 芯积分E金币好友 发表于2010-1-15 11:31 mplayer 移植后无法 ...

  5. linux系统移植篇(二)—— Uboot使用介绍

    linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...

  6. 最新版本mplayer移植pxa270成功!

    最新版本mplayer移植pxa270成功 1.下载新版本的mplayer,方法可以参见其他版本的README svn checkout svn://svn.mplayerhq.hu/mplayer/ ...

  7. MPlayer移植步骤

    Mplayer移植 目录 Mplayer移植 前期准备: 中期执行: 测试: 后期总结: 前期准备: 1.软件:MPlayer-1.0rc4.tar libmad-0.15.1b.tar 2.环境:L ...

  8. MPlayer移植到arm开发板

    今天用了一天的时间将mplayer移植到arm开发板上,移植过程中遇到各种问题,在此做以记录. mplayer版本:1.0rc2 Ubuntu版本:12.04 64位 移植过程: 1.su获取root ...

  9. U-Boot移植教程之二:移植

    内容来自 韦东山<嵌入式Linux应用开发完全手册> 一.U-Boot移植 开发板smdk2410的配置适用于大多数S3C2410单板,或是只需要极少的修改即可使用.但是目前U-Boot中 ...

最新文章

  1. 用最骚的话让你彻底弄懂贝叶斯!
  2. Linux修改文件/目录权限
  3. android+ebook控件,Android 自定义控件 eBook 翻书效果
  4. 二叉树的三种遍历(递归与非递归) + 层次遍历
  5. EL表达式, JSTL, 获取map集合中key的value
  6. 信息学奥赛一本通(1169:大整数减法)
  7. Android 系统优化(35)---Android 中如何计算 App 的启动时间?
  8. 电商扣减库存_电商系统秒杀架构设计
  9. wifi网卡工作模式和iwconfig
  10. Linux文件莫名被删除,【Linux】Linux文件被删除后的恢复方法
  11. 无线 WIFI 的13个信道频率范围
  12. 粥左罗教你从零开始学写作笔记系列
  13. PMP项目管理是什么意思?
  14. png图片尺寸大小调整
  15. iPad----------教你如何查询ipad型号
  16. 刀片机服务器的虚拟化,刀片机服务器虚拟化
  17. 《数据结构》—— 二叉树的复制、查深度与算结点操作
  18. 分布式系统实践学习总结
  19. X5045看门狗电路
  20. 小红书笔记怎么推广?笔记关键词有什么需要注意?

热门文章

  1. 特征选择方法总结(过滤式,包裹式,嵌入式)
  2. 完全卸载Oracle(亲身体验完整版)
  3. 006 - CMake 安装动态库并生成 XxxConfig.cmake 文件
  4. PYTHON CIS线阵相机(PYTHON CISC)
  5. java-php-python-ssm-诗歌分享平台-计算机毕业设计
  6. 大姐夫说人类五年内就要重返月球了!
  7. mysql分区方法_mysql 分区PARTITIONS之分区方法
  8. android实现runnable接口,013 Android多线程-实现Runnable接口
  9. 【金猿产品展】Stratifyd——敏捷AI驱动的客户体验数据分析平台
  10. 如何关闭 FlashGet 右侧的网页