System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种软件数据生成及加载的方法、系统、设备和介质技术方案_技高网

一种软件数据生成及加载的方法、系统、设备和介质技术方案

技术编号:42692702 阅读:5 留言:0更新日期:2024-09-10 12:42
本发明专利技术涉及一种软件数据生成及加载的方法、系统、设备和介质,所述软件数据生成及加载的方法包括以下步骤:设定数据配置结构;基于所述数据配置结构编写配置文件;基于所述数据配置结构和所述配置文件生成二进制参数文件;基于所述数据配置结构编写参数读取代码;使用所述参数读取代码加载所述二进制参数文件。本发明专利技术在配置文件编译时能够由编译器及早发现配置文件格式或内容的错误,不合规的配置文件无法通过编译;由于程序通过使用结构体的方式引用配置文件中的内容,因此使用现代的代码编辑器提供的自动补全功能,使用户编辑代码时能够方便地自动查找到所需的配置项,不易出错。

【技术实现步骤摘要】

本专利技术属于数据处理,尤其涉及一种软件数据生成及加载的方法、系统、设备和介质


技术介绍

1、在使用c语言编写嵌入式软件过程中,会涉及软件与数据分离的设计需求,即软件实现功能时依赖一些外部数据,这些数据与软件各自独立,在软件运行时,对所需的外部数据进行加载,而用户通过改变外部数据,可以控制软件实现不同的功能或表现出不同的运行状态。

2、在软件设计时,若涉及软件从外部读取配置数据的功能,则需要选择配置数据的存储及使用方式。目前常规的读取配置文件的方式基本为基于“键值对”的检索方式,将“键值对”形式的配置信息,按照既定的内容格式,编写为明文文本文件,如ini配置文件、xml文件或json等文件。在软件运行时,读取文本文件,并按照既定的格式对文本内容进行解析,对解析后的数据进行配置数据查找时,通过输入“键”,由相应的检索算法检索出“值”。

3、举例说明,如上述的ini文件,ini文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软windows操作系统中。这种配置文件的文件扩展名多为ini,故名。在ini文件中,“键值对”可存在于不同的“节”中,可通过“节”寻找“键”,再通过“键”寻找“值”,格式如下:

4、[sectiona]

5、keya=valuea

6、keyb=valueb

7、[sectionb]

8、keyc=valuec

9、又如xml文件,xml是w3c(网际网路联盟world wide web consortium,简称w3c)推荐的数据存储和传输标准,用作配置文件时,一种简单的格式可为:

10、<section name=“password”>

11、<value>12345</value>

12、</section>

13、本发在此提出一种与既有的软件数据生成及加载并无相关性的新的数据分离与加载使用方法。


技术实现思路

1、本专利技术的目的就在于为了解决上述问题而提供一种软件数据生成及加载的方法、系统、设备和介质。

2、本专利技术通过以下技术方案来实现上述目的:

3、一种软件数据生成及加载的方法,包括以下步骤:

4、设定数据配置结构;

5、基于所述数据配置结构编写配置文件;

6、基于所述数据配置结构和所述配置文件生成二进制参数文件;

7、基于所述数据配置结构编写参数读取代码;

8、使用所述参数读取代码加载所述二进制参数文件。

9、作为本专利技术的进一步优化方案,设定数据配置结构包括:

10、数据配置结构为c语言中的结构体;将不同类型的数据归类并设计不同的结构体,定义用于配置的结构体.h头文件。

11、作为本专利技术的进一步优化方案,基于所述数据配置结构编写配置文件包括:

12、基于所述数据配置结构和c编程语言标准编写配置文件,所述配置文件为.c源文件。

13、作为本专利技术的进一步优化方案,基于所述数据配置结构和所述配置文件生成二进制参数文件包括:

14、设定源程序a和生成所述源程序a的编译器b,使用所述编译器b或与所述编译器b有相同的编译规则的编译器对所述.c源文件进行编译,生成二进制参数文件;所述源程序a为使用所述二进制参数文件的程序。

15、作为本专利技术的进一步优化方案,所述数据配置结构为const类型,编译后默认存储在只读存储区,在设置生成所述二进制参数文件的链接规则时,将只读存储区定义在rom的起始位置,即地址0x00000000,同时将数据配置结构放置在源文件的起始位置,此时编译生成的所述二进制参数文件中的数据以0x00000000为基址进行排布,且数据配置结构的变量被编译后的所述二进制参数文件中的二进制数据所在的地址为0x00000000。

16、作为本专利技术的进一步优化方案,基于所述二进制参数文件编写参数读取代码包括:

17、所述源程序a获取所述二进制参数文件后,按照如下规则对所述二进制数据进行基址重置:

