关于内存分页重叠的解决方法

操作方法

  • 01

    关于内存分页重叠的解决 在对MP3解码程序从16位定点C算法移植到FD216 16位定点DSP过程中,我发现代码和数据数量很大,无法放置在一页内存中,必须进行内存分页。 要正确进行内存分页,首先我们来了解FD216的内存结构。 FD216的整个内存由Program-Code Memory(CM)、Program-Data Memory( PM)、Data Memory (DM)和I/O存储空间四部分组成。 1、Program-Code Memory(CM):存储DSP程序代码。 24k*24片内CM内存,其中分为两部份: 1个8k字页(0x0000~0x1fff);4个4k字重叠页(0x2000~0x2fff),使用pmovlay寄存器的第3位~第0位来选择使用哪一CM重叠页。 2、Program-Data Memory( PM):存储数据变量。 8k*16片内PM内存,分为2页重叠页,另外4个4k*16片外PM字重叠页,地址空间均为0x3000~0x3fff,使用pmovlay寄存器的第7位~第4位来选择使用哪一PM重叠页。 3、Data Memory (DM):存储数据变量和内存映射寄存器。 片内有1个8k*16字页,片外有4个8k*16字重叠页,地址空间为0x0000~0x1fff。 4、IO存储空间:用于DSP和外围器件的连接,不涉及分页问题。本系统不使用I/O内存空间。 具体分页过程 使用fd2ln –groupgroupfile来进行分页,并生成可烧录到flash中的.EXE文件。 groupfile例子: main                       需要链接的文件 -a fd216       指定系统结构文件名为fd216.sys -e page0       生成page0.exe可执行文件 -g            产生后缀.sym的符号表文件 -x            产生后缀.map的内存映射文件 -end file1 -a fd216 -e page1 -g -x -end file2 -a fd216 -e page2 -g -x -end table0 -a fd216 -e page3 -g -x -end table1 -a fd216 -e page4 -g -x -end 用fd2osplt -v-m page查看程序、数据在RAM中的分页放置情况。发现分出了多个DM、PM、CM重叠页,检查page*.map文件,各个模块的全局DM变量都从0x0地址开始分配,由于各个模块都有自己的全局变量,所以fd2ln –group groupfile时自动对DM分页。改进:把C程序中所有的全局变量都定义在同一个文件main.c中,需要调用它的文件用extern说明。重新make。修改后的groupfile如下。 但这样处理后,虽然DM只占了一页,但检查page0.map文件,发现有些外部变量没分配绝对地址

(0)

相关推荐

  • 电脑内存报警故障分析及解决方法

    故障分析:电脑内存出现故障的表现形式有很多,比如电脑内存不规范,内存条插入插槽有一定的空隙,内存条的金手指工艺差及内存条和空气中的氧气导致金手指的氧化层加厚种种情况都是会造成内存异常出现内存报警。 内 ...

  • win7 msconfig最大内存设置为0解决方法

    win7 msconfig最大内存设置为0解决方法 Windows 最大内存 本来想写写前因后果的,想想如果你现在也是这个问题的话,一定没时间看完整个始末. 我就说说我的解决方法吧. 进入 启动修复 ...

  • Win8.1系统audiodg.exe进程占用内存的原因和解决方法

    电脑安装上Win8.1系统后发现运行速度非常慢,打开任务管理器发现audiodg.exe进程占用比较大的内存,怎么办呢?为什么audiodg.exe进程会占用那么大的内存呢?很多新手都为此问题困惑,所 ...

  • win10内存不能written怎么办 win10该内存不能为written解决方法

    win10该内存不能为written解决方法: 1.首先,建议大家先使用杀毒软件对该软件进行扫描,看看是否存在病毒或者是木马. 2.如果不行的话,大家试着同时按下win+R打开电脑的运行窗口,然后输入 ...

  • Win10电脑内存占用过高怎么办 win10电脑内存占用高的解决方法

    一些用了几年或配置比较低的电脑,在如今使用中经常会出现CPU和内存占用太高,而出现卡顿等问题.今天小编以Win10系统为例,教大家如何优化电脑内存占用高的问题,尽可能提升电脑的流畅性. Win10电脑 ...

  • 绝地求生游戏内存不能为read解决方法

    绝地求生游戏内存不能为read解决方法,这里,让小编给大家介绍一下. 操作方法 01 进入系统桌面后点击桌面上的此电脑图标,选择属性. 02 接着进入系统设置中. 03 点击图中箭头所指的设置按钮. ...

  • IE6内存泄露的另类解决方法

    Hedger Wang 在国内 blog 上得到的方法:使用 try … finally 结构来使对象最终为 null ,以阻止内存泄露。 其中举了个例子: function createButton ...

  • win7系统无法下载4G内存以上的文件解决方法

    现在许多人都喜欢用U盘来传输和拷贝文件,可上在拷贝文件的过程中却发现u盘无法拷贝单个超过或等于4G的大文件,不然就拷贝失败.来看看下文的解决方法吧. 1.右键点击你存放文件的磁盘,点属性,这时你在“文 ...

  • 绝地求生应用程序错误内存不能为read解决方法

    绝地求生大逃杀提示内存不能为read怎么办呢?开始游戏时跳出下面这个错误提示,分硬件和软件两个方面的问题,但常见的主要是软件问题.下面绝地求生游戏助手奇游加速器与玩家们分享5个解决方法,一起来看看吧. ...