一种分段固化及加载方法与流程

    专利2026-10-03  4


    本发明属于机载嵌入式计算机领域,具体涉及一种分段固化及加载方法。


    背景技术:

    1、在使用fmql系列开发平台进行软件设计与调试时,会用到厂商提供的fmshprocise软件完成程序的烧录。procise软件的bootgen工具将fsbl、pl的位流及应用程序等结合在一起,生成一个可执行文件,该文件可通过procies中的program flash模块固化在相应的存储器件上。

    2、bootgen是procise ide中一个独立的用于产生可执行文件的工具,它把fsbl(.out)、bitstream(.bit)、user code(.out)等文件以分区的形式集成到一起,并在整个文件前加上bootrom表生成可执行文件boot.bin。

    3、bootrom表又分为boot表、印象表、分区表。boot表指定了fsbl的长度、fsbl分区的起始地址、执行起始地址等信息;boot表后是印象表,印象表包含可执行文件中所有分区的数目、第一个分区表的位置、第一个印象表的位置等信息;印象表后是分区表,分区表的数目对应着分区的数目,指定了分区的长度、加载地址、分区的偏移地址等信息。

    4、系统上电后,bootrom首先对bootrom表进行读取。若bootrom表有效,则从boot表读取印象表的基址,然后读取印象表的信息,在印象表中找到第一个分区表的位置,再从第一个分区表读取下一个分区表的位置,由此可以找到所有分区表的位置,得知所有分区的存储地址、分区大小及加载地址等分区信息。

    5、遍历所有分区表信息后,准备将数据从存储地址搬到ram。若是位流分区,则配置在pl端,否则按照分区表信息配置在相应的ram地址。然后将控制权移交给第一个应用。

    6、综上,将fsbl、bitstream、应用程序使用bootgen绑定生成的可执行文件,在系统上电后的执行流程如下:执行fsbl程序,对bootrom表进行读取,并校验有效性。然后从boot表读取印象表的基址,进而读取印象表的信息,在印象表中找到位流分区表的位置,从位流分区表读取应用分区表位置,由此得到位流分区与应用分区的存储地址、分区大小及分区加载地址等信息;将位流配置在pl端,将应用搬移到ram中,然后跳到ram地址执行应用程序。

    7、但绑定烧录会有如下影响:在产品还未定型前,需要大量修改代码进行调试与试验,这个过程主要是修改代码量比较小的用户程序,而对于启动程序fsbl文件及占存储空间较大的逻辑程序(位流文件)则修改较少。这就造成了在调试过程中大多时间浪费在烧录无需升级但比较费时的位流文件,导致调试效率低下,影响调试进度。


    技术实现思路

    1、有鉴于此,本发明提供一种分段固化及加载方法,具体为一种基于procisebootgen工具下分段固化及加载的解决方法,通过改变相关可执行文件的生成方法及在fsbl与位流文件前都加上可追溯信息表,使得fsbl、位流及用户可执行文件能够分别烧录且能够分段进行加载。避免了绑定烧录时,由于烧录无需升级且容量较大的文件造成烧录费时而影响调试效率的问题。

    2、为了实现上述技术目的,本发明所采用的具体技术方案为:

    3、一种分段固化及加载方法,用于将升级文件固化至flash中,并执行加载;

    4、在所述flash中,可执行文件的fsbl文件、位流文件和应用文件分别存储在不同的地址中;

    5、固化时:依据升级文件的功能类型,将升级文件烧录至该类型对应的flash用于存储fsbl文件、位流文件和应用文件的地址中;

    6、加载时:在flash中,先加载的所述升级文件中存储有下一级加载的所述升级文件的存储地址信息。

    7、进一步的,加载时,首先加载的所述升级文件的头部设置有fsbl启动表;

    8、所述启动表包括启动表头以及fsbl印象表;

    9、启动表头包括首先加载的升级文件的长度、在flash中分区的起始地址以及执行起始地址;

    10、fsbl印象表包括后续加载的升级文件的分区数目,以及下一级加载的升级文件的分区位置。

    11、进一步的,加载时,第二次加载的所述升级文件的头部位置设置有位流文件启动表;

    12、位流文件启动表包括位流文件印象表与位流文件分区表;

    13、位流文件印象表包含位流文件校验码以及位流文件分区位置;

    14、位流文件分区表包含分区属性;

    15、进一步的,烧录前,所述fsbl文件和位流文件的格式转换为.bin文件。

    16、进一步的,加载时,首先读取fsbl启动表的fsbl信息,将fsbl文件搬家到片内ram执行,读取fsbl印象表中下一个分区的位置,到该位置读取位流文件;

    17、进一步的,读取位流文件时,首先读取位流印象表校验位流文件的数据完整性,然后读取位流分区表中的分区属性,识别到为位流文件,将位流文件搬家到pl端;

    18、进一步的,之后访问应用文件,将应用文件搬到内存地址,最后跳转到内存地址执行应用文件。

    19、本发明的优点和效果有:

    20、(1)有效解决了调试过程中,绑定烧录费时,造成调试效率低下的问题。

    21、(2)可以使用现有的串口烧录工具进行软件升级,避免使用procise烧录时需要连接仿真器、需要拆机柜的繁琐步骤,提高了升级效率。



    技术特征:

    1.一种分段固化及加载方法,其特征在于,用于将升级文件固化至flash中,并执行加载;

    2.根据权利要求1所述的分段固化及加载方法,其特征在于,加载时,首先加载的所述升级文件的头部设置有fsbl启动表;

    3.根据权利要求2所述的分段固化及加载方法,其特征在于,加载时,第二次加载的所述升级文件的头部位置设置有位流文件启动表;

    4.根据权利要求3所述的分段固化及加载方法,其特征在于,烧录前,所述fsbl文件和位流文件的格式转换为.bin文件。

    5.根据权利要求4所述的分段固化及加载方法,其特征在于,加载时,首先读取fsbl启动表的fsbl信息,将fsbl文件搬家到片内ram执行,读取fsbl印象表中下一个分区的位置,到该位置读取位流文件。

    6.根据权利要求5所述的分段固化及加载方法,其特征在于,读取位流文件时,首先读取位流印象表校验位流文件的数据完整性,然后读取位流分区表中的分区属性,识别到为位流文件,将位流文件搬家到pl端。

    7.根据权利要求6所述的分段固化及加载方法,其特征在于,之后访问应用文件,将应用文件搬到内存地址,最后跳转到内存地址执行应用文件。


    技术总结
    本发明属于机载嵌入式计算机领域,具体涉及一种分段固化及加载方法,用于将升级文件固化至FLASH中,并执行加载;在所述FLASH中,可执行文件的FSBL文件、位流文件和应用文件分别存储在不同的地址中;固化时:依据升级文件的功能类型,将升级文件烧录至该类型对应的FLASH用于存储FSBL文件、位流文件和应用文件的地址中;加载时:在FLASH中,先加载的所述升级文件中存储有下一级加载的所述升级文件的存储地址信息。本发明可将FSBL文件、位流文件以及用户文件等可执行程序分开进行烧录。由此可根据实际情况只进行相关文件的升级,节省时间,提高了调试与升级效率。

    技术研发人员:孟强,马超,闫闯,田浩,王轩,王璞
    受保护的技术使用者:中国航空工业集团公司西安航空计算技术研究所
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-102673.html

    最新回复(0)