18、设定在所述源程序a的源代码中开辟内存区域用于存放所述二进制数据,所述内存区域起始地址设定为0xfc018000,所述二进制参数文件被源程序a接收/读取到后被放置在此地址作为基址的内存中;在编译所述二进制参数文件时,编译器生成elf文件,基于所述elf文件获取重定位表;

19、设定根据所述重定位表得到进行重定位的符号为a和b,所述重定位表中存在两个入口,所述入口的偏移地址为0x00000000和0x00000004,在所述源程序a的代码中,增加对所述二进制数据进行重定位的代码,得到参数读取代码。

20、作为本专利技术的进一步优化方案,所述二进制数据放置在指定的内存地址,通过将此地址为起始的内存进行转换,并按照通用的对c语言结构体的使用方法引用所述二进制数据,实现了所述二进制数据的读取。

21、一种软件数据生成及加载的系统,包括:

22、结构设定模块,用于设定数据配置结构;

23、文件编写模块,用于基于所述数据配置结构编写配置文件;

24、二进制文件生成模块,用于基于所述数据配置结构和所述配置文件生成二进制参数文件;

25、代码编写模块,用于基于所述数据配置结构编写参数读取代码;

26、加载模块,用于使用所述参数读取代码加载所述二进制参数文件。

27、一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;

28、存储器,用于存放计算机程序;

29、处理器,用于执行存储器上所存放的程序时,实现软件数据生成及加载的方法。

30、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现软件数据生成及加载的方法。

31、作为本专利技术的进一步优化方案,所述。

32、作为本专利技术的进一步优化方案,所述。

33、作为本专利技术的进一步优化方案,所述。

34、作为本专利技术的进一步优化方案,所述。

35、本专利技术的有益效果在于:

36、本专利技术在配置文件编译时能够由编译器及早发现配置文件格式或内容的错误,不合规的配置文件无法通过编译;由于程序通过使用结构体的方式引用配置文件中的内容,因此使用现代的代码编辑器提供的自动补全功能,使用户编辑代码时能够方便地自动查找到所需的配置项,不易出错;配置文件编译后生成了二进制文件,非明文显示,若不使用程序解析其中的内容,无法得知其具体数据,具有一定的保密性,能够使用于数据安全敏感的场景。

本文档来自技高网...

【技术保护点】

1.一种软件数据生成及加载的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种软件数据生成及加载的方法,其特征在于,设定数据配置结构包括:

3.根据权利要求2所述的一种软件数据生成及加载的方法,其特征在于,基于所述数据配置结构编写配置文件包括:

4.根据权利要求3所述的一种软件数据生成及加载的方法,其特征在于,基于所述数据配置结构和所述配置文件生成二进制参数文件包括:

5.根据权利要求4所述的一种软件数据生成及加载的方法,其特征在于,所述数据配置结构为const类型,编译后默认存储在只读存储区,在设置生成所述二进制参数文件的链接规则时,将只读存储区定义在ROM的起始位置,即地址0x00000000,同时将数据配置结构放置在源文件的起始位置,此时编译生成的所述二进制参数文件中的数据以0x00000000为基址进行排布,且数据配置结构的变量被编译后的所述二进制参数文件中的二进制数据所在的地址为0x00000000。

6.根据权利要求5所述的一种软件数据生成及加载的方法,其特征在于,基于所述二进制参数文件编写参数读取代码包括:

7.根据权利要求6所述的一种软件数据生成及加载的方法,其特征在于,所述二进制数据放置在指定的内存地址,通过将此地址为起始的内存进行转换,并按照通用的对C语言结构体的使用方法引用所述二进制数据,实现了所述二进制数据的读取。

8.一种软件数据生成及加载的系统,其特征在于,包括:

9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的软件数据生成及加载的方法。

...

【技术特征摘要】

1.一种软件数据生成及加载的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种软件数据生成及加载的方法,其特征在于,设定数据配置结构包括:

3.根据权利要求2所述的一种软件数据生成及加载的方法,其特征在于,基于所述数据配置结构编写配置文件包括:

4.根据权利要求3所述的一种软件数据生成及加载的方法,其特征在于,基于所述数据配置结构和所述配置文件生成二进制参数文件包括:

5.根据权利要求4所述的一种软件数据生成及加载的方法,其特征在于,所述数据配置结构为const类型,编译后默认存储在只读存储区,在设置生成所述二进制参数文件的链接规则时,将只读存储区定义在rom的起始位置,即地址0x00000000,同时将数据配置结构放置在源文件的起始位置,此时编译生成的所述二进制参数文件中的数据以0x00000000为基址进行排布,且数据配置结构的变量被...

【专利技术属性】
技术研发人员:曹晓宇宋宝栋王佳梁春燕王祺葛鹭明包正堂王鹏单飞龙宋文太臧博宇
申请(专利权)人:国能新朔准池铁路山西有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1