发布信息

嵌入式设备中节省内存占用的DSP固件加载方法与流程 专利技术说明

作者:admin      2023-07-26 10:56:32     972



计算;推算;计数设备的制造及其应用技术嵌入式设备中节省内存占用的dsp固件加载方法技术领域1.本发明属于计算机技术领域,尤其是嵌入式技术领域,具体涉及一种嵌入式设备中节省内存占用的dsp固件加载方法。背景技术:2.目前,随着嵌入式设备应用领域的不断扩大,嵌入式设备的安全问题越来越受到重视。为了确保嵌入式设备的安全性,许多嵌入式设备采用了高级安全特性,例如数据加密和内存权限控制。3.传统方案是把dsp固件和dsp驱动一起编译进系统内核,因此dsp模块的内存占用通常由dsp固件存储内存和dsp工作内存组成。dsp工作内存通常由text段、data段、堆栈段三部分组成。对于具有高级安全特性的系统,dsp工作内存是有权限控制的,cpu没有权限访问,m2m有访问权限。在系统启动时,m2m将dsp固件由dsp固件内存加载到dsp工作内存的text段。还有一种方案,将dsp固件放到外部存储flash中,在系统启动时,动态分配一段临时内存,cpu将dsp固件从外部存储加载到这段临时内存,m2m将dsp固件由临时内存加载到dsp工作内存的text段。可以看出,无论采用何种方式,高级安全特性通常会增加设备中dsp模块的内存占用,增加了成本,降低设备的市场竞争力。因此,如何节省内存成为高级安全嵌入式设备中的一个重要问题。采用动态分配临时内存的方案,由于dsp固件所占内存量比较大,而系统内存相对较小,不能分配出匹配的临时内存,可能存在分配失败的风险,系统无法工作。4.申请号为202011129782.0的发明专利申请公开了一种固件数据加载方法:从物理内存的缓冲区读取固件数据,缓冲区保存有虚拟机管理器从文件系统的模拟文件中读取的固件数据,模拟文件为用于模拟存储固件数据的非易失性存储器的文件,将读取的固件内容和固件目标认证码加载到物理内存的固件临时信息中;基于固件目标认证码验证固件内容是否完整;若验证固件内容完整,将固件临时信息中的固件内容和固件目标认证码,加载到物理内存的固件关键信息中。技术实现要素:5.本发明的目的是针对现有技术的不足,提供实现了一种嵌入式设备中节省内存占用的dsp固件加载方法。本发明方法包括:6.(1)在编写dsp固件代码时,按照以下操作:7.将dsp固件按实际功能拆分成多个能够单独运行的小固件,在运行时按需加载到dsp工作内存text段;8.对于能够通过dsp专用汇编语言实现编码的部分采用dsp专用汇编语言进行编码;9.使用位图存储dsp固件常用数据;10.(2)使用静态分配内存的方式分配dsp工作内存,dsp工作内存由text段、data段和堆栈段三部分组成,其中text段和data段具有高级安全特性,cpu无权访问,堆栈段无高级安全特性,cpu可以访问;11.(3)在加载dsp固件时,按照以下操作:12.将dsp固件放在外部存储flash中,在运行dsp模块时才加载到dsp工作内存;加载时,首先cpu从外部存储中读取dsp固件,加载到dsp工作内存的堆栈段;然后m2m模块将dsp工作内存的堆栈段的dsp固件加载到dsp工作内存的text段。13.本发明方法在编写dsp固件代码时减少dsp工作内存text段和data段的内存占用,使用静态分配内存的方式分配dsp工作内存,text段和data段具有高级安全特性,cpu无权访问,堆栈段无高级安全特性,cpu可以访问。将dsp固件放在外部存储flash中,在运行dsp模块时才加载到dsp工作内存;加载时,首先cpu从外部存储中读取dsp固件,加载到dsp工作内存的堆栈段;然后m2m模块将dsp工作内存的堆栈段的dsp固件加载到dsp工作内存的text段。14.本发明使用静态分配内存的方式来分配dsp工作内存,避免动态分配内存时带来的内存碎片问题;将dsp工作内存的堆栈段用做加载dsp固件的临时内存,既避免内存碎片问题,又节省了系统内存的使用。本发明不仅能够提高dsp的执行效率,还能够节省内存空间,从而提高系统的性能,降低了设备的成本。具体实施方式15.一种嵌入式设备中节省内存占用的dsp固件加载方法,包括:16.(1)在编写dsp固件代码时,按照以下操作:17.将dsp固件按实际功能拆分成多个能够单独运行的小固件,在运行时按需加载到dsp工作内存text段,减少dsp工作内存text段内存占用;18.对于能够通过dsp专用汇编语言实现编码的部分采用dsp专用汇编语言进行编码,提高指令执行效率和减少指令数量,减少dsp工作内存text段内存占用;19.使用位图存储dsp常用数据,例如系数、常量,使用位图来存储这些常用的数据,减少dsp工作内存data段内存占用;20.(2)使用静态分配内存的方式分配dsp工作内存,dsp工作内存由text段、data段、堆栈段三部分组成,其中text段和data段具有高级安全特性,cpu无权访问,堆栈段无高级安全特性,cpu可以访问。21.避免动态分配内存时带来的内存碎片问题。在动态分配内存时,由于内存空间的不确定性,常常会出现内存碎片问题。使用静态分配内存的方式来分配dsp工作内存,可以避免内存碎片问题。22.(3)在加载dsp固件时,按照以下操作:23.将dsp固件放在外部存储flash中,在运行dsp模块时才加载到dsp工作内存;加载时,首先cpu从外部存储中读取dsp固件,加载到dsp工作内存的堆栈段;然后m2m模块将dsp工作内存的堆栈段的dsp固件加载到dsp工作内存的text段。24.将dsp固件放在外部存储flash中,在运行dsp模块时才加载到dsp工作内存的text段,这样dsp固件内存就不需要了。由于cpu没有权限访问dsp工作内存的text段,现有方法必须动态分配临时内存,cpu从外部存储中读取dsp固件到临时内存,再用m2m加载dsp固件到dsp工作内存的text段。该方法将dsp工作内存的堆栈段用作dsp固件加载的临时内存,即减少了系统临时内存的使用,又避免了动态分配临内存失败的风险。技术特征:1.嵌入式设备中节省内存占用的dsp固件加载方法,其特征在于,该方法包括;(1)在编写dsp固件代码时,按照以下操作:将dsp固件按实际功能拆分成多个能够单独运行的小固件,在运行时按需加载到dsp工作内存text段;对于能够通过dsp专用汇编语言实现编码的部分采用dsp专用汇编语言进行编码;使用位图存储dsp固件常用数据;(2)使用静态分配内存的方式分配dsp工作内存,dsp工作内存由text段、data段和堆栈段三部分组成,其中text段和data段具有高级安全特性,cpu无权访问,堆栈段无高级安全特性,cpu可以访问;(3)在加载dsp固件时,按照以下操作:将dsp固件放在外部存储flash中,在运行dsp模块时才加载到dsp工作内存;加载时,首先cpu从外部存储中读取dsp固件,加载到dsp工作内存的堆栈段;然后m2m模块将dsp工作内存的堆栈段的dsp固件加载到dsp工作内存的text段。技术总结本发明公开了嵌入式设备中节省内存占用的DSP固件加载方法。对于具有高级安全特性的系统,CPU无权访问DSP工作内存,现有加载DSP固件方法内存消耗较大。本发明方法使用静态分配内存的方式分配DSP工作内存,Text段和Data段具有高级安全特性,CPU无权访问,堆栈段无高级安全特性,CPU可以访问。将DSP固件放在外部存储Flash中,在运行DSP模块时才加载到DSP工作内存;加载时,首先CPU从外部存储中读取DSP固件,加载到DSP工作内存的堆栈段;然后M2M模块将DSP工作内存的堆栈段的DSP固件加载到DSP工作内存的Text段。本发明不仅能够提高DSP的执行效率,还能够节省内存空间。还能够节省内存空间。技术研发人员:刘非 林贤生 黄俊斌受保护的技术使用者:杭州国芯科技股份有限公司技术研发日:2023.04.18技术公布日:2023/7/21









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部