首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Linux下ColdFire片内SRAM的应用程序优化设计 02

Linux下ColdFire片内SRAM的应用程序优化设计 02

3 基于片内SRAM的优化设计方案
  3.1 方案分析
  SRAM指令执行速度要比DRAM快得多。Cold-Fire5329处理器内部集成了32 KB的SRAM,本设计方案将充分利用处理器片内SRAM来对解码程序进行优化。首先对源代码中的主要解码函数进行分析,如表1所列。可以看到驱动写函数(write)、子带综合(MPEGSUB_synthesis)、反向修正离散余弦变换(imdct_I)和快速离散余弦变换(fast_dct)对处理器资源消耗较大,几乎占用80%的解码时间。根据分析结果,分别把音频驱动程序和上述解码函数放进SRAM中执行,以提高流媒体解码器的执行速度,降低其对处理器资源的消耗。

  3.2 配置音频驱动程序到片内SRAM中执行
  Linux操作系统把内核和运行在其上的应用程序分成两个管理层次,也就是常说的“内核态”和“用户态”。内核态具有较高的应用权限,可以控制处理器内存的映射和分配方式。音频驱动程序是系统内核的重要组成部分,工作在内核态,实现不断从用户空间解码文件中读取音频信息,以及驱动音频芯片播放声音等相关功能。通过修改μClinux-2.6内核代码,可以将音频驱动程序配置到片内SRAM中执行,主要通过修改系统链接文件来实现。系统链接文件用于将输入文件根据一定的规则合并成一个输出文件,并对符号与地址进行绑定。
  为了在修改内核代码的同时不影响系统其他文件的正常运行,要在内核链接脚本中添加新的段区定义(.sramcode),指定该段区链接加载地址为处理器片内SRAM,并在.sramcode段区内定义代码段(.sramtext)和数据段(.sramdata),分别用于存储驱动中的代码和数据。对齐方式采用ALIGN(4),因为对32位微处理器来说,该对齐方式将有效减少处理器执行周期,提高执行效率。然后,使用2个指针_lsramcode和_lsramcodeend分别指向,sramcode段区的段首和段尾,具体实现如下:

返回列表