面向高速信号平台的多级内存管理方法

文档序号:1672785 发布日期:2019-12-31 浏览:25次 >En<

阅读说明:本技术 面向高速信号平台的多级内存管理方法 (Multi-level memory management method for high-speed signal platform ) 是由 刘雷 王旭 周广蕴 刘毅珍 杨率帅 于 2019-09-18 设计创作,主要内容包括:本发明涉及一种面向高速信号平台的内存管理方法,属于信号处理技术领域,解决代码规模与内存容量之间的矛盾问题,方法包括,将所述信号平台的内存空间划分为应用运行区和镜像驻留区;编译平台的操作系统生成操作系统的镜像文件和系统函数表,编译平台的应用软件生成应用软件的可执行文件和应用入口表;平台加电运行,根据系统函数表,将所述镜像文件加载到镜像驻留区中运行,根据应用入口表,将需要运行的所述可执行文件加载到应用运行区中运行。本发明不裁剪实时操作系统的任何功能,既缩短了应用软件的运行周期,又使得应用软件充分享受操作系统的系统服务,为DSP应用软件提供了完整功能的运行时软件环境。(The invention relates to a memory management method facing a high-speed signal platform, which belongs to the technical field of signal processing and solves the problem of contradiction between code scale and memory capacity; an operating system of the compiling platform generates a mirror image file and a system function table of the operating system, and application software of the compiling platform generates an executable file and an application inlet table of the application software; and powering up the platform for operation, loading the image file into the image resident region for operation according to the system function table, and loading the executable file to be operated into the application operation region for operation according to the application entry table. The invention does not cut any function of the real-time operating system, shortens the running period of the application software, ensures that the application software fully enjoys the system service of the operating system and provides a running software environment with complete functions for the DSP application software.)

面向高速信号平台的多级内存管理方法

技术领域

本发明涉及信号处理技术领域,尤其是一种面向高速信号平台的多级内存管理方法。

背景技术

高速实时信号处理是信号处理中的一个特殊分支。它的主要特点是高速处理和实时处理,被广泛应用在工业和军事的关键领域,如对雷达信号的处理、对通信基站信号的处理等,其中,高速实时信号处理技术的核心是高速信号处理器(DSP)技术。

DSP处理器是一种特殊的具备专门运算部件的单片机,DSP处理器的核通常具有片内、片外存储器,其中,片内存储器大多采用SRAM(Static Random-Access Memory,静态随机存取存储器),片外空间大多采用DDR(Double Data Rate SDRAM,双倍速率SDRAM),每个DSP核具有单独的片内空间,所有处理器核共享片外空间,片内空间程序运行速率超过片外空间一个数量级,同时,由于片内存储器材质成本较高,因此,片内空间只有几百KB大小,而片外空间可达几百MB大小。

通常,实时操作系统都是采用平板式内存管理,将操作系统镜像以及应用程序统一放置在连续的内存空间,全功能的实时操作系统运行空间需要几十MB,应用软件运行空间通常需要几十KB,平板式内存管理无法将操作系统镜像和应用程序同时存储在DSP处理器的片内空间,因此,面向DSP处理器平台,传统的做法是将实时操作系统进行裁剪,只保留任务调度器等功能,然后再将裁剪后的实时操作系统镜像以及应用软件一起加载到DSP的片内空间运行。

随着DSP平台软件功能复杂度的提升,当前面向DSP处理器的软件,不仅要具有信号处理功能,还需要支持网络、支持高速通信总线以及图形图像处理等中间件软件,应用软件对实时操作系统功能需求的增加,带来了实时操作系统代码规模的膨胀,庞大的代码规模与小容量片内存储空间的矛盾,使得传统的裁剪实时操作系统的方法已经无法满足应用软件对操作系统的需求。

发明内容

鉴于上述的分析,本发明旨在提供一种面向高速信号平台的多级内存管理方法,能够在满足DSP处理器存储空间限制的情况下,保留实时操作系统的完整功能。

本发明的目的主要是通过以下技术方案实现的:

本发明公开了一种面向高速信号平台的内存管理方法,包括,

将所述平台的内存空间划分为应用运行区和镜像驻留区;

编译所述平台的操作系统生成操作系统的镜像文件和系统函数表,编译所述平台的应用软件生成应用软件的可执行文件和应用入口表;所述系统函数表,用于记录所述镜像文件载入所述镜像驻留区中运行的入口地址;所述应用入口表,用于记录所述可执行文件载入应用运行区中运行的入口地址;

所述平台加电运行,根据系统函数表,将所述镜像文件加载到镜像驻留区中运行,根据应用入口表,将需要运行的所述可执行文件加载到应用运行区中运行。

进一步地,所述应用运行区设置于所述平台的处理器片内内存空间。

进一步地,根据所述平台处理器的DSP核数量,将信号平台处理器的片内内存空间平均分配成大小相等并且与DSP核对应的应用运行区。

进一步地,所述镜像驻留区设置于所述平台的片外内存空间。

进一步地,根据所述平台的处理器中包括的DSP核数量,将信号平台的片外内存空间平均分配成大小相等并且与DSP核对应的镜像驻留区。

进一步地,在所述操作系统编译中,通过静态指定的方式,指定运行所述镜像文件占用的DSP核和镜像驻留区;指定所述镜像文件载入镜像驻留区的入口地址,记录到所述系统函数表中。

进一步地,通过读取所述镜像文件的符号表,获取操作系统的系统函数、堆空间和栈空间;并静态指定所述系统函数载入镜像驻留区的入口地址,以及堆空间、栈空间的入口地址,记录到系统函数表中。

进一步地,在所述应用软件编译中,通过静态指定的方式,指定运行所述可执行文件占用的DSP核和应用运行区;指定所述可执行文件载入应用运行区的入口地址,记录到应用入口函数表中。

进一步地,在所述应用软件运行过程中,当需要调用所述镜像文件中的指定系统函数时,根据所述系统函数表,获取所述系统函数的入口地址,载入镜像驻留区,运行所述系统函数。

进一步地,所述镜像文件和可执行文件固化到所述信号平台的外部非易失性存储器贮存。

本发明有益效果如下:

不裁剪实时操作系统的任何功能,高效利用高速信号处理(DSP)平台内存空间,操作系统运行在DSP片外空间,应用软件运行在DSP片内空间,既缩短了应用软件的运行周期,又使得应用软件充分享受操作系统的系统服务,为DSP应用软件提供了完整功能的运行时软件环境。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为本发明实施例中的内存管理方法流程图;

图2为本发明实施例中的内存空间划分示意图;

图3为本发明实施例中的系统函数表建立流程图;

图4为本发明实施例中的应用入口函数表建立流程图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。

本实施例公开了一种面向高速信号平台的内存管理方法,如图1所示,包括以下步骤:

步骤S1、将所述信号平台的内存空间划分为应用运行区和镜像驻留区;

所述应用运行区设置于所述信号平台处理器的片内内存空间SRAM(StaticRandom-Access Memory,静态随机存取存储器)中;所述镜像驻留区设置于所述信号平台的片外内存空间DDR SDRAM(Double Data Rate SDRAM,双倍速率SDRAM)中。。

如图2所示,根据高速信号平台处理器中DSP核core的数量,为每一个DSP核在SRAM中分配一个相应的应用运行区,在DDR SDRAM中分配一个相应的镜像驻留区空间,即每一个DSP核具有一个独立的应用运行区和独立的镜像驻留区;

独立的应用运行区或镜像驻留区便于内存空间的管理,可以避免运行过程中的冲突,运行速度更快,调度更加方便。

优选的,所述镜像驻留区可按照片外存储器DDR SDRAM芯片的存储空间的大小和DSP核数平均分配;

优选的,所述应用运行区可按照片内存储器SRAM芯片的存储空间的大小和DSP核数平均分配。

通过将内存空间划分为应用运行区和镜像驻留区,在应用软件运行时,占用相应独立的应用运行区空间,即能满足应用软件的运行周期要求,又能满足对内存空间的占用要求;

在实时操作系统运行时,占用相应独立的镜像驻留区空间,由于镜像驻留区空间为片外的DDR SDRAM内存空间(可达几百MB),可满足实时操作系统运行空间的需要(通常在几十MB);因此,无需裁剪实时操作系统的任何功能,使得应用软件充分享受操作系统的系统服务。

步骤S2、编译平台操作系统生成操作系统的镜像文件和系统函数表,编译应用软件生成应用软件的可执行文件和应用入口表;

所述系统函数表,用于记录所述镜像文件载入所述镜像驻留区运行的入口地址;所述应用入口表,用于记录所述可执行文件载入应用运行区运行的入口地址。

具体的,步骤S2的编译具体包括以下步骤:

步骤S2-1、编译实时操作系统,生成系统镜像文件和系统函数表;

具体的,如图3所示,

1)使用与信号平台对应的编译器,对在信号平台运行的实时操作系统进行编译生成实时操作系统的镜像文件;

在所述操作系统编译中,通过静态指定的方式,指定运行所述镜像文件占用的DSP核和镜像驻留区;指定所述镜像文件载入镜像驻留区的入口地址。

在所述静态指定中,可以指定任意一个DSP核和与其对应的镜像驻留区运行镜像文件;

优选的,由于操作系统运行时,所占资源较大;在静态指定中,将运行的所述镜像文件平均分配到所有的DSP核和镜像驻留区,使操作系统在运行时所站资源更加平均,保证了系统运行的实时性和流程性,并且,操作系统运行时可占用的镜像驻留区内存空间大,无需裁剪实时操作系统的任何功能。

