CN104090804B - 一种实时dsp嵌入式系统虚拟内存扩容方法 - Google Patents
一种实时dsp嵌入式系统虚拟内存扩容方法 Download PDFInfo
- Publication number
- CN104090804B CN104090804B CN201410334174.1A CN201410334174A CN104090804B CN 104090804 B CN104090804 B CN 104090804B CN 201410334174 A CN201410334174 A CN 201410334174A CN 104090804 B CN104090804 B CN 104090804B
- Authority
- CN
- China
- Prior art keywords
- dsp
- module
- monitoring module
- integrated dispatch
- dispatch monitoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
发明公开了一种实时DSP嵌入式系统虚拟内存扩容方法,方法步骤如下,a.将逻辑功能划分为一个综合调度监控模块和若干个业务功能模块;b.生成目标码文件;c.设计一个或多个共享数据段;d.设计各模块在外部存储空间中的地址分配表;e.利用DSP外部接口烧写软件;f.DSP系统上电后,综合调度监控模块自动运行,按照分配表选择一块或多块存储空间作为全系统运行的共享交互数据块。与现有技术相比,本发明的对嵌入式软件系统采用新的逻辑架构方式,利用实时动态引导、代码和数据分时分段加载的技术手段,使DSP平台能够将外扩存储设备作为系统运行时的虚拟内存使用,同时由于运行架构的先进性,仍能保持满足系统的硬实时性要求。
Description
技术领域
本发明涉及一种内存扩容方法,尤其涉及一种实时DSP嵌入式系统虚拟内存扩容方法。
背景技术
常用的DSP平台其内部可运行程序的内存(IRAM)空间容量较为有限,通常不大于256KB,在应用软件功能较复杂、规模庞大时,容量无法满足软件运行的需求。虽然部分DSP平台提供了允许软件在外扩存储设备(如FLASH、EEPROM等)上直接运行的机制,但DSP控制总线访问外部存储设备速率远远低于访问内部内存的速率,当应用系统对高实时性有硬性要求时,软件运行在外部存储设备上无法满足。
传统上当软件规模超过DSP内存容量时,采用直接在外部存储设备上运行代码的方法,存在如下问题:(a)软件规模大,启动加载耗时长;(b)系统执行程序指令时频繁读取外部存储设备,降低外部存储设备寿命;(c)未有效利用DSP的IRAM;(d)在外扩存储设备上运行的软件无法满足系统的高实时性要求。
发明内容
本发明的目的就在于提供一种基于DSP平台的实时DSP嵌入式系统虚拟内存扩容方法,能够解决复杂应用软件在DSP系统中运行时内存容量不足的问题。
为了实现上述目的,本发明采用的技术方案是:一种实时DSP嵌入式系统虚拟内存扩容方法,方法步骤如下,
a.进行逻辑功能划分,划分为一个综合调度监控模块和若干个业务功能模块;
b.采用DSP编译链接工具,将综合调度监控模块和业务功能模块均编译生成目标码文件;
c.根据各业务功能模块间的数据交互需求,设计一个或多个共享数据段;
d.根据生成的任务程序目标码以及数据段序列,设计各模块在外部存储空间中的地址分配表,在系统运行时,由综合调度监控模块读取该地址分配表,以知晓需加载程序段及数据段的起始地址及长度;
e.利用DSP外部接口烧写软件,从外部接口将综合调度监控模块、业务功能模块、地址分配表的全部目标码文件,依次上传烧写至DSP嵌入式系统的外扩存储设备中,并将综合调度监控模块设为DSP系统上电后自动启动引导至IRAM的默认运行软件;
f.DSP系统上电后,综合调度监控模块自动运行,从外部存储设备中读取地址分配表,按照分配表选择一块或多块存储空间作为全系统运行的共享交互数据块,并对这些数据块进行初始化;
作为优选,步骤a中,所述综合调度监控模块和业务功能模块均为可独立编译、独立运行的软件模块;
作为优选,步骤a中,所述综合调度监控模块运行时占用内存不超过DSP平台提供的IRAM最大容量的20%,各个业务模块独立运行时占用内存均不超过IRAM最大容量的60%,剩余的20%容量保留不使用,以确保嵌入式系统运行的稳定性;
作为优选,步骤e中,所述综合调度监控模块、业务功能模块、地址分配表的各目标码在外扩存储设备中占用的空间段彼此不得覆盖;
作为优选,步骤e中,外扩存储设备为FLASH或者EEPROM。
与现有技术相比,本发明的优点在于:本发明解决了复杂的、大规模的软件系统无法在内存容量不足的DSP平台上运行是大型高实时性嵌入式系统开发的主要瓶颈问题。对嵌入式软件系统采用新的逻辑架构方式,利用实时动态引导、代码和数据分时分段加载的技术手段,使得DSP平台能够将外扩存储设备作为系统运行时的虚拟内存使用,同时由于运行架构的先进性,仍能保持满足系统的硬实时性要求。系统方案先进,易用性高,显著提升了嵌入式软件系统开发的可扩展性和灵活性。
附图说明
图1为DSP平台虚拟内存扩容技术系统架构示意图。
具体实施方式
下面将对本发明作进一步说明。
实施例:一种实时DSP嵌入式系统虚拟内存扩容方法,如图1所示,方法步骤如下,
a.对一个大的复杂应用软件系统按照本方法的设计要求,进行逻辑功能划分和设计,形成多个可独立编译、独立运行的软件模块,包括:一个综合调度监控模块和若干个业务功能模块;综合调度监控模块运行时占用内存不超过DSP平台提供的IRAM最大容量的20%,各个业务模块独立运行时占用内存均不超过IRAM最大容量的60%,剩余的20%容量保留不使用,以确保嵌入式系统运行的稳定性;
b.用DSP编译链接工具,将各个独立软件模块均编译生成目标码文件,假定命名为system.dat、task_1.dat、task_2.dat……task_n.dat;
c.根据各业务功能模块间的数据交互需求,设计一个或多个共享数据段,其数据格式和内容均可根据系统需求自定义,假定命名为data_1、data_2、……data_m;
d.根据生成的任务程序目标码以及数据段序列,设计各模块在外部存储空间中的地址分配表assign_table。在系统运行时,由综合调度监控模块读取该表,以知晓需加载程序段及数据段的起始地址及长度;
e.利用DSP外部接口烧写软件(其软件需根据需求自行开发),从外部接口如串口、CAN总线接口等,将system.dat、assign_table、task_1.dat…等全部目标码文件,依次上传烧写至DSP嵌入式系统的外扩存储设备中,外扩存储设备为FLASH或者EEPROM,各目标码在外扩存储设备中占用的空间段彼此不得覆盖。必须将综合调度监控模块system.dat设为DSP系统上电后自动启动引导至IRAM的默认运行软件;
f.DSP系统上电后,综合调度监控模块自动运行,从外部存储设备中读取assign_table,按照分配表中的设计,选择一块或多块存储空间作为全系统运行的共享交互数据块,并对这些数据块进行初始化;
系统运行时,外扩存储设备上的各预置程序块、数据块均为软件系统的虚拟内存扩容空间。综合调度监控模块负责根据系统当前业务需要,依据assign_table将对应的业务功能软件模块task_i.dat(i=1,2,….n)从外部存储设备上读取出来,动态加载入IRAM中,同时将该业务模块运行需要的输入数据写入外部存储设备的对应数据块data_k(k=1,2……m)中,之后将程序运行指针动态跳转至IRAM中业务功能软件模块的入口地址,将运行权交给业务模块k,业务模块k在完成功能任务后,输出结果数据至目标数据块data_p(p=1,2……m),向DSP状态控制寄存器中写入后续目标业务软件模块编号,之后将程序运行指针跳转回IRAM中综合调度监控模块的入口地址,将运行权交还综合监控调度模块,综合监控调度模块读取DSP状态控制寄存器中的业务软件模块编号,假定为j(j=1,2,….n),则加载task_j.dat进入IRAM,跳转执行后续业务功能,以此循环演进,直至软件系统完成所有预定业务功能,或者系统断电停止运行为止。
本发明的特点如下,
(a)对应用软件系统进行动态分段加载,启动加载速度快;
(b)对外部存储设备中的程序块、数据块均为一次性整体读取,避免频繁访问外部设备;
(c)程序实际运行时均在IRAM中;
(d)通过虚拟内存扩容,同时保证了系统的高实时性和对大规模软件运行的支持。
以上对本发明所提供的一种实时DSP嵌入式系统虚拟内存扩容方法进行了详尽介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,对本发明的变更和改进将是可能的,而不会超出附加权利要求所规定的构思和范围,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (3)
1.一种实时DSP嵌入式系统虚拟内存扩容方法,其特征在于:方法步骤如下,
a.进行逻辑功能划分,划分为一个综合调度监控模块和若干个业务功能模块;
b.采用DSP编译链接工具,将综合调度监控模块和业务功能模块均编译生成目标码文件;
c.根据各业务功能模块间的数据交互需求,设计一个或多个共享数据段;
d.根据生成的任务程序目标码以及数据段序列,设计各模块在外部存储空间中的地址分配表,在系统运行时,由综合调度监控模块读取该地址分配表,以知晓需加载程序段及数据段的起始地址及长度;
e.利用DSP外部接口烧写软件,从外部接口将综合调度监控模块、业务功能模块、地址分配表的全部目标码文件,依次上传烧写至DSP嵌入式系统的外扩存储设备中,并将综合调度监控模块设为DSP系统上电后自动启动引导至IRAM的默认运行软件,所述综合调度监控模块、业务功能模块、地址分配表的各目标码在外扩存储设备中占用的空间段彼此不得覆盖;
f.DSP系统上电后,综合调度监控模块自动运行,从外部存储设备中读取地址分配表,按照分配表选择一块或多块存储空间作为全系统运行的共享交互数据块,并对这些数据块进行初始化;
步骤a中,所述综合调度监控模块运行时占用内存不超过DSP平台提供的IRAM最大容量的20%,各个业务模块独立运行时占用内存均不超过IRAM最大容量的60%。
2.根据权利要求1所述的一种实时DSP嵌入式系统虚拟内存扩容方法,其特征在于:步骤a中,所述综合调度监控模块和业务功能模块均为可独立编译、独立运行的软件模块。
3.根据权利要求1所述的一种实时DSP嵌入式系统虚拟内存扩容方法,其特征在于:步骤e中,外扩存储设备为FLASH或者EEPROM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410334174.1A CN104090804B (zh) | 2014-07-15 | 2014-07-15 | 一种实时dsp嵌入式系统虚拟内存扩容方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410334174.1A CN104090804B (zh) | 2014-07-15 | 2014-07-15 | 一种实时dsp嵌入式系统虚拟内存扩容方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104090804A CN104090804A (zh) | 2014-10-08 |
CN104090804B true CN104090804B (zh) | 2018-02-16 |
Family
ID=51638523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410334174.1A Active CN104090804B (zh) | 2014-07-15 | 2014-07-15 | 一种实时dsp嵌入式系统虚拟内存扩容方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104090804B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557427B (zh) * | 2015-09-25 | 2021-11-12 | 中兴通讯股份有限公司 | 共享内存数据库的内存管理方法及装置 |
CN106502961A (zh) * | 2016-10-26 | 2017-03-15 | 合肥润客软件科技有限公司 | 一种用于dsp软件开发系统的操作方法 |
CN108132909A (zh) * | 2016-12-01 | 2018-06-08 | 深圳市三诺数字科技有限公司 | 一种dsp数据存储的处理方法及装置 |
CN106843925B (zh) * | 2016-12-16 | 2020-10-23 | 中国电子科技集团公司第三十研究所 | 一种运用于dsp的功能模块动态加载方法 |
CN112199121B (zh) * | 2020-09-28 | 2023-06-06 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Dsp按需扩容加载程序方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169459A (zh) * | 2010-11-29 | 2011-08-31 | 北京握奇数据系统有限公司 | 一种访问数据的方法、装置和智能卡 |
CN102193814A (zh) * | 2010-03-09 | 2011-09-21 | 上海拜翰网络科技有限公司 | 嵌入式虚拟化内存动态分配方法及系统 |
CN102799536A (zh) * | 2011-05-24 | 2012-11-28 | 中兴通讯股份有限公司 | 一种嵌入式系统中存储设备容量自适应的方法及装置 |
CN103309819A (zh) * | 2013-05-30 | 2013-09-18 | 苏州亮智科技有限公司 | 嵌入式系统及其中的内存安全管理方法 |
-
2014
- 2014-07-15 CN CN201410334174.1A patent/CN104090804B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193814A (zh) * | 2010-03-09 | 2011-09-21 | 上海拜翰网络科技有限公司 | 嵌入式虚拟化内存动态分配方法及系统 |
CN102169459A (zh) * | 2010-11-29 | 2011-08-31 | 北京握奇数据系统有限公司 | 一种访问数据的方法、装置和智能卡 |
CN102799536A (zh) * | 2011-05-24 | 2012-11-28 | 中兴通讯股份有限公司 | 一种嵌入式系统中存储设备容量自适应的方法及装置 |
CN103309819A (zh) * | 2013-05-30 | 2013-09-18 | 苏州亮智科技有限公司 | 嵌入式系统及其中的内存安全管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104090804A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104090804B (zh) | 一种实时dsp嵌入式系统虚拟内存扩容方法 | |
US3713107A (en) | Firmware sort processor system | |
US20210097221A1 (en) | Optimization method for graph processing based on heterogeneous fpga data streams | |
KR20150112778A (ko) | 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈 | |
US8595726B2 (en) | Apparatus and method for parallel processing | |
JP2015526821A5 (zh) | ||
CN102193885A (zh) | 支持虚拟信道的非挥发性存储器控制器 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN107341115A (zh) | 虚拟机内存访问方法、系统和电子设备 | |
US10296400B2 (en) | Configuring resources used by a graphics processing unit | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
CN103988174A (zh) | 无需额外寄存器执行寄存器重命名的数据处理设备和方法 | |
CN106648758A (zh) | 一种多核处理器boot启动系统及方法 | |
US9910418B2 (en) | Method and programming system for programming an automation component | |
US8887142B2 (en) | Loop control flow diversion | |
CN106164810A (zh) | 使用基于电压的功能的性能变化的指令优化 | |
CN103646005A (zh) | 基于微核的可重构处理器、调度设备及其方法 | |
CN111123818B (zh) | 一种plc浮点数和定点数相互转换控制系统及方法 | |
US20150100772A1 (en) | Reconfigurable processor and method of operating the same | |
CN112948136A (zh) | 一种嵌入式操作系统异步日志记录的实现方法 | |
CN104156316A (zh) | 一种Hadoop集群批处理作业的方法及系统 | |
CN108121285A (zh) | 基于连续功能图的应用软件协同编译方法及装置 | |
US8806460B2 (en) | Method and apparatus for avoiding register interference | |
CN104063329A (zh) | 64位立即数处理方法及装置 | |
US20230185991A1 (en) | Multi-processor simulation on a multi-core machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |