CN116301754B - 基于云服务器的嵌入式设备固件开发方法、装置及系统 - Google Patents
基于云服务器的嵌入式设备固件开发方法、装置及系统 Download PDFInfo
- Publication number
- CN116301754B CN116301754B CN202310286077.9A CN202310286077A CN116301754B CN 116301754 B CN116301754 B CN 116301754B CN 202310286077 A CN202310286077 A CN 202310286077A CN 116301754 B CN116301754 B CN 116301754B
- Authority
- CN
- China
- Prior art keywords
- control
- firmware
- group
- development
- module
- 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
- 238000011161 development Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012163 sequencing technique Methods 0.000 claims abstract description 20
- 230000003993 interaction Effects 0.000 claims description 37
- 230000002452 interceptive effect Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 230000018109 developmental process Effects 0.000 abstract description 92
- 230000033772 system development Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式系统开发技术领域,特别是涉及基于云服务器的嵌入式设备固件开发方法、装置及系统,所述方法包括:获取若干个开发终端上传的程序模块;按程序模块的属性将程序模块进行划分;将分类后的模块归入对应的分组,对每个组内的程序模块进行排序;生成至少一套固件;获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;将所述调试信息传输给开发终端;接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。本发明基于云端服务器,将固件的开发、下载以及调试与设备分离,同时解决了多人开发下如何由多个程序模块得到固件的问题。
Description
技术领域
本发明涉及嵌入式系统开发技术领域,特别是涉及基于云服务器的嵌入式设备固件开发方法、装置及系统。
背景技术
嵌入式系统由硬件和软件组成,是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的众多模块。相比于一般的计算机处理系统而言,嵌入式系统存在较大的差异性,它不能实现大容量的存储功能,因为没有与之相匹配的大容量介质,大部分采用的存储介质有E-PROM、EEPROM等,软件部分以API编程接口作为开发平台的核心。
传统的嵌入式设备的开发都是直接在开发板上进行,这种开发过程依赖于硬件,固件的开发、烧录以及调试等都只能在线下进行,使得开发过程受到的限制很大。
基于此,现有技术提供了基于服务器的嵌入式设备开发方法,现有技术提供的开发方法实现了开发过程与硬件的分离,将固件下载、烧录以及调试等过程放到线上进行,使开发过程更加灵活。然而,在多人协作的线上开发过程中,如何自动化的处理不同的开发者的开发内容是需要解决的问题。
发明内容
基于此,有必要针对上述的问题,提供一种基于云服务器的嵌入式设备固件开发方法、装置及系统。
本发明实施例是这样实现的,基于云服务器的嵌入式设备固件开发方法,所述基于云服务器的嵌入式设备固件开发方法包括:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。
在其中一个实施例中,本发明提供了基于云服务器的嵌入式设备固件开发装置,所述基于云服务器的嵌入式设备固件开发装置包括:
开发模块,用于:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
调试模块,用于:
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。
在其中一个实施例中,本发明提供了基于云服务器的嵌入式设备固件开发系统,所述基于云服务器的嵌入式设备固件开发系统包括:
若干个开发终端,用于为开发人员提供开发环境;
资源服务器,与各个开发终端通信,用于执行如本发明所述的基于云服务器的嵌入式设备固件开发方法;以及
嵌入式设备,与所述资源服务器通信,用于下载并执行固件,以完成固件的开发调试。
本发明基于云端服务器,通过获取多个开发终端上传的程序模块,由多个程序模块生成固件,实现了多个开发终端的条件下固件的生成管理,便于固件版本的升级,实现了同一功能兼容多个程序模块,便于调试时类似程序模块的选优;本发明将固件的开发、下载以及调试与设备分离,解决了多人开发条件下如何由多个程序模块得到固件的问题,远程调试没有距离限制,只要双方都接入互联网且能连接服务器即可远程调试,提升了问题定位/处理的效率,方便合作开发、远程技术支持等;替代有线烧录下载,解决了不同网段、网络防火墙、静态IP冲突等问题。
附图说明
图1为一个实施例提供的基于云服务器的嵌入式设备固件开发方法的流程图;
图2为一个实施例提供的基于云服务器的嵌入式设备固件开发装置的结构框图;
图3为一个实施例提供的基于云服务器的嵌入式设备固件开发系统的结构框图;
图4为一个实施例中计算机设备的内部结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
如图1所示,本发明提出了一种基于云服务器的嵌入式设备固件开发方法,具体可以包括以下步骤:
步骤S100,获取若干个开发终端上传的程序模块;
步骤S200,按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
步骤S300,将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
步骤S400,根据每个组的排序结果生成至少一套固件;
步骤S500,获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
步骤S600,控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
步骤S700,将所述调试信息传输给开发终端;
步骤S800,接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。
在一个实施例中,开发人员可以单独在每个开发终端上进行程序模块的开发而不需要依赖于硬件设备。在本发明中,以上述方法应用于服务器为例进行详细说明。则此时各个开发终端与服务器通过有线或者无线的方式连接,从而开发过程可以与嵌入式设备硬件分离。
在一个实施例中,系统模块是构成嵌入式设备操作系统的模块,而结构模块是构成显示界面的模块,在嵌入式设备中,显示界面通常采用SDL(Simple DirectMedia Layer)库编写,定义了界面的控件组成以及各控件的功能,与之对应的,交互控制模块是与各个控件对应的驱动程序,通过这些驱动程序可以控制各个控件执行相应的输入、输出动作。在本实施例中,各个程序模块在编写时即被赋予了类型属性,可以通过各个程序模块的代号或者类型标识进行识别。
在一个实施例中,程序模块的关联关系包括各个系统模块之间的次序关系、系统模块与结构模块之间主从关系,以及结构模块与交互控制模块之间的对应关系,由这些关系可以对程序模块进行组合从而得到固件(Firmware)。
在一个实施例中,根据用户的传输指令,服务器将生成的固件传输到嵌入式设备,当然,此过程要求嵌入式设备与服务器保持通信。借助于服务器,用户还可以间接控制嵌入式设备执行烧录完成的固件,服务器收集嵌入式设备执行固件输出的调试信息,并将这些信息传输给用户(开发端);根据开发端的指令,服务器还可能对固件进行进一步的修改调整,从而实现在线的调试与优化。
本发明基于云端服务器,通过获取多个开发终端上传的程序模块,由多个程序模块生成固件,实现了多个开发终端的条件下固件的生成管理,便于固件版本的升级,实现了同一功能兼容多个程序模块,便于调试时类似程序模块的选优;本发明将固件的开发、下载以及调试与设备分离,解决了多人开发条件下如何由多个程序模块得到固件的问题,远程调试没有距离限制,只要双方都接入互联网且能连接服务器即可远程调试,提升了问题定位/处理的效率,方便合作开发、远程技术支持等;替代有线烧录下载,解决了不同网段、网络防火墙、静态IP冲突等问题。
作为本发明的一个优选实施例,所述根据程序模块的关联关系对每个组内的程序模块进行排序,包括:
对于系统组:
获取各个系统模块的程序编号,按照程序编号由小到大将各个系统模块进行排序;
判断是否存在重复的程序编号,若存在,在对应程序编号的位置上将具有相同程序编号的系统模块并排设置;
对于结构组:
识别出主控件、次控件以及余下控件,建立主控件小组、次控件小组以及余下控件小组并将各控件分别归入相应的小组内;
对于交互控制组:
根据各个交互控制模型对应的控件在结构组内的排序,将交互控制模块在交互控制组内进行对应排序。
在一个实施例中,程序编号代表了该系统模块在固件中的次序(注意,这个排序只对系统模块进行,其它两种程序模块并不参与),需要说明的是,同一个位置可以出现多个系统模块,此是由于对于固件中的同一个组成部分,可由多个分别进行开发,有时是为了进度考虑,有时是作为冗余设计,有时还用于故障替换等。
在一个实施例中,结构组主要是各种类型的控件,这些控件具体可以是按键、窗口等形式,其本质都是一个可以控制的对象,即控件,本发明将控件划分为主控件、次控件以余下控件三种。
在一个实施例中,对应结构模块,交互控制模块与各个控件对应,当在固件的相应位置采用了相应的控件时,需要在固件的相同位置设置该控件的驱动程序,即交互控制模块。
作为本发明的一个优选实施例,所述识别出主控件、次控件以及余下控件,包括:
新建一个显示区,根据各控件的属性在所述显示区中生成各控件;
计算各控件的面积与显示区的面积之比;
选出面积之比大于第一设定阈值的控件得到主控件、选出面积之比小于第二设定阈值的控件得到次控件,主控件及次控件之外的为余下控件;
其中,第一设定阈值大于第二设定阈值。
在一个实施例中,优选地,新建的显示区与浏览器呈现的画面具有相同的长宽比,在这个显示区内排布各个控件,可以有效防止最终显示得到的画面发生变形。
在一个实施例中,除了主控件与次控件外还有其余控件,主控件与次控件主要按控件的大小进行划分。各控件基本采用常规的基本几何形状,如矩形、圆形、三角形等,故各个控件的面积可以简单计算得到(各控件通过角点的坐标定义,故由角点坐标可以计算面积,具体计算方法视不同控件的形状而定)。第一设定阈值不小于0.1,通常取0.1-0.25之间;第二设定阈值通常取0.01-0.08之间,通常取0.05左右。
作为本发明的一个优选实施例,所述根据每个组的排序结果生成至少一套固件,包括:
在系统组中,每个程序编号选定一个系统模块;
根据程序编号由小到大将选定的系统模块进行排序;
将主控件以及次控件进行整合得到交互界面排布;
根据主控件与次控件的整合结果选定相应的交互控制模块;
将系统模块、交互界面以及交互控制模块构成的整体编译生成一套固件。
在一个实施例中,上述过程给出了固件的具体生成方法,通过上述方法,对于同一编号下具有多个系统模块的情况,可以得到多套固件,通过分别运行这些固件,可以寻找出最优固件,从而提高嵌入式系统的稳定性,达到充分试错的目的。关于编译生成固件的方法,通常采用Emscripten 等基于LLVM的编译器,此外还可以编译成WASM(即WebAssembly),从而实现与嵌入式系统中通常语言JavaScript共存的目标。
作为本发明的一个优选实施例,所述将主控件以及次控件进行整合得到交互界面排布,包括:
确定主控件的所有组合;
筛选出各主控件的面积与显示区的面积之比的和小于0.5的组合;
在筛选出的组合中任意选定一个主控件组合,根据选定的主控件组合内主控件的尺寸将组内的若干个主控件在显示区横向或者纵向居中排列;
按设定的优先位置,将全部次控件显示于主控件的上下侧或者左右侧;
选择性地排布主控件以及次控件以外的余下控件。
在一个实施例中,可以给主控件编号,每个组合具有不同的控件(数量不同或者数量相同但控件不同)。优先位置可以是主控件的上下侧之一或者左右侧之一,当主控件横向排列时,优先位置可以设定为上侧或者下侧,其中下侧较上侧优先;当主控件纵向排列时,优先位置可以设定为左侧或者右侧,其中左侧较右侧优先。进一步地,次控件的排列方式可以与主控件相同,即同样采取并排的方式(横向或者纵向,与主控件相同)。
在一个实施例中,所述选择性地排布主控件以及次控件以外的余下控件,包括:
完成主控件与次控件的排布后,在所述显示区中确定可放置区;
按余下控件的预设的优先级对余下控件进行排序;
根据排序的先后将余下控件放置于可放置区且使任意两个控件不相接触。
在本实施例中,可放置区为显示区域与主控件所在区域相减得到;余下控件每个控件都定义了优先级,具有相同优先级的控件按控件的面积由大小到选择,优先排布面积较大的控件。
作为本发明的一个优选实施例,所述根据选定的主控件组合内主控件的尺寸将组内的若干个主控件在显示区横向或者纵向居中排列,包括:
计算选定的主控件组合内各主控件的横向尺寸之和,计算所得横向尺寸之和与显示区横向尺寸的比值记作第一比值;
计算选定的主控件组合内各主控件的纵向尺寸之和,计算所得纵向尺寸之和与显示区纵向尺寸的比值记作第二比值;
比较第一比值与第二比值的大小;
若第一比值大于第二比值,则将组内的若干个主控件在显示区纵向居中排列;
若第二比值大于第一比值,则将组内的若干个主控件在显示区横向居中排列。
在一个实施例中,上述给出了判断主控件为横向排布或者纵向排布的具体方法,通过这种方法,可以使排布后的主控件分布更为合理,防止主控件过于拥挤。
作为本发明的一个优选实施例,所述根据所述操作指令对生成的固件进行调整,其中,对生成的固件进行调整包括替换构成固件的系统模块和/或结构模块;
替换结构模块具体包括:
更换主控件的组合,根据更换后的主控件组合内主控件的尺寸将组内的若干个主控件在显示区横向或者纵向居中排列;
按设定的优先位置,将全部次控件显示于主控件的上下侧或者左右侧;
选择性地排布主控件以及次控件以外的余下控件。
在一个实施例中,显示终端通过浏览器可以对呈现出的界面进行调整,从而实现在线的UI设计调整。上述以结构模块替换为例说明了固件调整的一种具体方式。至于调整次控件的位置、更换或者调整余下控件等可以参考此过程,本发明实施例对此不再赘述。
如图2所示,本发明实施例还提供了一种基于云服务器的嵌入式设备固件开发装置,所述基于云服务器的嵌入式设备固件开发装置包括:
开发模块,用于:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
调试模块,用于:
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。
在一个实施例中,上述基于云服务器的嵌入式设备固件开发装置的各个模块是本发明提供的方法的模块化,对于各个模块的具体解释说明,请参考本发明方法部分的内容,本实施例对此不再赘述。
如图3所示,本发明实施例还提供了一种基于云服务器的嵌入式设备固件开发系统,所述基于云服务器的嵌入式设备固件开发系统包括:
若干个开发终端,用于为开发人员提供开发环境;
资源服务器,与各个开发终端通信,用于执行如本发明实施例所述的基于云服务器的嵌入式设备固件开发方法;以及
嵌入式设备,与所述资源服务器通信,用于下载并执行固件,以完成固件的开发调试。
在一个实施例中,嵌入式设备可以同样设置有若干个,本发明主要针对一个嵌入式设备上的固件开发的情况,故在上述系统中仅指明了一个嵌入式设备。
本发明基于云端服务器(资源服务器),通过获取多个开发终端上传的程序模块,由多个程序模块生成固件,实现了多个开发终端的条件下固件的生成管理,便于固件版本的升级,实现了同一功能兼容多个程序模块,便于调试时类似程序模块的选优;本发明将固件的开发、下载以及调试与设备分离,解决了多人开发条件下如何由多个程序模块得到固件的问题,远程调试没有距离限制,只要双方都接入互联网且能连接服务器即可远程调试,提升了问题定位/处理的效率,方便合作开发、远程技术支持等;替代有线烧录下载,解决了不同网段、网络防火墙、静态IP冲突等问题。
图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图3中的资源服务器。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现本发明实施例提供的基于云服务器的嵌入式设备固件开发方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行本发明实施例提供的基于云服务器的嵌入式设备固件开发方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本发明实施例提供的基于云服务器的嵌入式设备固件开发装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该基于云服务器的嵌入式设备固件开发装置的各个程序模块,比如,图2所示的开发模块和调试模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本发明各个实施例的基于云服务器的嵌入式设备固件开发方法中的步骤。
例如,图4所示的计算机设备可以通过如图2所示的基于云服务器的嵌入式设备固件开发装置中的开发模块执行步骤S100-S500;计算机设备可通过调试模块执行步骤S600-S800。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (7)
1.基于云服务器的嵌入式设备固件开发方法,其特征在于,所述基于云服务器的嵌入式设备固件开发方法包括:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整;
所述根据程序模块的关联关系对每个组内的程序模块进行排序,包括:
对于系统组:
获取各个系统模块的程序编号,按照程序编号由小到大将各个系统模块进行排序;
判断是否存在重复的程序编号,若存在,在对应程序编号的位置上将具有相同程序编号的系统模块并排设置;
对于结构组:
识别出主控件、次控件以及余下控件,建立主控件小组、次控件小组以及余下控件小组并将各控件分别归入相应的小组内;
对于交互控制组:
根据各个交互控制模型对应的控件在结构组内的排序,将交互控制模块在交互控制组内进行对应排序;
所述根据每个组的排序结果生成至少一套固件,包括:
在系统组中,每个程序编号选定一个系统模块;
根据程序编号由小到大将选定的系统模块进行排序;
将主控件以及次控件进行整合得到交互界面排布;
根据主控件与次控件的整合结果选定相应的交互控制模块;
将系统模块、交互界面以及交互控制模块构成的整体编译生成一套固件。
2.根据权利要求1所述的基于云服务器的嵌入式设备固件开发方法,其特征在于,所述识别出主控件、次控件以及余下控件,包括:
新建一个显示区,根据各控件的属性在所述显示区中生成各控件;
计算各控件的面积与显示区的面积之比;
选出面积之比大于第一设定阈值的控件得到主控件、选出面积之比小于第二设定阈值的控件得到次控件,主控件及次控件之外的为余下控件;
其中,第一设定阈值大于第二设定阈值。
3.根据权利要求1所述的基于云服务器的嵌入式设备固件开发方法,其特征在于,所述将主控件以及次控件进行整合得到交互界面排布,包括:
确定主控件的所有组合;
筛选出各主控件的面积与显示区的面积之比的和小于0.5的组合;
在筛选出的组合中任意选定一个主控件组合,根据选定的主控件组合内主控件的尺寸将组内的若干个主控件在显示区横向或者纵向居中排列;
按设定的优先位置,将全部次控件显示于主控件的上下侧或者左右侧;
选择性地排布主控件以及次控件以外的余下控件。
4.根据权利要求3所述的基于云服务器的嵌入式设备固件开发方法,其特征在于,所述根据选定的主控件组合内主控件的尺寸将组内的若干个主控件在显示区横向或者纵向居中排列,包括:
计算选定的主控件组合内各主控件的横向尺寸之和,计算所得横向尺寸之和与显示区横向尺寸的比值记作第一比值;
计算选定的主控件组合内各主控件的纵向尺寸之和,计算所得纵向尺寸之和与显示区纵向尺寸的比值记作第二比值;
比较第一比值与第二比值的大小;
若第一比值大于第二比值,则将组内的若干个主控件在显示区纵向居中排列;
若第二比值大于第一比值,则将组内的若干个主控件在显示区横向居中排列。
5.根据权利要求1所述的基于云服务器的嵌入式设备固件开发方法,其特征在于,所述根据所述操作指令对生成的固件进行调整,其中,对生成的固件进行调整包括替换构成固件的系统模块和/或结构模块;
替换结构模块具体包括:
更换主控件的组合,根据更换后的主控件组合内主控件的尺寸将组内的若干个主控件在显示区横向或者纵向居中排列;
按设定的优先位置,将全部次控件显示于主控件的上下侧或者左右侧;
选择性地排布主控件以及次控件以外的余下控件。
6.基于云服务器的嵌入式设备固件开发装置,其特征在于,所述基于云服务器的嵌入式设备固件开发装置包括:
开发模块,用于:
获取若干个开发终端上传的程序模块;
按程序模块的属性将程序模块划分为系统模块、结构模块以及与所述结构模块对应的交互控制模块;
将分类后的模块归入对应的分组得到系统组、结构组以及交互控制组,根据程序模块的关联关系对每个组内的程序模块进行排序;
根据每个组的排序结果生成至少一套固件;
获取用户的控制指令,根据用户的控制指令将生成的固件传输到嵌入式设备;
调试模块,用于:
控制所述嵌入式设备运行固件并接收所述嵌入式设备返回的调试信息;
将所述调试信息传输给开发终端;
接收开发终端的操作指令,根据所述操作指令对生成的固件进行调整;
所述根据程序模块的关联关系对每个组内的程序模块进行排序,包括:
对于系统组:
获取各个系统模块的程序编号,按照程序编号由小到大将各个系统模块进行排序;
判断是否存在重复的程序编号,若存在,在对应程序编号的位置上将具有相同程序编号的系统模块并排设置;
对于结构组:
识别出主控件、次控件以及余下控件,建立主控件小组、次控件小组以及余下控件小组并将各控件分别归入相应的小组内;
对于交互控制组:
根据各个交互控制模型对应的控件在结构组内的排序,将交互控制模块在交互控制组内进行对应排序;
所述根据每个组的排序结果生成至少一套固件,包括:
在系统组中,每个程序编号选定一个系统模块;
根据程序编号由小到大将选定的系统模块进行排序;
将主控件以及次控件进行整合得到交互界面排布;
根据主控件与次控件的整合结果选定相应的交互控制模块;
将系统模块、交互界面以及交互控制模块构成的整体编译生成一套固件。
7.基于云服务器的嵌入式设备固件开发系统,其特征在于,所述基于云服务器的嵌入式设备固件开发系统包括:
若干个开发终端,用于为开发人员提供开发环境;
资源服务器,与各个开发终端通信,用于执行如权利要求1-5任意一项所述的基于云服务器的嵌入式设备固件开发方法;以及
嵌入式设备,与所述资源服务器通信,用于下载并执行固件,以完成固件的开发调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310286077.9A CN116301754B (zh) | 2023-03-23 | 2023-03-23 | 基于云服务器的嵌入式设备固件开发方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310286077.9A CN116301754B (zh) | 2023-03-23 | 2023-03-23 | 基于云服务器的嵌入式设备固件开发方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116301754A CN116301754A (zh) | 2023-06-23 |
CN116301754B true CN116301754B (zh) | 2023-08-04 |
Family
ID=86794011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310286077.9A Active CN116301754B (zh) | 2023-03-23 | 2023-03-23 | 基于云服务器的嵌入式设备固件开发方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301754B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063307A (zh) * | 2011-01-07 | 2011-05-18 | 杭州海康威视数字技术股份有限公司 | 嵌入式硬盘录像机的图形用户界面创建方法及其系统 |
CN109388458A (zh) * | 2018-09-26 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 界面控件的管理方法、终端设备及计算机可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739996A (zh) * | 2016-03-03 | 2016-07-06 | 南京南瑞继保电气有限公司 | 一种嵌入式装置研发用户分步开发方法 |
US20170351646A1 (en) * | 2016-06-06 | 2017-12-07 | Hexagon Technology Center Gmbh | User Interface with Movable Mini-Tabs |
CN113961232A (zh) * | 2020-07-21 | 2022-01-21 | 杭州中天微系统有限公司 | 提供集成开发环境的终端、方法和平台服务器 |
CN114077464A (zh) * | 2020-07-31 | 2022-02-22 | 华为技术有限公司 | 显示控制方法和装置 |
CN112379867B (zh) * | 2020-11-10 | 2022-11-11 | 杭州万高科技股份有限公司 | 一种基于模块化开发的嵌入式操作系统、方法及存储介质 |
CN115220705A (zh) * | 2022-06-06 | 2022-10-21 | 美智纵横科技有限责任公司 | 家用电器的固件生成方法、装置、设备及介质 |
-
2023
- 2023-03-23 CN CN202310286077.9A patent/CN116301754B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063307A (zh) * | 2011-01-07 | 2011-05-18 | 杭州海康威视数字技术股份有限公司 | 嵌入式硬盘录像机的图形用户界面创建方法及其系统 |
CN109388458A (zh) * | 2018-09-26 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 界面控件的管理方法、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116301754A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111626430B (zh) | 一种数据处理方法及相关产品 | |
US20180173606A1 (en) | Hybrid testing automation engine | |
US7805635B2 (en) | Constraint programming for reduction of system test-configuration-matrix complexity | |
US11175895B2 (en) | Code generation and simulation for graphical programming | |
CN112711526B (zh) | Ui测试方法、装置、设备及存储介质 | |
US7194726B2 (en) | Method for automatically decomposing dynamic system models into submodels | |
US20070129931A1 (en) | Apparatus and method for supporting prototype development of embedded system | |
US20050137839A1 (en) | Methods, apparatus and programs for system development | |
CN103377405A (zh) | 部署和修改面向服务架构部署环境模型的方法和系统 | |
CN116301754B (zh) | 基于云服务器的嵌入式设备固件开发方法、装置及系统 | |
CN110275923B (zh) | 插件化图形的管理方法及设备 | |
CN114741064B (zh) | 页面生成方法、装置、系统及存储介质 | |
US8631375B2 (en) | Via selection in integrated circuit design | |
CN116976252A (zh) | 一种回归仿真方法、装置、设备、介质及程序产品 | |
CN116048532B (zh) | 基于web的嵌入式UI效果模拟预览方法、装置及系统 | |
CN114721930A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN113568834A (zh) | Sdk代码的兼容性检测方法、装置、计算机设备和介质 | |
CN116243899B (zh) | 一种基于网络环境的自定义编排容器和方法 | |
CN116331232A (zh) | 车辆控制器的代码集成方法、装置、设备、介质和产品 | |
US20240152387A1 (en) | Method, apparatus, electronic device and storage medium for application launch | |
Umuhoza | Domain-specific modeling and code generation for cross-platform mobile and IoT-based applications | |
JP5076785B2 (ja) | プラント運用計画装置、そのプログラム | |
CN114721931A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN116933237A (zh) | 一种区块链写入权限分配方法、装置及计算机设备 | |
JP2023151758A (ja) | システムおよび方法 |
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 |