2)通过镜像的符号表生成系统函数表;

通过读取所述镜像文件的符号表,获取操作系统的系统函数、堆空间和栈空间;并静态指定所述系统函数载入镜像驻留区的入口址,以及堆空间、栈空间的入口地址,记录到系统函数表中。如表1所示

表1系统函数表

系统函数 函数入口地址 堆空间入口地址 栈空间入口地址
Function-1 0x7f11 0xff11 0xef11
Function-2 0x7f21 0xff21 0xef21
Function-3 0x7f31 0xff31 0xef31

表1中,每一个系统函数,其对应的函数入口地址、堆空间入口地址和栈空间入口地址均指定在一块镜像驻留区空间内,根据入口地址将镜像驻留区划分为不同的区域,根据函数入口地址载入系统函数进行运行,根据堆空间入口地址或栈空间入口地址,将系统函数运行时产生的堆数据或栈数据缓存到堆空间或栈空间中;

在函数入口地址、堆空间入口地址和栈空间入口地址静态指定中,要考虑系统函数运行所在空间、堆空间和栈空间所占内存区域的大小,在指定时,不能出现交叉占用的情况。

步骤S2-2、编译应用软件,生成可执行文件和应用入口表;

具体的,如图4所示,

1)对应用软件进行编译生成应用软件可执行文件;

应用软件编译中,通过静态指定的方式,指定运行所述可执行文件占用的DSP核和应用运行区;

2)通过静态指定所述应用软件可执行文件在DSP片内空间运行时的入口地址,建立应用入口函数表;

具体的,所述应用入口函数表通过指定应用软件的入口地址手动生成,记录多个应用软件在DSP片内空间的应用运行区运行的入口地址;如表2所示

表2应用入口函数表

应用程序 入口地址
APP-1 0x0f11
APP-2 0x0f21
APP-3 0x0f31

表2中,每一个应用程序,可静态指定多个DSP核中的一个DSP核和运行,并指定该DSP核对应的应用运行区中的一个地址作为应用程序运行的入口地址;

且不同的应用程序可以占用不同DSP核或相同的DSP核,在不同应用程序占用相同DSP核时,在应用运行区中指定不同应用程序的入口地址时,要考虑不同应用程序运行时所占内存空间的大小,在指定时,不能出现交叉占用的情况。

优选的,在建立应用入口函数表时,可以对每个指定运行应用程序的DSP核,单独建立一个对应的应用入口函数表,记录在该DSP核中运行的应用程序,以及对应的入口地址。在具体的运行过程中,采取查表的方式,快速的查找到要运行的应用软件对应的DSP核与运行的应用运行区入口地址。

步骤S2-3、固化操纵系统镜像文件

将编译好的操作系统镜像固化到DSP的外部非易失性存储器贮存,所述操作系统镜像在没有运行之前,只存储在外部非易失性存储器中。

由于所述系统镜像固化到存储空间大的外部非易失性存储器贮存,运行时,通过系统函数表将需要运行的系统函数、堆空间、栈空间载入到与运行DSP内核对应的镜像驻留区,因此不需要对操作系统镜像进行任何裁剪。

步骤S2-4、固化应用软件可执行文件

将编译好的应用软件可执行文件固化到DSP的外部非易失性存储器贮存,所述应用软件在没有运行之前,只存储在外部非易失性存储器中。

步骤S3、所述平台加电运行,根据系统函数表,将所述镜像文件加载到镜像驻留区中运行,根据应用入口表,将需要运行的所述可执行文件加载到应用运行区中运行;

具体的,步骤S3包括:

步骤S3-1、启动电源系统加电;

步骤S3-2、根据系统函数表,将镜像文件中要启动的系统函数加载到镜像驻留区;使操作系统在信号平台中运行;

由于镜像驻留区位于片外内存空间的DDR SDRAM中,内存空间大,在镜像驻留区运行操作系统,无需裁剪实时操作系统的任何功能。

步骤S3-3、当需要运行应用软件时,则根据应用入口表,将应用软件的可执行文件加载到对应的应用运行区中运行;

具体的,根据应用入口表中记录的入口地址,直接跳转到需要运行的应用软件的应用运行区入口地址执行应用软件;

由于应用运行区位于片内内存空间的SRAM,运行速度快,并通过直接跳转的方式,缩短了应用软件的运行周期,提高了应用软件运行的速度,满足高速的需要。

步骤S3-4、当应用软件运行时,根据系统函数表,调用所需的系统服务;

在应用软件运行过程中,当需要调用所述镜像文件中的指定系统函数时,根据所述系统函数表,获取所述系统函数的入口地址,载入镜像驻留区,运行所述系统函数,既能缩短了应用软件的运行周期,又能够使应用软件充分享受操作系统的系统服务,为DSP应用软件提供了完整功能的运行时软件环境。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:逻辑转实体表更新方法及存储控制器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类