[发明专利]一种基于DSP的实时操作系统启动时间优化方法在审
申请号: | 202211571795.2 | 申请日: | 2022-12-08 |
公开(公告)号: | CN116107644A | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 侯旋;许霄龙;曾令将 | 申请(专利权)人: | 中船重工(武汉)凌久电子有限责任公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F9/445;G06F8/30;G06F8/41 |
代理公司: | 北京中北知识产权代理有限公司 11253 | 代理人: | 李新昂 |
地址: | 430000 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dsp 实时 操作 系统启动 时间 优化 方法 | ||
1.一种基于DSP的实时操作系统启动时间优化方法,其特征在于:包括DSP编译器,所述DSP编译器在编译过程中自动生成两个全局变量表,分别为__TI_cinit_table和__TI_handler_table;
其中,__TI_cinit_table用于所有数据段的load地址和run地址,__TI_handler_table则用于存放数据解析函数的地址;
所述实时操作系统启动时间优化方法包括以下步骤:
S1)在DSP编译器的编译链接脚本中划分出一块独立内存空间,并增加应用层代码专用的数据段指向该空间,用于存放全局未初始化变量;
S2)在应用层代码中使用#pragma DATA_SECTION预编译指令,将所有全局未初始化变量存放到专用数据段;
S3)修改操作系统启动阶段中的全局变量初始化流程,过滤出应用层代码中定义的全局未初始化变量,并跳过对这些变量的赋值操作。
2.根据权利要求1所述的实时操作系统启动时间优化方法,其特征在于:所述S1)中,所述划分出一块独立内存空间具体过程包括:
S11)在编译链接脚本的MEMORY字段中增加一段内存定义,并指定起始地址和大小;
S12)指定的起始地址应不与已使用的内存冲突,内存大小满足应用层全局未初始化变量的总大小。
3.根据权利要求1所述的实时操作系统启动时间优化方法,其特征在于:所述S1)中,所述DSP编译器的编译链接脚本中描述整个系统静态内存的划分,包括对各个数据段的定义以及专供应用层使用的数据段,所述数据段分别对应片上L2 SRAM、片上共享内存MSM以及片外扩展内存DDR3不同的内存区间。
4.根据权利要求1所述的实时操作系统启动时间优化方法,其特征在于:所述S3)中,所述全局变量初始化流程包括:
S31)从__TI_cinit_table中获取加载地址以及运行地址;
S32)根据加载地址从__TI_handler_table中获取解析函数;
S33)调用对应的解析函数将全局变量数据从加载地址解析到运行地址。
5.根据权利要求4所述的实时操作系统启动时间优化方法,其特征在于,所述解析函数包含三类:
__TI_zero_init,初始化清零,用于实现对未初始化全局变量清零
__TI_decompress_rle24,RLE编码格式解压,用于实现对已初始化全局变量赋值;
和__TI_decompress_none,无编码解压,用于实现对已初始化全局变量赋值。
6.根据权利要求5所述的实时操作系统启动时间优化方法,其特征在于:所述S3)中,所述过滤出应用层代码中定义的全局未初始化变量包括:
判断该全局变量的地址是否属于S1)中描述的独立内存空间,以及该全局变量对应的数据解析函数是否为__TI_zero_init。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中船重工(武汉)凌久电子有限责任公司,未经中船重工(武汉)凌久电子有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211571795.2/1.html,转载请声明来源钻瓜专利网。