针对单片机的数据标定方法、装置、存储介质和电子设备与流程

文档序号:29406144发布日期:2022-03-26 10:41阅读:273来源:国知局
针对单片机的数据标定方法、装置、存储介质和电子设备与流程

1.本发明涉及单片机领域,特别涉及一种针对单片机的数据标定方法、装置、存储介质和电子设备。


背景技术:

2.在硬件没有自动地址映射功能的单片机,其数据标定方法大多采用一一对应的映射方式对数据进行标定,即标定的时候标定量从flash复制到ram中。一般而言,flash资源比较丰富,但是ram资源比较短缺,一一对应的方式会大量占用ram存储资源。


技术实现要素:

3.鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的针对单片机的数据标定方法、装置、存储介质和电子设备。
4.第一方面,一种针对单片机的数据标定方法,包括:
5.获得上位机发送的第一待标定量的flash地址和变量字节数,其中,所述flash地址为所述第一待标定量在单片机的flash存储器中的存储地址,所述变量字节数为所述第一待标定量占所述flash存储器的字节长度;
6.根据所述flash地址,计算得到所述flash地址与所述flash存储器的基地址之间的地址偏移量;
7.根据所述地址偏移量和所述变量字节数,确定所述第一待标定量涉及所述flash存储器中的至少一个flash地址块,其中,不同的所述flash地址块为预先根据预设的最小字节数,将所述flash存储器的flash地址进行划分得到的,每块所述flash地址块的地址均连续且每块所述flash地址块的字节长度均等于所述最小字节数,不同的所述flash地址块通过不同的flash块编号进行表征,相邻的所述flash地址块的flash块编号相邻;
8.将所述flash地址块的数据复制至ram的标定存储区,并获得所述数据在所述ram的标定存储区中的ram地址,以实现对所述第一待标定量的数据进行数据标定。
9.结合第一方面,在某些可选的实施方式中,所述根据所述flash地址,计算得到所述flash地址与所述flash存储器的基地址之间的地址偏移量,包括:
10.将所述flash地址与所述flash存储器的基地址之间的差作为所述地址偏移量,其中,所述地址偏移量表征所述flash地址与所述flash存储器的基地址之间的字节数之差。
11.结合第一方面,在某些可选的实施方式中,所述根据所述地址偏移量和所述变量字节数,确定所述第一待标定量涉及所述flash存储器中的至少一个flash地址块,包括:
12.根据所述最小字节数,对所述地址偏移量进行向上取整计算,从而得到所述第一待标定量涉及的最后一个flash地址块的第一flash块编号;
13.根据所述最小字节数,对所述地址偏移量进行取余计算,从而得到所述第一待标定量在所述最后一个flash地址块所占的第一字节数;
14.根据所述第一字节数、所述变量字节数和所述最小字节数,确定所述第一待标定
量涉及的除了所述最后一个flash地址块外的其它flash地址的flash块编号。
15.结合上一个实施方式,在某些可选的实施方式中,所述根据所述第一字节数、所述变量字节数和所述最小字节数,确定所述第一待标定量涉及的除了所述最后一个flash地址块外的其它flash地址的flash块编号,包括:
16.计算所述变量字节数与所述第一字节数之间的字节差;
17.将所述字节差对最小字节数进行向上取整计算,从而得到所述第一待标定量涉及的其它flash地址块的数量n,其中,所述n为不小于1的整数;
18.根据公式1:p
m+1
=p
1-m,(1≤m≤n)分别得到其它各所述flash地址的flash块编号,其中,所述p
m+1
为其它各所述flash地址的flash块编号,所述p1为所述第一flash块编号。
19.可选的,在某些可选的实施方式中,所述将所述flash地址块的数据复制至ram的标定存储区,并获得所述数据在所述ram的标定存储区中的ram地址,包括:
20.根据所述第一待标定量涉及的各所述flash地址块的flash块编号,索引至相应的各所述flash地址块并复制相应的数据至所述ram的标定存储区;
21.获得所述ram返回的各所述flash地址块的数据存储在所述ram的标定存储区中的ram地址,其中,一个所述flash地址块对应一个所述ram地址。
22.结合第一方面,在某些可选的实施方式中,所述方法还包括:
23.将各所述flash地址块对应的ram地址更新至预设的数组中,以便于后续根据所述数组中的ram地址从所述ram获得相应的数据,其中,所述数组中记录所述flash地址块与所述ram地址之间的对应关系。
24.第二方面,一种针对单片机的数据标定装置,包括:第一获得单元、偏移量计算单元、地址块确定单元和标定单元;
25.所述第一获得单元,用于获得上位机发送的第一待标定量的flash地址和变量字节数,其中,所述flash地址为所述第一待标定量在单片机的flash存储器中的存储地址,所述变量字节数为所述第一待标定量占所述flash存储器的字节长度;
26.所述偏移量计算单元,用于根据所述flash地址,计算得到所述flash地址与所述flash存储器的基地址之间的地址偏移量;
27.所述地址块确定单元,用于根据所述地址偏移量和所述变量字节数,确定所述第一待标定量涉及所述flash存储器中的至少一个flash地址块,其中,不同的所述flash地址块为预先根据预设的最小字节数,将所述flash存储器的flash地址进行划分得到的,每块所述flash地址块的地址均连续且每块所述flash地址块的字节长度均等于所述最小字节数,不同的所述flash地址块通过不同的flash块编号进行表征,相邻的所述flash地址块的flash块编号相邻;
28.所述标定单元,用于将所述flash地址块的数据复制至ram的标定存储区,并获得所述数据存储在所述ram的标定存储区中的ram地址,以实现对所述第一待标定量的数据进行数据标定。
29.结合第二面,在某些可选的实施方式中,所述偏移量计算单元,包括:偏移量计算子单元;
30.所述偏移量计算子单元,用于将所述flash地址与所述flash存储器的基地址之间
的差作为所述地址偏移量,其中,所述地址偏移量表征所述flash地址与所述flash存储器的基地址之间的字节数之差。
31.第三方面,一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的针对单片机的数据标定方法。
32.第四方面,一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的针对单片机的数据标定方法。
33.借由上述技术方案,本发明提供的针对单片机的数据标定方法、装置、存储介质和电子设备,可以通过获得上位机发送的第一待标定量的flash地址和变量字节数,其中,所述flash地址为所述第一待标定量在单片机的flash存储器中的存储地址,所述变量字节数为所述第一待标定量占所述flash存储器的字节长度;根据所述flash地址,计算得到所述flash地址与所述flash存储器的基地址之间的地址偏移量;根据所述地址偏移量和所述变量字节数,确定所述第一待标定量涉及所述flash存储器中的至少一个flash地址块,其中,不同的所述flash地址块为预先根据预设的最小字节数,将所述flash存储器的flash地址进行划分得到的,每块所述flash地址块的地址均连续且每块所述flash地址块的字节长度均等于所述最小字节数,不同的所述flash地址块通过不同的flash块编号进行表征,相邻的所述flash地址块的flash块编号相邻;将所述flash地址块的数据复制至ram的标定存储区,并获得所述数据在所述ram的标定存储区中的ram地址,以实现对所述第一待标定量的数据进行数据标定。由此可以看出,本发明可以在单片机没有自动地址映射功能的情况下,对其数据实现数据标定,减少对存储资源的占用。
34.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
35.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
36.图1示出了本发明提供的一种针对单片机的数据标定方法的流程图;
37.图2示出了本发明提供的一种针对单片机的数据标定装置的结构示意图;
38.图3示出了本发明提供的一种电子设备的结构示意图。
具体实施方式
39.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
40.如图1所示,本发明提供了一种针对单片机的数据标定方法,包括:s100、s200和
s300;
41.s100、获得上位机发送的第一待标定量的flash地址和变量字节数;
42.其中,所述flash地址为所述第一待标定量在单片机的flash存储器中的存储地址,所述变量字节数为所述第一待标定量占所述flash存储器的字节长度;
43.可选的,本发明的执行主体可以是作为下位机的控制器(例如单片机)且控制器不具备自动地址映射功能,本发明对此不做限制。
44.可选的,标定时,上位机下发给下位机两个数据:待标定变量(例如第一待标定量)的flash地址和相应的变量字节数。当然,也可以将flash地址对应的数据发送给下位机,本发明对此不做限制。
45.可选的,第一待标定量在单片机的flash存储器中的存储地址可以理解为:在flash存储器中,有相应的存储区域用于存储第一待标定量的数据,该存储区域即为存储地址,本发明对此不做限制。
46.可选的,对于数据而言,一般通过其所占的字节长度来表征其数据大小。即本文所说的第一待标定量占所述flash存储器的字节长度可以理解为:第一待标定量相应的数据的字节长度,本发明对此不做限制。
47.s200、根据所述flash地址,计算得到所述flash地址与所述flash存储器的基地址之间的地址偏移量;
48.可选的,flash存储器的基地址可以理解为:这块flash存储器(可以是整个存储器,也可以是整个存储器中的一块区域)刚开始的地址。例如预先为flash存储器划分地址范围:0x10000000-0x10008000,则0x10000000可以理解为基地址。若第一待标定量的flash地址为0x10000201,则地址偏移量为0x201,本发明对此不做限制。
49.例如,结合图1所示的实施方式,在某些可选的实施方式中,所述s200,包括:
50.将所述flash地址与所述flash存储器的基地址之间的差作为所述地址偏移量,其中,所述地址偏移量表征所述flash地址与所述flash存储器的基地址之间的字节数之差。
51.s300、根据所述地址偏移量和所述变量字节数,确定所述第一待标定量涉及所述flash存储器中的至少一个flash地址块;
52.其中,不同的所述flash地址块为预先根据预设的最小字节数,将所述flash存储器的flash地址进行划分得到的,每块所述flash地址块的地址均连续且每块所述flash地址块的字节长度均等于所述最小字节数,不同的所述flash地址块通过不同的flash块编号进行表征,相邻的所述flash地址块的flash块编号相邻;
53.可选的,如前所述第一待标定量的数据长度可以为多个字节,为了便于后续数据标定,可以将flash存储器的整个地址划分为多个flash地址块,每个flash地址块的flash地址均是连续且大小相等的。所以可以根据所述地址偏移量和变量字节数,确定所述第一待标定量涉及所述flash存储器中的哪些flash地址块,若第一待标定量的数据较小,则可能只涉及flash存储器中的一个flash地址块;若第一待标定量的数据较大,则可能涉及flash存储器中的多个flash地址块,本发明对此不做限制。
54.可选的,通过s300可以确定第一待标定量涉及的flash存储器中的全部flash地址块,本发明对此不做限制。
55.可选的,本发明对于最小字节数不做具体限制,具体可以根据实际需要进行设定,
本发明对此不做限制。
56.可选的,以最小字节数为单元将flash存储器划分为多个flash地址块,每个flash地址块的长度均为最小字节数。为了便于区分不同的flash地址块,则可以为每个flash地址块均设置相应的flash块编号,例如按照flash地址从小到大,以升序的方式为各个flash地址块均设置相应的flash块编号,即flash地址越大,flash块编号越大,本发明对此不做限制。
57.例如,结合图1所示的实施方式,在某些可选的实施方式中,所述s300,包括:步骤1.1、步骤1.2和步骤1.3;
58.步骤1.1、根据所述最小字节数,对所述地址偏移量进行向上取整计算,从而得到所述第一待标定量涉及的最后一个flash地址块的第一flash块编号;
59.可选的,如前所述,若地址偏移量为0x201,最小字节数为:0x100,则计算:0x201
÷
0x100=2,......0x001,然后进行向上取整得到3。即3可以作为第一flash块编号,当然,也可以对3进行变换得到其他编号作为第一flash块编号,本发明对此不做限制。
60.步骤1.2、根据所述最小字节数,对所述地址偏移量进行取余计算,从而得到所述第一待标定量在所述最后一个flash地址块所占的第一字节数;
61.可选的,如前所述第一待标定量可以涉及多个flash地址块,一般排列比较靠前的flash地址块中均存满了第一待标定量的数据。但第一待标定量涉及的最后一个flash地址块不一定存满第一待标定量的数据,有可能最后一个flash地址块前半部分存储了第一待标定量的数据,后半部分为空。所以可以确定第一待标定量在最后一个flash地址块所占的第一字节数,以便于后续知道该复制哪个范围内的数据,本发明对此不做限制。
62.步骤1.3、根据所述第一字节数、所述变量字节数和所述最小字节数,确定所述第一待标定量涉及的除了所述最后一个flash地址块外的其它flash地址的flash块编号。
63.可选的,本发明对于确定第一待标定量涉及的除了最后一个flash地址块外的其它flash地址的flash块编号的方式不做限制,任何可行的方式均属于本发明的保护范围。例如,结合上一个实施方式,在某些可选的实施方式中,所述步骤1.3,包括:步骤2.1、步骤2.2和步骤2.3;
64.步骤2.1、计算所述变量字节数与所述第一字节数之间的字节差;
65.步骤2.2、将所述字节差对最小字节数进行向上取整计算,从而得到所述第一待标定量涉及的其它flash地址块的数量n,其中,所述n为不小于1的整数;
66.步骤2.3、根据公式1:p
m+1
=p
1-m,(1≤m≤n)分别得到其它各所述flash地址的flash块编号,其中,所述p
m+1
为其它各所述flash地址的flash块编号,所述p1为所述第一flash块编号。
67.可选的,如前所述,若p1=3,则p2=2,p3=1,本发明对此不做限制。
68.s400、将所述flash地址块的数据复制至ram的标定存储区,并获得所述数据在所述ram的标定存储区中的ram地址,以实现对所述第一待标定量的数据进行数据标定。
69.可选的,如前所述,在确定需要标定的第一待标定量存储在哪些flash地址块中后,可以根据flash块编号获得第一待标定量的数据,并复制至ram的标定存储区,本发明对此不做限制。
70.例如,可选的,在某些可选的实施方式中,所述s400,包括:步骤3.1和步骤3.2;
71.步骤3.1、根据所述第一待标定量涉及的各所述flash地址块的flash块编号,索引至相应的各所述flash地址块并复制相应的数据至所述ram的标定存储区;
72.步骤3.2、获得所述ram返回的各所述flash地址块的数据存储在所述ram的标定存储区中的ram地址,其中,一个所述flash地址块对应一个所述ram地址。
73.可选的,初始时第一待标定量是定义在flash里的,相应的地址初始值也是flash地址,随着标定的进行,部分存储在flash存储器中的数据被复制到ram中,相应的用于实时记录标定地址的变量也要变。例如,结合图1所示的实施方式,在某些可选的实施方式中,所述方法还包括:
74.将各所述flash地址块对应的ram地址更新至预设的数组中,以便于后续根据所述数组中的ram地址从所述ram获得相应的数据,其中,所述数组中记录所述flash地址块与所述ram地址之间的对应关系。
75.可选的,这里的数组即为用于实时记录标定地址的变量,本发明对此不走限制。
76.可选的,通过本发明的方案可以实现动态标定,不需要flash地址与ram地址的一一对应,极大地减少了数据对存储资源的占用,本发明对此不做限制。
77.如图2所示,本发明提供了一种针对单片机的数据标定装置,包括:第一获得单元100、偏移量计算单元200、地址块确定单元300和标定单元400;
78.所述第一获得单元100,用于获得上位机发送的第一待标定量的flash地址和变量字节数,其中,所述flash地址为所述第一待标定量在单片机的flash存储器中的存储地址,所述变量字节数为所述第一待标定量占所述flash存储器的字节长度;
79.所述偏移量计算单元200,用于根据所述flash地址,计算得到所述flash地址与所述flash存储器的基地址之间的地址偏移量;
80.所述地址块确定单元300,用于根据所述地址偏移量和所述变量字节数,确定所述第一待标定量涉及所述flash存储器中的至少一个flash地址块,其中,不同的所述flash地址块为预先根据预设的最小字节数,将所述flash存储器的flash地址进行划分得到的,每块所述flash地址块的地址均连续且每块所述flash地址块的字节长度均等于所述最小字节数,不同的所述flash地址块通过不同的flash块编号进行表征,相邻的所述flash地址块的flash块编号相邻;
81.所述标定单元400,用于将所述flash地址块的数据复制至ram的标定存储区,并获得所述数据存储在所述ram的标定存储区中的ram地址,以实现对所述第一待标定量的数据进行数据标定。
82.结合图2所示的实施方式,在某些可选的实施方式中,所述偏移量计算单元200,包括:偏移量计算子单元;
83.所述偏移量计算子单元,用于将所述flash地址与所述flash存储器的基地址之间的差作为所述地址偏移量,其中,所述地址偏移量表征所述flash地址与所述flash存储器的基地址之间的字节数之差。
84.结合图2所示的实施方式,在某些可选的实施方式中,所述地址块确定单元300,包括:取整子单元、取余子单元和编号确定子单元;
85.取整子单元,用于根据所述最小字节数,对所述地址偏移量进行向上取整计算,从而得到所述第一待标定量涉及的最后一个flash地址块的第一flash块编号;
86.取余子单元,用于根据所述最小字节数,对所述地址偏移量进行取余计算,从而得到所述第一待标定量在所述最后一个flash地址块所占的第一字节数;
87.编号确定子单元,用于根据所述第一字节数、所述变量字节数和所述最小字节数,确定所述第一待标定量涉及的除了所述最后一个flash地址块外的其它flash地址的flash块编号。
88.结合上一个实施方式,在某些可选的实施方式中,所述编号确定子单元,包括:字节差计算子单元、数量计算子单元和编号计算子单元;
89.字节差计算子单元,用于计算所述变量字节数与所述第一字节数之间的字节差;
90.数量计算子单元,用于将所述字节差对最小字节数进行向上取整计算,从而得到所述第一待标定量涉及的其它flash地址块的数量n,其中,所述n为不小于1的整数;
91.编号计算子单元,用于根据公式1:p
m+1
=p1+m,(1≤m≤n)分别得到其它各所述flash地址的flash块编号,其中,所述p
m+1
为其它各所述flash地址的flash块编号,所述p1为所述第一flash块编号。
92.可选的,在某些可选的实施方式中,所述标定单元400,包括:索引子单元和地址获得子单元;
93.索引子单元,用于根据所述第一待标定量涉及的各所述flash地址块的flash块编号,索引至相应的各所述flash地址块并复制相应的数据至所述ram的标定存储区;
94.地址获得子单元,用于获得所述ram返回的各所述flash地址块的数据存储在所述ram的标定存储区中的ram地址,其中,一个所述flash地址块对应一个所述ram地址。
95.结合图2所示的实施方式,在某些可选的实施方式中,所述装置还包括:地址更新单元;
96.地址更新单元,用于将各所述flash地址块对应的ram地址更新至预设的数组中,以便于后续根据所述数组中的ram地址从所述ram获得相应的数据,其中,所述数组中记录所述flash地址块与所述ram地址之间的对应关系。
97.第三方面,一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的针对单片机的数据标定方法。
98.如图3所示,本发明提供了一种电子设备70,所述电子设备70包括至少一个处理器701、以及与所述701处理器连接的至少一个存储器702、总线703;其中,所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述任一项所述的针对单片机的数据标定方法。
99.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
100.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
101.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
102.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1