一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对DDR的兼容方法、装置、存储介质及设备与流程

2021-10-23 00:19:00 来源:中国专利 TAG:兼容 装置 方法 设备 存储介质

一种针对ddr的兼容方法、装置、存储介质及设备
技术领域
1.本技术实施例涉及通信技术领域,尤其涉及一种针对ddr的兼容方法、装置、存储介质及设备。


背景技术:

2.ddr(double data rate,双数据速率),由于其速度快、容量大,而且价格便宜等优点,因此能够很好地满足对大量数据缓存的需求。
3.然而,ddr更新换代周期变得越来越短,同样一款cpu芯片,可能对应不同容量、不同数目、不同款型的ddr颗粒。而即使同一款产品,也会因为ddr拓扑结构变化,进而对cpu控制器、ddr颗粒进行不同配置。而目前,生产厂商使用不同的系统版本来支持不同的ddr,从而产生当多种ddr类型为系统进行服务时,无法兼容多种ddr的情况,也就导致了开发和维护成本的增加。因此,如何能够在同一个系统内兼容多种ddr成为目前亟待解决的问题。


技术实现要素:

4.本技术实施例提供一种针对ddr的兼容方法、装置、存储介质及设备,可以实现兼容多ddr的目的。
5.第一方面,本技术实施例提供了一种针对ddr的兼容方法,该方法包括:
6.若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;
7.从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;
8.若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。
9.进一步的,若检测到从flash上拷贝启动分区的内容到sram运行,则确定在boot阶段检测到ddr解析触发事件。
10.进一步的,所述flash的预设ddr配置分区包括ddr配置分区和ddr备份分区;
11.相应的,在从所述预设ddr配置分区读取识别码之前,所述方法还包括:
12.对所述ddr配置分区和ddr备份分区进行校验;
13.若ddr配置分区和ddr备份分区均通过校验,则从ddr配置分区中读取识别码;
14.若校验ddr配置分区和ddr备份分区只有一个通过校验,则从通过校验的分区中读取识别码。
15.进一步的,所述方法还包括:
16.若不存在启动正常的识别码,则开启超时监控机制,并逐个从未被使用的识别码关联的ddr配置表中确定目标ddr配置表;
17.确定目标ddr配置表之后,将目标ddr配置表拷贝到sram运行,并将目标ddr配置表
的识别码修改为系统启动失败的识别码;
18.若初始化ddr正常,则关闭超时监控机制,并将目标ddr配置表的识别码由系统启动失败的识别码修改为系统启动正常的识别码。
19.进一步的,在目标ddr配置表拷贝到sram运行之后,所述方法还包括:
20.若超时监控机制监控为启动超时,并将系统重新上电,以确定下一个未被使用的识别码关联的ddr配置表为目标ddr配置表。
21.进一步的,所述方法还包括:
22.若检测到设备的ddr配置表的稳定性不符合预设标准,则生成ddr配置微调请求;
23.响应于ddr配置微调操作,将微调数据同步至ddr配置分区和ddr备份分区中。
24.进一步的,所述方法还包括:
25.将所述预设ddr配置分区制作到烧片程序中。
26.第二方面,本技术实施例提供了一种针对ddr的兼容装置,该装置包括:
27.目标读取位置确定模块,用于若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;
28.识别码读取模块,用于从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;
29.初始化模块,用于若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。
30.第三方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术实施例所述的针对ddr的兼容方法。
31.第四方面,本技术实施例提供了一种设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本技术实施例所述的针对ddr的兼容方法。
32.本技术实施例所提供的技术方案,若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。通过采用本技术所提供的技术方案,可以实现兼容多ddr的目的。
附图说明
33.图1是本技术实施例提供的针对ddr的兼容方法的流程图;
34.图2是本技术实施例提供的flash上数据存储结构的示意图;
35.图3是本技术实施例提供的flash上数据存储结构的示意图;
36.图4是本技术实施例提供的ddr配置分区数据存储结构的示意图;
37.图5是本技术实施例提供的针对ddr的兼容装置的结构示意图;
38.图6是本技术实施例提供的一种设备的结构示意图。
具体实施方式
39.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部结构。
40.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
41.图1是本技术实施例提供的针对ddr的兼容方法的流程图,本实施例可适用于嵌入式系统启动的情况,该方法可以由本技术实施例所提供的针对ddr的兼容装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于使用嵌入式系统的设备中。
42.如图1所示,所述针对ddr的兼容方法包括:
43.s110、若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr。
44.其中,嵌入式系统中可以分为boot阶段和内核阶段两个部分,对于ddr的配置的读取,可以是在boot阶段完成的。具体的,可以是在boot阶段将flash上的启动分区拷贝到sram(static random-access memory,sram,静态随机存取存储器)中运行,并读取其中关于ddr配置的相关信息。其中sram可以是系统运行框架中的一个芯片。boot阶段还包括根据业务分区中的内容,构建系统的基础业务能力,例如重启、关机等业务。
45.在本实施例中,可选的,若检测到从flash上拷贝启动分区的内容到sram运行,则确定在boot阶段检测到ddr解析触发事件。其中,由于数据在flash上是长期存储的,因此可以将flash上的固定位置确定为启动分区。例如在flash上的0x00000000的位置,开始对系统运行的部分镜像进行存储,如具体可以包括前64个字节的中断向量表,ddr配置表以及boot part1三个部分。其中,中断向量表用于在系统运行中断的情况下,可以根据中断向量表确定对应的中断服务程序的地址,进而解决系统运行发生中断的问题。其中一般为64个字节,此处仅以64个字节作为实例,还可以是使用了更多或者更少的字节空间。其中bootrom阶段可以根据boot part1中的代码,解析ddr配置表,以实现对外设ddr进行初始化的目的。
46.图2是本技术实施例提供的flash上数据存储结构的示意图。如图2所示,在flash上的0x00000000位置开始,可以存储中断向量表、ddr配置表以及boot part1三个部分,然后是boot part2的数据以及其他内容。其中,在bootrom阶段从flash上拷贝前三个部分的拷贝到sram运行部分镜像。以此来实现ddr初始化的过程。由于arm架构上面的sram芯片的价格昂贵,通常容量较小,从flash拷贝到sram的ddr配置表数目受限,对于后续兼容产生影
响。
47.在本方案中,为了可以增大配置表个数,将原由的ddr配置表从flash中的boot分区中剥离出来。
48.具体的,可以是在flash的启动分区和业务分区以外,设置预设ddr配置分区,并作为目标读取位置。其中,可以将预设ddr配置分区设置在上图的boot part2(可以理解为业务分区)的后面。这样设置,可以无需在sram的空间上面进行扩展,直接在ddr的配置读取阶段从目标读取位置读取相关的配置信息来完成ddr的初始化,可以扩大嵌入式系统的对多ddr的兼容能力。
49.在本实施例中,可选的,所述flash的预设ddr配置分区包括ddr配置分区和ddr备份分区;
50.相应的,在从所述预设ddr配置分区读取识别码之前,所述方法还包括:
51.对所述ddr配置分区和ddr备份分区进行校验;
52.若ddr配置分区和ddr备份分区均通过校验,则从ddr配置分区中读取识别码;
53.若ddr配置分区和ddr备份分区只有一个通过校验,则从通过校验的分区中读取识别码。
54.其中,可以将预设ddr配置分区设置为包括ddr配置分区和ddr备份分区,这样设置的好处是可以提高ddr配置表信息的稳定性。以避免出现只有一个ddr配置分区的话,一旦存在异常,则系统无法正常初始化配置的情况。
55.图3是本技术实施例提供的flash上数据存储结构的示意图。如图3所示,区别于上述示例,其中在boot part1前面仅保存ddr默认配置,而在boot part2后面划分出两个分区,分别作为ddr配置分区(ddr_cfg分区)和ddr备份分区(ddr_cfg_bak分区)。本方案在bootrom运行boot part1阶段,从ddr_cfg分区读取ddr配置表并对ddr初始化。而且这里将ddr配置放到新的分区,以及为了防止里面数据出错的,可以划分备份分区,作为ddr_cfg分区补充。
56.由于ddr配置分区有两个,在两个分区中,按照一定的校验流程进行校验。如果检验正常,表示分区数据正常。如果两个分区都校验成功,选择ddr_cfg分区。不然,选用校验正确的分区。
57.s120、从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种。
58.其中,ddr配置表索引与识别码的关联关系可以是存储在ddr配置分区中的起始位置的。例如存在四种ddr配置表,则相应的存在四个识别码,分别用于标识每一种ddr配置表的状态的。具体可以分为系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中三种。
59.图4是本技术实施例提供的ddr配置分区数据存储结构的示意图。如图4所示,识别码默认为0xffff,表示该配置还没被使用过;设备正常启动配置的识别码为0x3a3a;启动失败配置对应的识别码为0x0000。可以将配置表索引(index)中的0x0,0x1,0x2以及0xff与识别码(indentify_code)进行关联存储,具体的可以将该分区的最开始的第一个flash块作为该关联关系的存储区域,并在该分区的其他部分,存储与配置表索引相对应的配置表的
具体信息。
60.s130、若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。
61.其中,如果存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。通过这样的设置,可以针对已经启动过并启动成功的系统的ddr配置表来初始化ddr,这样可以快速并准确的确定适合当前系统的ddr的ddr配置信息。
62.本实施例中,可选的,所述方法还包括:
63.若不存在启动正常的识别码,则开启超时监控机制,并逐个从未被使用的识别码关联的ddr配置表中确定目标ddr配置表;
64.确定目标ddr配置表之后,将目标ddr配置表拷贝到sram运行,并将目标ddr配置表的识别码修改为系统启动失败的识别码;
65.若初始化ddr正常,则关闭超时监控机制,并将目标ddr配置表的识别码由系统启动失败的识别码修改为系统启动正常的识别码。
66.结合上述示例,如果其中的识别码中不包括0x3a3a,说明设备第一次上电。则可以通过确定其中的0xffff的配置表数量,以及根据识别码为0xffff的配置表中逐个进行初始化ddr的尝试。
67.具体的,可以在boot启动汇编阶段,启动超时监控机制,例如监控时长为1秒钟,系统逐个索引ddr配置表;并将识别码为0xffff的配置表导入sram,同时将该识别码修改(0xffff修改为0x0000)。如ddr正常初始化,那么将boot part2镜像导入到ddr中。boot在ddr中完全运行之后,再关闭超时监控机制。并将该配置表的识别码修改(0x0000修改为0x3a3a);如配置异常,那么boot启动失败,达到超时监控机制的1秒钟后触发设备重启。
68.本方案通过这样的设置,可以对未使用过的配置表进行逐一尝试,并且生成相应的识别码,以备后续系统上电后使用。这样设置可以在提高系统的ddr的兼容性的同时,还能够快速的对系统的ddr提供相应的配置信息。
69.在上述技术方案的基础上,可选的,在目标ddr配置表拷贝到sram运行之后,所述方法还包括:若超时监控机制监控为启动超时,并将系统重新上电,以确定下一个未被使用的识别码关联的ddr配置表为目标ddr配置表。通过重新上电,可以直接对下一个ddr配置表进行测试,同时不更改当前的ddr配置表的识别码,即为当前的ddr配置表的识别码被确定为0x0000。通过这样的设置,可以简化识别码的更改操作,并且可以确保识别码能够准确的反映出当前所关联的配置表索引是否能够正常初始化ddr。
70.本技术实施例所提供的技术方案,若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。通过采用本技术所提供的技术方案,可以实现兼容多ddr的目的。
71.在上述各技术方案的基础上,可选的,所述方法还包括:若检测到设备的ddr配置
表的稳定性不符合预设标准,则生成ddr配置微调请求;响应于ddr配置微调操作,将微调数据同步至ddr配置分区和ddr备份分区中。
72.可以理解的,如果系统始终稳定运行,则不存在任何问题,如果系统虽然能够正常启动,但是在一段时间内发现系统的运行不稳定,则说明ddr配置中的相关参数需要进行调整。
73.由于上述步骤是对ddr配置的初步适配。如果某一套配置用于某ddr颗粒,虽然可以运行,但是长时间使用可能存在稳定性问题。设备初步启动后,针对部分ddr配置,引入细调机制。具体的,可以建立设备电子标签与编码板映射关系。其中,电子标签指的是设备硬件信息的组合,烧录在设备某个分区。同一个电子标签对应同一块编码板,其中编码板中可以包括ddr以及cpu的相关信息,其中的电子标签可以是在设备启动后,手动烧录的。在设备启动后,可以寻找存在电子标签相对应的ddr配置,并对比当前使用的ddr配置是否为稳定版本进行确定,如果是稳定的版本则可以正常启动。如果不是,则可以将稳定ddr配置更新到ddr配置分区和ddr备份这两个分区中(即为前述的ddr_cfg和ddr_cfg_bak)分区对应位置。
74.通过这样的设置,可以确保经过烧录电子标签的设备,在出厂前经过细调,ddr_cfg分区识别码为正常的配置已经是稳定版本。
75.在上述技术方案的基础上,可选的,所述方法还包括:将所述预设ddr配置分区制作到烧片程序中。其中,由于嵌入式设备都需要用到烧片程序。我们这里将配置分区制作到烧片程序中。这样做的好处是ddr配置表随着设备出厂就已经完成。设备启动的过程中,可以直接读取该分区信息进行配置。
76.图5是本技术实施例提供的针对ddr的兼容装置的结构示意图。如图5所示,所述针对ddr的兼容装置包括:
77.目标读取位置确定模块510,用于若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;
78.识别码读取模块520,用于从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;
79.初始化模块530,用于若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。
80.本技术实施例所提供的技术方案,可以通过自动适配ddr的配置信息,实现兼容多ddr的目的。
81.上述产品可执行本技术实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
82.本技术实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种针对ddr的兼容方法,该方法包括:
83.若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻
接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;
84.从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;
85.若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。
86.存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddr ram、sram、edo ram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
87.当然,本技术实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的针对ddr的兼容操作,还可以执行本技术任意实施例所提供的针对ddr的兼容方法中的相关操作。
88.本技术实施例提供了一种设备,该设备中可集成本技术实施例提供的针对ddr的兼容装置。图6是本技术实施例提供的一种设备的结构示意图。如图6所示,本实施例提供了一种设备600,其包括:一个或多个处理器620;存储装置610,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器620执行,使得所述一个或多个处理器620实现本技术实施例所提供的针对ddr的兼容方法,该方法包括:
89.若在boot阶段检测到ddr解析触发事件,则确定flash的boot分区以外的预设ddr配置分区为目标读取位置;其中,所述boot分区包括启动分区和业务分区,所述业务分区邻接于所述启动分区,所述启动分区用于拷贝至sram运行,以初始化ddr;
90.从所述预设ddr配置分区读取识别码;其中,所述预设ddr配置分区中包括至少一种ddr配置表索引与识别码的关联关系;其中,所述识别码包括系统启动正常的识别码、系统启动失败的识别码和未被使用的识别码中的至少一种;
91.若存在启动正常的识别码,则根据启动正常的识别码关联的配置表初始化ddr。
92.当然,本领域技术人员可以理解,处理器620还实现本技术任意实施例所提供的针对ddr的兼容方法的技术方案。
93.图6显示的设备600仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
94.如图6所示,该设备600包括处理器620、存储装置610、输入装置630和输出装置640;设备中处理器620的数量可以是一个或多个,图6中以一个处理器620为例;设备中的处理器620、存储装置610、输入装置630和输出装置640可以通过总线或其他方式连接,图6中以通过总线650连接为例。
95.存储装置610作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本技术实施例中的针对ddr的兼容方法对应的程序指令。
96.存储装置610可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置610可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置610可进一步包括相对于处理器620远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
97.输入装置630可用于接收输入的数字、字符信息或语音信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏、扬声器等设备。
98.本技术实施例提供的设备,可以在多个拍摄节点没有进行预先组合的情况下,根据距离来进行协同作业,以实现拍摄节点动态组合,从而分担不同的拍摄任务的目的。
99.上述实施例中提供的针对ddr的兼容装置、存储介质及设备可执行本技术任意实施例所提供的针对ddr的兼容方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本技术任意实施例所提供的针对ddr的兼容方法。
100.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