一种运用于DSP的功能模块动态加载方法与流程

文档序号:12664576阅读:932来源:国知局

本发明涉及一种运用于DSP的功能模块动态加载方法。



背景技术:

DSP芯片是一个通用模块,作为资源管理的核心功能模块,解决诸多项目的资源管理需求,并为项目设备提供个性功能服务(个性服务的功能数量不统一,运行参数不统一)。DSP需对诸多项目的需求进行分解,将通用功能固化在主控程序中,将各项目个性化的资源管理需求、功能需求以功能模块的形式“动态加载”,实现DSP芯片对项目的支撑。

当前DSP功能模块动态加载时,其功能模块的大小、运行空间往往是事先固定的,当功能模块因变化需调整运行空间或大小时,DSP主控程序也需要做相应调整才能适应功能模块的变化。原有的功能模块执行码的产生方式也存在缺陷,无法在功能模块中增加变量或固化数据。上述缺点,给功能模块的管理和功能扩展带来不便。



技术实现要素:

为了克服现有技术的上述缺点,本发明提供了一种运用于DSP的功能模块动态加载方法。

本发明解决其技术问题所采用的技术方案是:一种运用于DSP的功能模块动态加载方法,包括如下步骤:

第一步、为主控逻辑和功能模块划分运行空间;

第二步、明确功能模块的对外接口,确保具有相似功能的模块的接口或彼此可替换的功能模块的接口,都是一致的;

第三步、分别形成主控逻辑的工程和功能模块的工程:

1)主控逻辑的代码单独形成一个独立工程;

2)每个功能模块的代码单独形成一个独立工程;

3)形成独立的主控逻辑目标码;

4)形成功能模块的执行码;

第四步、完成功能模块的描述信息;

第五步、形成功能模块的目标码;

第六步、主控逻辑根据功能模块的目标码对功能模块进行加载、卸载、更新、删除操作。

与现有技术相比,本发明的积极效果是:

(1)功能模块目标码与主控逻辑目标码可分别产生,单独更换;

(2)功能模块与主控逻辑基于接口进行交互,耦合性低;

(3)功能模块可存储变量或固化数据;

(4)主控逻辑可按需动态加载功能模块。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1为本发明的工作原理示意图。

具体实施方式

DSP芯片属于嵌入式芯片,该芯片在无操作系统的情况下,其内存资源是全局一致的。在产生DSP的主控逻辑和功能模块时,只要预先规划好主控逻辑和功能模块的运行空间(内存范围),使两部分内存不存在交集,则主控逻辑和功能模块在运行时均可正常运行。其空间分配示意图如图1所示:

(1)主控逻辑

主控逻辑负责DSP的主要功能和共性功能,负责所有功能的调度,并维护DSP运行的状态。

(2)功能模块

独立分割出来的功能或多个功能的集合。

首先需针对DSP做整体规划,划分出主控逻辑与功能模块的运行空间。

其次,制定标准的功能模块目标码描述信息。该信息记录了具体功能模块的运行空间、模块特征等信息,并且该信息可被主控逻辑正确识别。主控逻辑根据此信息可正确加载功能模块,提取功能模块接口使用。

第一步,为主控逻辑和功能模块划分运行空间。主控逻辑与功能模块的运行空间不要出现重叠,功能模块的运行空间尽量大,以便容纳足够的功能模块。

第二步,明确功能模块的对外接口,需确保具有相似功能的模块的接口或彼此可替换的功能模块的接口,都是一致的。

第三步,分别形成主控逻辑的工程和功能模块的工程。

1)主控逻辑的代码单独形成一个独立工程。主控逻辑的独立工程,必须与第一步中规划的主控逻辑运行空间一致。

2)功能模块的代码单独形成独立工程(如果需要多个功能模块,就每个功能模块形成一个独立工程)。每个功能模块的独立工程,都必须与第一步中规划的功能模块运行空间一致。如果有多个功能模块,需确保所有功能模块的运行空间,彼此不重叠,且均在第一步规划的功能模块运行空间中。

DSP的工程编译完成后,常见的section包括.text、.const、.cinit、.far、.bss、.stack、switch和.sysmem。其中,.text、.const、.far、.bss、.switch是必须放置在规划的功能模块运行空间,且不与其它功能模块的运行空间重叠。而.cinit、.stack最终不会作为功能模块的目标码,可配置到任何空间。.sysmem根据功能模块实际情况选择,如无需使用,则可配置到任何空间。该功能模块的各函数接口,需使用自定义section定位到该功能模块运行空间的起始地址。

3)形成独立的主控逻辑目标码。

4)用本专利方法形成功能模块的执行码。

功能模块的执行文件.out形成后,使用DSP的模拟器加载此执行文件,并运行到main函数入口。此时,使用DSP的内存存储功能,将该功能模块的内存空间中的有效数据(该数据大小,可根据.map文件获得),存储成二进制文件。此二进制文件就是功能模块的执行码。

第四步,完成功能模块的描述信息。使用XML文件,对该功能模块进行描述,如:运行空间的起始地址,名称等,并可针对功能模块的特点,调整或添加描述信息。该描述信息,可使主控程序知悉功能模块的特点,并便于功能模块的扩展和管理。

第五步,形成功能模块的目标码。将功能模块的描述信息和功能模块的执行码,用自定义结构“打包”,形成一个具有自描述信息的整体。该整体是功能模块的目标码。

执行上述步骤后,主控逻辑可根据功能模块的目标码,得到功能模块的信息,便于根据具体的工作需求,随时对功能模块进行加载、卸载、更新、删除等操作。对于N选1方式使用功能模块,同一时间主控逻辑仅加载一个功能模块,降低了对芯片内存空间的需求。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1