CN111538488B - 一种单片机驱动程序生成方法及装置 - Google Patents
一种单片机驱动程序生成方法及装置 Download PDFInfo
- Publication number
- CN111538488B CN111538488B CN202010304593.6A CN202010304593A CN111538488B CN 111538488 B CN111538488 B CN 111538488B CN 202010304593 A CN202010304593 A CN 202010304593A CN 111538488 B CN111538488 B CN 111538488B
- Authority
- CN
- China
- Prior art keywords
- target
- control
- circuit
- driving
- target circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000006870 function Effects 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Abstract
本申请实施例公开了一种单片机驱动程序生成方法及装置,包括:获取具有单片机的目标电路的组成信息;根据目标电路的组成信息在预先设置的控件库中获取与目标电路对应的目标控件;根据目标电路的组成信息中的关联关系,对目标控件进行组合,得到与目标电路对应的驱动控件;获取组成驱动控件的目标控件对应的源文件;根据驱动控件,对源文件中的配置文件进行配置,生成与目标电路对应的源文件;将与目标电路对应的源文件加载至预先设置的目标工程中,得到对应于目标电路的工程文件。由此可以能够通过目标电路组合目标控件生成单片机的驱动程序,提高单片机的驱动程序的开发效率。
Description
技术领域
本申请涉及计算机领域,具体涉及一种单片机驱动程序生成方法及装置。
背景技术
在单片机的驱动程序的开发过程中,开发人员需要通过具体的硬件电路的功能进行单片机驱动程序的编写。在完成单片机驱动程序的编写后,将对应的可执行文件写入单片机中,通过执行可执行文件进行单片机驱动程序的测试或者应用。
但是,实际应用中硬件电路种类以及功能较多,开发人员为了实现驱动程序与硬件电路的匹配,对于不同的硬件电路,都需要重新编写对应于硬件电路的完整的驱动程序,使得单片机驱动程序开发效率较低。
发明内容
有鉴于此,本申请实施例提供一种单片机驱动程序生成方法及装置,能够通过目标电路组合目标控件生成单片机的驱动程序,提高单片机的驱动程序的开发效率。
为解决上述问题,本申请实施例提供的技术方案如下:
第一方面,本申请提供一种单片机驱动程序生成方法,所述方法包括:
获取目标电路的组成信息,其中,所述目标电路中具有单片机;
根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件;
根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件;
获取组成所述驱动控件的目标控件对应的源文件;
根据所述驱动控件,对所述源文件中的配置文件进行配置,生成与所述目标电路对应的源文件;
将所述与所述目标电路对应的源文件加载至预先设置的目标工程中,得到对应于所述目标电路的工程文件,所述工程文件用于驱动所述单片机。
可选的,所述预先设置的控件库中包括单片机控件库和/或芯片控件库;其中,所述单片机控件库中具有根据单片机自身驱动模块对应生成的单片机驱动控件;所述芯片控件库中具有根据芯片驱动模块对应生成的芯片驱动控件。
可选的,在所述将所述目标控件进行组合,得到与所述目标电路对应的驱动控件之前,所述方法还包括:
获取所述目标电路的功能信息,根据所述功能信息对所述目标控件中的待配置控件进行参数配置。
可选的,所述根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件,包括:
从所述目标电路的组成信息中获取所述目标电路的电路组成模块以及所述电路组成模块对应的电路功能,在预先设置的控件库中获取与所述电路组成模块以及所述电路功能相对应的目标控件。
可选的,在所述根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件之后,所述方法还包括:
将所述驱动控件中的参数进行二进制数据化,
和/或,
获取组成所述驱动控件的目标控件的属性信息,根据所述属性信息中的硬件地址进行内存映射。
第二方面,本申请提供一种单片机驱动程序生成装置,所述装置包括:
获取单元,用于获取目标电路的组成信息,其中,所述目标电路中具有单片机;
目标控件获取单元,用于根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件;
组合单元,用于根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件;
文件配置单元,用于获取组成所述驱动控件的目标控件对应的源文件;根据所述驱动控件,对所述源文件中的配置文件进行配置,生成与所述目标电路对应的源文件;
工程文件生成单元,用于将所述与所述目标电路对应的源文件加载至预先设置的目标工程中,得到对应于所述目标电路的工程文件,所述工程文件用于驱动所述单片机。
可选的,所述预先设置的控件库中包括单片机控件库和/或芯片控件库;其中,所述单片机控件库中具有根据单片机自身驱动模块对应生成的单片机驱动控件;所述芯片控件库中具有根据芯片驱动模块对应生成的芯片驱动控件。
可选的,所述装置还包括参数配置单元,用于获取所述目标电路的功能信息,根据所述功能信息对所述目标控件中的待配置控件进行参数配置。
可选的,目标控件获取单元用于从所述目标电路的组成信息中获取所述目标电路的电路组成模块以及所述电路组成模块对应的电路功能,在预先设置的控件库中获取与所述电路组成模块以及所述电路功能相对应的目标控件。
可选的,所述装置还包括驱动控件配置单元,用于将所述驱动控件中的参数进行二进制数据化,和/或,获取组成所述驱动控件的目标控件的属性信息,根据所述属性信息中的硬件地址进行内存映射。
由此可见,本申请实施例具有如下有益效果:
本申请实施例提供的单片机驱动程序生成方法及装置,通过根据目标电路的组成信息,在预先设置的控件库中获取目标控件,并将目标控件进行组合,得到与目标电路对应的驱动控件,再根据驱动控件进行配置文件的配置,得到与目标电路对应的驱动控件,最后将驱动控件加载至目标工程中,得到对应于目标电路的工程文件,工程文件可以用于驱动单片机。由此可见,通过目标电路的组成信息从预先设置的控件库进行目标控件的选取以及驱动控件的组成,可以得到配置文件以及对应的工程文件。通过预先设置控件库,可以利用控件库中的控件进行相应的组合,得到对应的驱动控件以及工程文件,实现驱动程序的生成,避免开发人员每次对于不同的硬件电路都编写完整的驱动程序,提高了单片机的驱动程序的开发效率。
附图说明
图1为本申请实施例提供的一种单片机驱动程序生成方法的流程图;
图2为本申请实施例提供的一种单片机驱动程序生成装置的结构示意图。
具体实施方式
为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
发明人在对传统的单片机的驱动程序进行研究后发现,由于单片机缺乏较为完备的标准操作系统以及单片机的自身的开发资源有限,使得单片机的驱动程序难以重复利用,开发人员对于每个硬件电路都需要编写全部的驱动程序,开发人员需要花费大量时间进行相关信息的阅读以及程序的编写。这导致单片机的驱动程序的编写需要耗费大量的时间以及人力资源,导致单片机的驱动程序的开发效率较低。
基于此,本申请实施例提供一种单片机驱动程序生成方法,首先,获取具有单片机的目标电路的组成信息,根据目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件;其次,根据目标电路的组成信息中的关联关系,对目标控件进行组合,得到与目标电路对应的驱动控件;再次,获取组成驱动控件的目标控件对应的源文件,根据驱动控件,对源文件中的配置文件进行配置,生成与目标电路对应的配置文件;最后,将与目标电路对应的源文件加载至预先设置的目标工程中,得到对应于目标电路的工程文件,用于驱动单片机。
为了便于理解本申请实施例提供的技术方案,下面结合附图对本申请实施例提供的一种单片机驱动程序生成方法进行说明。
参见图1所示,该图为本申请实施例提供的一种单片机驱动程序生成方法的流程图,该方法包括步骤S101-S105。
S101:获取目标电路的组成信息,其中,目标电路中具有单片机。
目标电路可以为所要进行对应的驱动程序生成的硬件电路,具体的,可以为硬件产品的电路图。
可以理解的是,由于通过目标电路生成对应的单片机的驱动程序,所以目标电路中具有单片机,并且单片机与至少一个电路组成模块连接,组成对应的目标电路。本申请实施例中不限定单片机的种类,可以为51单片机以及STM32单片机等。
目标电路的组成信息可以为构成目标电路的各个电路组成模块的信息,可以包括目标电路中具有的电路组成模块的名称,电路组成模块的属性,电路组成模块之间的连接关系等相关信息。
本申请实施例中不限定目标电路组成信息的表现形式,在一种可能的实施方式中,可以通过模块化的电路图进行组成信息的表示,在另一种可能的实施方式中,可以通过表格的方式表示组成信息。
S102:根据目标电路的组成信息在预先设置的控件库中获取与目标电路对应的目标控件。
需要说明的是,控件可以为根据驱动模块生成的可以实现对应的驱动模块功能的对象。可以根据驱动模块的相关数据和驱动功能生成对应的控件。其中,驱动模块可以是根据驱动功能划分得到的,对应于单片机驱动中常用的驱动方式。为了实现控件对应的驱动功能没有耦合,可以采用单一职责原则进行驱动模块的划分,也就是一个驱动模块对应于一种驱动的功能,对应的得到的控件也对应于一种驱动的功能。
控件库中可以包括对应于不同功能或者是不同种类的驱动模块生成的控件。本申请实施例中不限定控件的种类,在一种可能的实现方式中,由于在单片机的应用中,经常通过连接扩展芯片来实现更为丰富的功能,对应的控件库中可以包括单片机控件库和/或芯片控件库。其中,单片机控件库中具有根据单片机自身驱动模块对应生成的单片机驱动控件。单片机自身驱动模块中可以包括单片机外部的外围功能模块,包括但不限于串口控制模块,SPI模块,I2C模块,A/D模块,PWM模块,CAN模块,EEPROM,比较器模块等模块,单片机外部的外围功能模块可以通过单片机的指令直接进行控制,不受目标电路对应的驱动程序的实现逻辑影响的驱动模块。芯片控件库中具有根据芯片驱动模块对应生成的芯片驱动控件。芯片驱动模块可以是针对于常见的芯片的驱动模块。例如,具体的可以包括PCF8563驱动模块、W25Q16驱动模块、SI4432驱动模块、LCD驱动模块等。通过对单片机自身外围功能模块以及芯片驱动模块进行控件化,可以得到对应的控件,从而形成控件库。
可以理解的是,控件库是预先设置的,控件库中具有一定数量的控件。在本申请实施例中,可以根据驱动模块的更新或者是增加对应的更新控件或者是增加控件。
在设置控件库时预先设置控件对应的电路组成信息,以便在获取目标电路的组成信息后获取对应的目标控件。根据目标电路的组成信息,从控件库中获取目标电路对应的目标控件。在一种可能的实现方式中,可以从目标电路的组成信息中获取目标电路的电路组成模块以及电路组成模块对应的电路功能,在预先设置的控件库中获取与电路组成模块以及电路功能相对应的目标控件。可以理解的是,由于控件是根据驱动模块生成的,可以根据目标电路中各个电路组成模块对应的驱动模块确定各个电路组成模块对应的目标控件。例如,当目标电路中具有单片机引脚分别与输入和输出的电路组成模块连接,对应的目标控件可以为输入和输出的控件。由于相同的电路组成模块可能存在着不同的功能,对应的目标控件可能不同。所以,可以根据目标电路的组成信息中电路组成模块的名称以及对应的电路组成模块的功能从控件库中获取对应的目标控件。例如,单片机部分IO口具有复用功能,可以根据具体的电路的组成确定IO口对应的不同的功能,进而选择对应的控件作为目标控件。
S103:根据目标电路的组成信息中的关联关系,对目标控件进行组合,得到与目标电路对应的驱动控件。
目标电路中各个电路组成模块之间具有一定的关联关系,关联关系可以包括电路组成模块之间连接产生的关联关系,例如,单片机自身PIN或者外设接口模块与扩展芯片模块之间通过连接产生的关联关系。也可以包括电路组成模块之间由于功能作用具有的关联关系,例如,串口模块需要与PIN模块,协议模块之间根据功能产生的关联关系。可以理解的是,对于由于功能产生的关联关系可以预先进行设置,以便于在不同的目标电路中使用已设置的关联关系。
根据目标电路的组成信息中的关联关系对目标控件进行组合。需要说明的是,从控件库中获取的目标控件是对应于目标电路中电路组成模块的,通过将目标控件进行组合,可以得到与目标电路对应的驱动控件。通过目标电路组成信息中的关联关系,可以将具有连接关系的电路组成模块对应的目标控件进行组合,将具有在功能上关联的目标控件进行组合,确定各个目标控件之间的组合关系,最终得到可以实现在该目标电路中单片机驱动的驱动控件。例如,在获取目标控件时获得数字输出控件、串口控件和定时控件,这三个控件均与实现485通信的功能相关,所以,将数字输出控件、串口控件和定时控件这三个目标控件进行组合,得到可以实现485通信的控件的组合。由所有的控件的组合可以得到对于目标电路的驱动控件。
在一种可能的实施方式中,在将目标控件进行组合,得到与目标电路对应的驱动控件之前,还可以获取目标电路的功能信息,根据功能信息对目标控件中的待配置控件进行参数配置。
可以理解是,目标控件中具有需要进行参数配置的待配置控件,待配置控件为控件中具有需要设置对应的参数才可以实现正常驱动功能的控件,在进行目标控件的组合之前,可以获取目标电路的功能信息,其中,目标电路的功能信息可以包括目标电路中各个电路组成模块的参数以及各个电路组成模块对应的功能。例如,单片机引脚的工作模式以及有效电平的状态等。根据目标电路的功能信息可以对对应的待配置控件中的参数进行相应的配置,实现待配置控件的正常工作。
需要说明的是,在根据目标电路的组成信息中的关联关系,对目标控件进行组合,得到与目标电路对应的驱动控件之后,还可以进一步的对驱动控件进行处理,可以包括将驱动控件中的参数进行二进制数据化;和/或,获取组成驱动控件的目标控件的属性信息,根据属性信息中的硬件地址进行内存映射。将参数进行二进制数据化是为了便于后续的参数的读取和处理。获取目标控件的属性信息并根据属性信息中的硬件地址进行内存映射是为对于不同的硬件地址分配相应的内存,以实现硬件对于内存的使用。对驱动控件中的参数进行二进制数据化以及根据硬件地址进行内存映射,均是对驱动控件的进一步配置,实现驱动控件的正常驱动。
S104:获取组成驱动控件的目标控件对应的源文件;根据驱动控件,对源文件中的配置文件进行配置,生成与目标电路对应的源文件。
目标控件的源文件可以是在生成目标控件时对应生成的,在一种可能的实现方式中,可以将源文件对应的储存在控件库中,还可以储存在预先设置的驱动文件库中。
源文件中具有控件对应的驱动模块的程序。获取组成驱动控件的目标控件对应的源文件,用于后续生成对应的目标工程。在一种可能的实施方式中,一个目标控件对应的源文件可以包括xx_config.c和xx_config.h或者xx_driver.c和xx_driver.h,xx可以为对应的目标控件的名称。其中,xx_driver.c、xx_driver.h可以为对应于通用的目标控件的源文件,与目标电路的具体组成无关,无需进行配置的源文件。xx_config.c和xx_config.h为对应于需要进行设置的目标控件的源文件,与目标电路的组成具有联系,为需要进行配置的配置文件。根据驱动控件中目标控件的具体配置以及目标控件之间的关联关系,相应的对源文件中的配置文件进行配置,最终得到与目标电路对应的源文件。
S105:将与目标电路对应的源文件加载至预先设置的目标工程中,得到对应于目标电路的工程文件,工程文件用于驱动单片机。
需要说明的是,预先设置的目标工程可以为与具体目标电路无关的运行环境工程,可以是提前架构的最小系统框架。目标工程可以与单片机的CPU有关,相同的单片机的CPU可以对应于相同的目标工程。通过预先设置的目标工程可以直接将目标电路对应的源文件加载至目标工程中,生成对应于目标电路的工程文件。
该工程文件可以用于驱动单片机,在一种可能的实现方式中,在得到工程文件之后,还可以调用编译器对工程文件进行编译,将编辑后得到的可执行文件下载至单片机中,通过执行可执行文件,驱动单片机。
基于上述S101至S105的内容可知,在本申请实施例中,通过目标电路的组成信息从预先设置的控件库进行目标控件的选取以及驱动控件的组成,可以得到配置文件以及对应的工程文件。通过预先设置控件库,可以利用控件库中的控件进行相应的组合,得到对应的驱动控件以及工程文件,实现驱动程序的生成。通过根据目标电路的需要对预先设置的控件进行选择以及组合,可以根据目标电路进行控件的自由组合,得到对应的工程文件,减少了开发人员对于驱动程序的重复开发,提高了单片机驱动程序的开发效率。
下面结合具体场景进行说明。
在本申请实施例中,目标电路为STM32F103RCT6单片机与三个继电器组成的电路,用于通过四个按键实现对三个继电器的控制。目标电路的组成信息为表1所示:
表1目标电路的组成信息
其中,PC0、PC1、PC2、PC3为单片机的输入引脚,也就是与按键K1、K2、K3、K4对应连接的引脚。PA0、PA1、PA2为单片机的输出引脚,也就是与继电器R1、R2、R3对应连接的引脚。
根据目标电路的组成信息,可以得到目标电路主要使用到单片机的引脚对应的驱动模块,在预先设置的控件库中获取对应的控件为F00231_IO控件,其中F00231为该控件对应的名称,IO为该控件所属的种类。
获取目标电路的功能信息,根据功能信息对目标控件中的待配置控件进行参数配置。目标电路中单片机引脚与DI/DO口分别对应,将单片机引脚与对应的DI/DO口进行绑定,具体包括将PC0、PC1、PC2、PC3分别绑定到DI00、DI01、DI02、DI03,将PA0、PA1、PA2分别绑定到DO00、DO01、DO02。并设定滤波时间为1MS,电平有效状态选择正逻辑,工作模式选择上拉。
根据所述目标电路的组成信息中的关联关系,对F00231_IO控件进行组合,得到对应的驱动控件F00231_IO控件。可以理解的是,由于本申请实施例中的目标控件的数量为一个,所以将目标控件组合得到的驱动控件与目标控件相同。
进一步的对驱动控件F00231_IO控件进行处理,获取F00231_IO控件的名称、参数等,将硬件地址与IO内存进行内存映射。将上述设置的滤波时间,电平逻辑状态选择,工作模式等参数进行二进制数据化,便于读取和调用。
获取组成驱动控件的目标控件F00231_IO控件对应的源文件F00231_io_.config.c和F00231_io__config.h。
根据上述驱动控件F00231_IO控件,对所述源文件中的配置文件F00231_io_.config.c和F00231_io__config.h进行配置,生成与所述目标电路对应的源文件。
将所述与所述目标电路对应的源文件加载至预先设置的目标工程中,得到对应于所述目标电路的工程文件。其中,目标工程可以包括工具模块,调度模块,系统模块,内存管理模块,接口函数库,内核引导模块等与对应的STM32F103RCT6单片机相关的最小系统的框架。
基于上述方法实施例提供的单片机驱动程序生成方法,本申请实施例还提供了一种单片机驱动程序生成装置,下面将结合附图对该单片机驱动程序生成装置进行说明。
参见图2,该图为本申请实施例提供的一种单片机驱动程序生成装置的结构示意图。如图2所示,该单片机驱动程序生成装置包括:
获取单元201,用于获取目标电路的组成信息,其中,所述目标电路中具有单片机;
目标控件获取单元202,用于根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件;
组合单元203,用于根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件;
文件配置单元204,用于获取组成所述驱动控件的目标控件对应的源文件;根据所述驱动控件,对所述源文件中的配置文件进行配置,生成与所述目标电路对应的源文件;
工程文件生成单元205,用于将所述与所述目标电路对应的源文件加载至预先设置的目标工程中,得到对应于所述目标电路的工程文件,所述工程文件用于驱动所述单片机。
可选的,所述预先设置的控件库中包括单片机控件库和/或芯片控件库;其中,所述单片机控件库中具有根据单片机自身驱动模块对应生成的单片机驱动控件;所述芯片控件库中具有根据芯片驱动模块对应生成的芯片驱动控件。
可选的,所述装置还包括参数配置单元,用于获取所述目标电路的功能信息,根据所述功能信息对所述目标控件中的待配置控件进行参数配置。
可选的,目标控件获取单元202用于从所述目标电路的组成信息中获取所述目标电路的电路组成模块以及所述电路组成模块对应的电路功能,在预先设置的控件库中获取与所述电路组成模块以及所述电路功能相对应的目标控件。
可选的,所述装置还包括驱动控件配置单元,用于将所述驱动控件中的参数进行二进制数据化,和/或,获取组成所述驱动控件的目标控件的属性信息,根据所述属性信息中的硬件地址进行内存映射。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种单片机驱动程序生成方法,其特征在于,所述方法包括:
获取目标电路的组成信息,其中,所述目标电路中具有单片机;
根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件;
根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件;
获取组成所述驱动控件的目标控件对应的源文件;
根据所述驱动控件,对所述源文件中的配置文件进行配置,生成与所述目标电路对应的源文件;
将所述与所述目标电路对应的源文件加载至预先设置的目标工程中,得到对应于所述目标电路的工程文件,所述工程文件用于驱动所述单片机。
2.根据权利要求1所述的方法,其特征在于,所述预先设置的控件库中包括单片机控件库和/或芯片控件库;其中,所述单片机控件库中具有根据单片机自身驱动模块对应生成的单片机驱动控件;所述芯片控件库中具有根据芯片驱动模块对应生成的芯片驱动控件。
3.根据权利要求1所述的方法,其特征在于,在所述对所述目标控件进行组合,得到与所述目标电路对应的驱动控件之前,所述方法还包括:
获取所述目标电路的功能信息,根据所述功能信息对所述目标控件中的待配置控件进行参数配置。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件,包括:
从所述目标电路的组成信息中获取所述目标电路的电路组成模块以及所述电路组成模块对应的电路功能,在预先设置的控件库中获取与所述电路组成模块以及所述电路功能相对应的目标控件。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件之后,所述方法还包括:
将所述驱动控件中的参数进行二进制数据化;
和/或,
获取组成所述驱动控件的目标控件的属性信息,根据所述属性信息中的硬件地址进行内存映射。
6.一种单片机驱动程序生成装置,其特征在于,所述装置包括:
获取单元,用于获取目标电路的组成信息,其中,所述目标电路中具有单片机;
目标控件获取单元,用于根据所述目标电路的组成信息在预先设置的控件库中获取与所述目标电路对应的目标控件;
组合单元,用于根据所述目标电路的组成信息中的关联关系,对所述目标控件进行组合,得到与所述目标电路对应的驱动控件;
文件配置单元,用于获取组成所述驱动控件的目标控件对应的源文件;根据所述驱动控件,对所述源文件中的配置文件进行配置,生成与所述目标电路对应的源文件;
工程文件生成单元,用于将所述与所述目标电路对应的源文件加载至预先设置的目标工程中,得到对应于所述目标电路的工程文件,所述工程文件用于驱动所述单片机。
7.根据权利要求6所述的装置,其特征在于,所述预先设置的控件库中包括单片机控件库和/或芯片控件库;其中,所述单片机控件库中具有根据单片机自身驱动模块对应生成的单片机驱动控件;所述芯片控件库中具有根据芯片驱动模块对应生成的芯片驱动控件。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括参数配置单元,用于获取所述目标电路的功能信息,根据所述功能信息对所述目标控件中的待配置控件进行参数配置。
9.根据权利要求6所述的装置,其特征在于,所述目标控件获取单元用于从所述目标电路的组成信息中获取所述目标电路的电路组成模块以及所述电路组成模块对应的电路功能,在预先设置的控件库中获取与所述电路组成模块以及所述电路功能相对应的目标控件。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括驱动控件配置单元,用于将所述驱动控件中的参数进行二进制数据化,和/或,获取组成所述驱动控件的目标控件的属性信息,根据所述属性信息中的硬件地址进行内存映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010304593.6A CN111538488B (zh) | 2020-04-17 | 2020-04-17 | 一种单片机驱动程序生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010304593.6A CN111538488B (zh) | 2020-04-17 | 2020-04-17 | 一种单片机驱动程序生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538488A CN111538488A (zh) | 2020-08-14 |
CN111538488B true CN111538488B (zh) | 2023-05-02 |
Family
ID=71975070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010304593.6A Active CN111538488B (zh) | 2020-04-17 | 2020-04-17 | 一种单片机驱动程序生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538488B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162743A (zh) * | 2020-08-24 | 2021-01-01 | 西安广和通无线软件有限公司 | 驱动程序生成方法、装置、计算机设备和存储介质 |
CN112463148A (zh) * | 2020-12-09 | 2021-03-09 | 浙江中控技术股份有限公司 | 一种功能块应用文件的生成方法、装置及设备 |
CN112882423B (zh) * | 2021-01-26 | 2021-10-15 | 深圳市航顺芯片技术研发有限公司 | 单片机、单片机控制方法、装置、智能终端及存储介质 |
CN113411822B (zh) * | 2021-06-21 | 2024-02-06 | 上海禾苗创先智能科技有限公司 | 一种快速配置射频通路的方法及装置 |
CN116360863B (zh) * | 2021-12-28 | 2023-10-31 | 北京领航智联物联网科技有限公司 | 用于视音频设备集成应用的智能管理系统和方法 |
CN116661859B (zh) * | 2023-07-27 | 2023-10-10 | 灵动集成电路南京有限公司 | 一种mcu外设电路模块的驱动方法、装置、终端设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05289901A (ja) * | 1992-04-13 | 1993-11-05 | Hitachi Ltd | シングルチップマイコンのシミュレ−ション方法及び そのシミュレ−タ装置 |
KR20080049513A (ko) * | 2006-11-30 | 2008-06-04 | 주식회사 케이티프리텔 | 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환방법 및 장치 |
CN101256499A (zh) * | 2008-04-02 | 2008-09-03 | 凌阳科技股份有限公司 | 一种下载目标文件的方法及系统 |
CN101604241A (zh) * | 2009-07-10 | 2009-12-16 | 杭州电子科技大学 | 一种嵌入式系统的代码生成方法 |
CN105335137A (zh) * | 2014-07-23 | 2016-02-17 | 国际商业机器公司 | 用于处理源文件的方法和装置 |
WO2016127835A1 (zh) * | 2015-02-11 | 2016-08-18 | 深圳配天智能技术研究院有限公司 | 单片机及其在线编程的方法 |
CN106155750A (zh) * | 2016-07-29 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种资源文件的加载方法和装置 |
CN106201481A (zh) * | 2016-06-30 | 2016-12-07 | 传线网络科技(上海)有限公司 | 应用程序开发系统中的组件管理方法和装置 |
CN107807821A (zh) * | 2017-10-26 | 2018-03-16 | 福建中金在线信息科技有限公司 | 动画弹窗的实现方法和终端 |
WO2018059063A1 (zh) * | 2016-09-27 | 2018-04-05 | 北京金山安全软件有限公司 | 一种驱动程序获取方法、服务器及移动终端 |
CN109324838A (zh) * | 2018-08-31 | 2019-02-12 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
CN110471663A (zh) * | 2018-05-11 | 2019-11-19 | 杭州海康威视数字技术股份有限公司 | 一种代码编译方法、装置及电子设备 |
CN110895471A (zh) * | 2018-09-12 | 2020-03-20 | 北京京东尚科信息技术有限公司 | 安装包生成方法、装置、介质及电子设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3093642B2 (ja) * | 1996-06-27 | 2000-10-03 | 日本電気アイシーマイコンシステム株式会社 | シングルチップマイクロコンピュータおよびそのテスト方法 |
JP2004078739A (ja) * | 2002-08-21 | 2004-03-11 | Naltec Inc | データ処理装置およびそのテスト方法 |
JP4232621B2 (ja) * | 2003-12-08 | 2009-03-04 | 株式会社デンソー | 半導体集積回路装置 |
CN100359418C (zh) * | 2004-07-05 | 2008-01-02 | 周先谱 | 一种零功耗待机电源控制装置 |
JP4757589B2 (ja) * | 2005-09-27 | 2011-08-24 | 住友重機械工業株式会社 | 組込み制御方法、管理装置、組込み制御装置、及び組込み制御システム |
CN102929779A (zh) * | 2012-10-31 | 2013-02-13 | 中标软件有限公司 | 一种Linux驱动程序调试方法 |
CN103399777A (zh) * | 2013-06-28 | 2013-11-20 | 华中科技大学 | 一种基于智能终端的虚拟仪器测量系统及方法 |
US9513740B2 (en) * | 2014-10-29 | 2016-12-06 | Inputek Co., Ltd. | Chip architecture in improve the sensing latency time in projected capacitance touch |
CN106155766A (zh) * | 2016-06-29 | 2016-11-23 | 广州大彩光电科技有限公司 | 一种虚拟串口屏模拟系统及其模拟方法 |
CN107491316B (zh) * | 2017-09-01 | 2021-07-16 | 联想(北京)有限公司 | 基板管理控制器的扩展方法、装置及电子设备 |
CN108415699A (zh) * | 2018-02-12 | 2018-08-17 | 北京智行鸿远汽车有限公司 | 利用Simulink定制单片机的底层驱动进行代码生成的方法 |
CN109614325B (zh) * | 2018-12-05 | 2022-06-07 | 上海科梁信息科技股份有限公司 | 一种确定控件属性的方法及装置、电子设备和存储介质 |
CN109683470A (zh) * | 2018-12-26 | 2019-04-26 | 奥克斯空调股份有限公司 | 一种软硬件自适应匹配方法、装置及驱动装置 |
CN110941426B (zh) * | 2019-12-02 | 2023-09-19 | 苏州金蒲芦物联网技术有限公司 | 一种面向NB-IoT终端的图形化编程系统 |
-
2020
- 2020-04-17 CN CN202010304593.6A patent/CN111538488B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05289901A (ja) * | 1992-04-13 | 1993-11-05 | Hitachi Ltd | シングルチップマイコンのシミュレ−ション方法及び そのシミュレ−タ装置 |
KR20080049513A (ko) * | 2006-11-30 | 2008-06-04 | 주식회사 케이티프리텔 | 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환방법 및 장치 |
CN101256499A (zh) * | 2008-04-02 | 2008-09-03 | 凌阳科技股份有限公司 | 一种下载目标文件的方法及系统 |
CN101604241A (zh) * | 2009-07-10 | 2009-12-16 | 杭州电子科技大学 | 一种嵌入式系统的代码生成方法 |
CN105335137A (zh) * | 2014-07-23 | 2016-02-17 | 国际商业机器公司 | 用于处理源文件的方法和装置 |
WO2016127835A1 (zh) * | 2015-02-11 | 2016-08-18 | 深圳配天智能技术研究院有限公司 | 单片机及其在线编程的方法 |
CN106201481A (zh) * | 2016-06-30 | 2016-12-07 | 传线网络科技(上海)有限公司 | 应用程序开发系统中的组件管理方法和装置 |
CN106155750A (zh) * | 2016-07-29 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种资源文件的加载方法和装置 |
WO2018059063A1 (zh) * | 2016-09-27 | 2018-04-05 | 北京金山安全软件有限公司 | 一种驱动程序获取方法、服务器及移动终端 |
CN107807821A (zh) * | 2017-10-26 | 2018-03-16 | 福建中金在线信息科技有限公司 | 动画弹窗的实现方法和终端 |
CN110471663A (zh) * | 2018-05-11 | 2019-11-19 | 杭州海康威视数字技术股份有限公司 | 一种代码编译方法、装置及电子设备 |
CN109324838A (zh) * | 2018-08-31 | 2019-02-12 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
CN110895471A (zh) * | 2018-09-12 | 2020-03-20 | 北京京东尚科信息技术有限公司 | 安装包生成方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111538488A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538488B (zh) | 一种单片机驱动程序生成方法及装置 | |
US7793087B2 (en) | Configuration templates for different use cases for a system | |
JP2569092B2 (ja) | 入出力機器制御プログラムのアドレス解決方法 | |
US8484631B2 (en) | Supporting hardware configuration changes in a UEFI firmware component | |
US20060130024A1 (en) | Customizing binary content files | |
JP2008509483A (ja) | 予期せず/変化するハードウェア環境へのソフトウェアとファームウェアの適応 | |
CA2539433A1 (en) | Systems and methods for dynamically linking application software into a running operating system kernel | |
JP2008509483A5 (zh) | ||
EP0740254A3 (en) | Microprocessor and method for setting up its peripheral functions | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN108829465B (zh) | 一种基于直接读写flash的本地动态加载系统及方法 | |
CN107885500B (zh) | 一种面向autosar软件架构的运行时环境生成方法 | |
CN105653330A (zh) | 一种基于SD卡的NorFlash烧写系统和方法 | |
CN101334737A (zh) | 一种嵌入式设备的启动或复位方法 | |
US20100083238A1 (en) | Binary manipulation of intermediate-language code | |
US6704802B1 (en) | Method and system for communicating between independent software modules | |
CN111290774A (zh) | 基于Windows系统的固态硬盘固件批量升级方法和装置 | |
CN112114850B (zh) | 一种基于串口的stm32单片机片内和片外flash程序分散加载方法 | |
CN101923570A (zh) | 一种在Windows CE环境下建立大页面NAND Flash存储系统的方法 | |
CN112579470B (zh) | 一种软件动态库调试的编译链接方法及系统 | |
CN112650702A (zh) | 一种多口usb设备的端口绑定方法及系统 | |
CN110609705B (zh) | 一种提高mcu总线效率的方法、智能终端、存储介质及芯片 | |
CN106066789A (zh) | 一种对摄像头驱动程序进行编译的方法和装置 | |
CN106815355A (zh) | 一种用于NANDflash阵列的文件系统实现方法 | |
CN113590149A (zh) | 程序分段加载运行的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |