CN117931205A - 嵌入式集成开发系统、方法及电子设备 - Google Patents

嵌入式集成开发系统、方法及电子设备 Download PDF

Info

Publication number
CN117931205A
CN117931205A CN202410331304.XA CN202410331304A CN117931205A CN 117931205 A CN117931205 A CN 117931205A CN 202410331304 A CN202410331304 A CN 202410331304A CN 117931205 A CN117931205 A CN 117931205A
Authority
CN
China
Prior art keywords
compiling
embedded
module
engineering
configuration interface
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.)
Pending
Application number
CN202410331304.XA
Other languages
English (en)
Inventor
王慧
李德建
王喆
闫天瑜
赵健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
State Grid Jiangsu Electric Power Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Jiangsu Electric Power Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, State Grid Jiangsu Electric Power Co Ltd, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN202410331304.XA priority Critical patent/CN117931205A/zh
Publication of CN117931205A publication Critical patent/CN117931205A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式集成开发系统、方法及电子设备。其中,系统包括:交互模块,用于展示编译规则配置界面,并接收编译规则配置信息;开发环境模块,开发环境模块与交互模块相连,用于创建嵌入式工程,并基于编译规则配置信息设置嵌入式工程的编译规则;编译模块,编译模块与开发环境模块相连,用于响应于开发环境模块的编译指令,对嵌入式工程进行编译,其中,编译指令包括编译规则;工具模块,工具模块与编译模块相连,用于给编译模块提供编译环境。由此,基于编译规则配置界面即可实现嵌入式工程的编译规则的配置,相较于通过脚本方式控制编译规则,配置更加简单;同时具有量级轻、占用资源少等特征,提升了开发过程中计算机的响应速度。

Description

嵌入式集成开发系统、方法及电子设备
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种嵌入式集成开发系统、方法及电子设备。
背景技术
针对集成开发环境,相关技术中大多由一套繁重的基础框架提供集成开发环境所需的代码编辑等基础功能,在此基础上开发出其它服务,以满足对于不同环境的支持。但是,相关技术中的集成开发系统更加适用于其它开发场景,且对于嵌入式集成开发系统而言,使用类似于Makefile的脚本控制嵌入式工程的编译规则和属性等,导致编译规则和属性等设置复杂。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的目的在于提出一种嵌入式集成开发系统、方法及电子设备,通过提供的编译规则配置界面即可实现嵌入式工程的编译规则的配置,相较于通过编写类似于Makefile脚本的方式控制嵌入式工程的编译规则,配置更加简单;同时相较于众多集成开发系统所支持的多种项目的平等和一致性从而导致量级重、占用资源多等问题,采用模块化方式,基于需求激活相应的模块,具有量级轻、占用资源少等特征,极大提升了开发过程中计算机的响应速度。
为达到上述目的,本发明第一方面实施例提出了一种嵌入式集成开发系统,系统包括:交互模块,用于展示编译规则配置界面,并接收编译规则配置信息;开发环境模块,开发环境模块与交互模块相连,用于创建嵌入式工程,并基于编译规则配置信息设置嵌入式工程的编译规则;编译模块,编译模块与开发环境模块相连,用于响应于开发环境模块的编译指令,对嵌入式工程进行编译,其中,编译指令包括编译规则;工具模块,工具模块与编译模块相连,用于给编译模块提供编译环境。
根据本发明的一个实施例,交互模块,还用于展示工程创建界面,并接收工程创建信息,其中,工程创建信息包括工程类别和工程模板,且不同的工程类别对应不同的工程模板;开发环境模块,还用于根据工程类别和工程模板创建嵌入式工程。
根据本发明的一个实施利,系统还包括:调试模块,调试模块与开发环境模块和仿真器相连,用于响应于开发环境模块的调试指令,通过仿真器与目标开发板进行信息交互,以对编译后的嵌入式工程进行调试。
根据本发明的一个实施例,系统还包括:语言服务模块,语言服务模块与开发环境模块相连,用于在嵌入式工程的编程语言为目标语言时,给嵌入式工程提供代码智能提示功能。
根据本发明的一个实施例,代码智能提示功能包括代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化中的一种或多种。
根据本发明的一个实施例,系统还包括:语言本地化模块,语言本地化模块与开发环境模块相连,用于给开发环境模块提供语言本地化功能。
根据本发明的一个实施例,系统还包括:进制查看模块,进制查看模块与开发环境模块相连,用于响应于开发环境模块的进制查看指令,按照目标进制展示目标范围内的嵌入式工程代码,其中,进制查看指令包括目标进制和目标范围。
根据本发明的一个实施例,编译规则配置界面包括系统全局配置界面、编译配置界面、汇编配置界面、工具链接配置界面、烧录配置界面、链接脚本文件路径配置界面、头文件目录及链接库目录配置界面、用户任务配置界面、禁用源文件配置界面和启用源文件配置界面中的一种或多种。
根据本发明的一个实施例,在编译规则配置界面包括系统全局配置界面时,编译规则配置信息包括系统所处硬件信息和调试输出设置信息中的一种或多种。
根据本发明的一个实施例,在编译规则配置界面包括编译配置界面时,编译规则配置信息包括编程语言标准信息、代码优化级别配置信息、代码优化方式配置信息和编译告警设置信息中的一种或多种。
根据本发明的一个实施例,在编译规则配置界面包括汇编配置界面时,编译规则配置信息包括预处理配置信息和汇编配置信息中的一种或多种。
根据本发明的一个实施例,在编译规则配置界面包括工具链接配置界面时,编译规则配置信息包括工具链输出格式配置信息、链接库信息中的一种或多种。
根据本发明的一个实施例,在编译规则配置界面包括禁用源文件配置界面时,编译规则配置信息包括嵌入式工程中禁用的源文件夹和源文件中的一种或多种,编译模块还用于在对嵌入式工程进行编译时,对禁用的源文件夹和源文件禁止编译。
根据本发明的一个实施例,在编译规则配置界面包括启用源文件配置界面时,编译规则配置信息包括嵌入式工程中启用的源文件夹和源文件中的一种或多种,编译模块还用于在对嵌入式工程进行编译时,对启用的源文件夹和源文件进行编译。
根据本发明的一个实施例,嵌入式集成开发系统基于VS Code构建。
为达到上述目的,本发明第二方面实施例提出了一种电子设备,包括前述的嵌入式集成开发系统。
为达到上述目的,本发明第三方面实施例提出了一种嵌入式集成开发方法,方法包括:展示编译规则配置界面,并接收编译规则配置信息;基于编译规则配置信息设置创建的嵌入式工程的编译规则;响应于编译指令,基于编译规则和编译环境对嵌入式工程进行编译。
根据本发明的一个实施例,方法还包括:展示工程创建界面,并接收工程创建信息,其中,工程创建信息包括工程类别和工程模板,且不同的工程类别对应不同的工程模板;
根据本发明的一个实施例,方法还包括:在嵌入式工程的编程语言为目标语言时,给嵌入式工程提供代码智能提示功能,其中,代码智能提示功能包括代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化中的一种或多种。
根据本发明的一个实施例,方法还包括:响应于进制查看指令,按照目标进制展示目标范围内的嵌入式工程代码,其中,进制查看指令包括目标进制和目标范围。
为达到上述目的,本发明第四方面实施例提出了另一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时,实现前述的嵌入式集成开发方法。
根据本发明实施例的嵌入式集成开发系统、方法及电子设备,通过提供的编译规则配置界面即可实现嵌入式工程的编译规则的配置,相较于通过编写类似于Makefile脚本的方式控制嵌入式工程的编译规则,配置更加简单;同时相较于众多集成开发系统所支持的多种项目的平等和一致性从而导致量级重、占用资源多等问题,采用模块化方式,基于需求激活相应的模块,具有量级轻、占用资源少等特征,极大提升了开发过程中计算机的响应速度。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为根据本发明一个实施例的嵌入式集成开发系统的结构示意图。
图2为根据本发明另一个实施例的嵌入式集成开发系统的结构示意图。
图3为根据本发明一个实施例的系统全局配置界面。
图4为根据本发明一个实施例的编译配置界面。
图5为根据本发明一个实施例的汇编配置界面。
图6为根据本发明一个实施例的工具链接配置界面。
图7为根据本发明一个实施例的烧录配置界面。
图8为根据本发明一个实施例的链接脚本文件路径配置界面。
图9为根据本发明一个实施例的头文件目录及链接库目录配置界面。
图10为根据本发明一个实施例的用户任务配置界面。
图11为根据本发明一个实施例的禁用源文件配置界面。
图12为根据本发明一个实施例的启用源文件配置界面。
图13为VS Code的进程示意图。
图14为根据本发明一个实施例的嵌入式集成开发系统的架构图。
图15为根据本发明一个实施例的嵌入式集成开发方法的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
针对集成开发环境,相关技术中大多由一套繁重的基础框架提供集成开发环境所需的代码编辑等基础功能,在此基础上开发出其它服务,以满足对于不同环境的支持。但是,一方面,相关技术中的集成开发系统更加适用于其它开发场景,且对于嵌入式集成开发系统而言,使用类似于Makefile的脚本控制嵌入式工程的编译规则和属性等,导致编译规则和属性等设置复杂;另一方面,相关技术中的集成开发系统大多支持多种编程语言、多种项目的平等和一致性,从而导致程序的执行效率和速度有所降低,在工程较大、插件较多时,存在响应速度慢、卡顿、崩溃和无响应的情况。
基于此,本发明的实施例提供了一种嵌入式集成开发系统,一方面,提供了一套简易的配置和良好的交互设计,相较于通过编写类似于Makefile脚本的方式控制嵌入式工程的编译规则,提供了完全可视化页面配置的方式,用户可以通过相应页面设置嵌入式工程的编译规则,配置更加简单;另一方面,采用模块化方式,基于需求激活相应的模块,如包含了编译模块、工具模块、调试模块、语言服务模块、语言本地化模块等功能模块,相较于众多集成开发系统所支持的多种编程语言、多种项目的平等和一致性,从而导致量级重、占用资源多、响应速度慢、工程管理不友好等问题,具有量级轻、占用资源少、交互界面友好等特征,从而极大提升了开发过程中计算机的响应速度。
下面参考附图来详细描述本发明实施例的嵌入式集成开发系统。
图1为根据本发明一个实施例的嵌入式集成开发系统的结构示意图。
参照图1,该嵌入式集成开发系统可包括:交互模块101、开发环境模块102、编译模块103和工具模块104。
其中,交互模块101用于展示编译规则配置界面,并接收编译规则配置信息;开发环境模块102与交互模块101相连,用于创建嵌入式工程,并基于编译规则配置信息设置嵌入式工程的编译规则;编译模块103与开发环境模块102相连,用于响应于开发环境模块102的编译指令,对嵌入式工程进行编译,其中,编译指令包括编译规则;工具模块104与编译模块103相连,用于给编译模块103提供编译环境。
具体来说,交互模块101用于展示编译规则配置界面,以便用户通过该界面进行编译规则的配置。示例性的,编译规则配置界面包括但不限于是系统全局配置界面、编译配置界面、工具链接配置界面、用户任务配置界面等,用户可以通过界面上的输入框、选择框等输入编译规则配置信息,其中,在编译规则配置信息输入完成后,与编译规则配置信息对应的模块(也可称为服务),如编译模块、工具模块等,将被主动激活。
开发环境模块102可以是集成开发环境终端,与各模块进行连接,且模块之间的连接也通过开发环境模块102实现。用户可以通过开发环境模块102创建嵌入式工程,并根据需求编写程序,以及通过交互模块101提供的编译规则配置界面输入编译规则配置信息,开发环境模块102通过交互模块101接收编译规则配置信息以获得嵌入式工程的编译规则。
编译模块103也可称编译器,在执行编译时,开发环境模块102生成编译指令,该编译指令包括编译规则,如编译参数,并基于编译指令调用编译模块103,通过编译模块103根据编译参数对嵌入式工程进行编译得到编译结果。
工具模块104也可称工具链,在执行编译时,开发环境模块102提供编译参数,工具模块104作为编译工具链为编译模块103提供编译环境,两者共同组成编译模块103所需的基础环境。工具模块104还与开发环境模块102相连,工具模块104还作为基础工具链为开发环境模块102提供代码跳转功能。
示例性的,用户可先通过开发环境模块102创建嵌入式工程,并根据需求编写程序,以及通过交互模块102展示的编译规则设置界面输入编译规则配置信息,在程序编写完成且编译规则配置完成后,可进行编译。在执行编译时,开发环境模块102提供编译参数,工具模块104提供编译环境,两者共同组成编译模块103所需的基础环境,最后由开发环境模块102生成编译指令,发送到编译模块103,通过编译模块103基于编译参数进行编译,并生成编译结果反馈至开发环境模块102。
上述实施例中,基于提供的编译规则配置界面即可实现嵌入式工程的编译规则的配置,相较于通过编写类似于Makefile脚本的方式控制嵌入式工程的编译规则,配置更加简单;同时相较于众多集成开发系统所支持的多种项目的平等和一致性从而导致量级重、占用资源多等问题,采用模块化方式,基于需求激活相应的模块,具有量级轻、占用资源少等特征,极大提升了开发过程中计算机的响应速度。
在一些实施例中,交互模块101还用于展示工程创建界面,并接收工程创建信息,其中,工程创建信息包括工程类别和工程模板,且不同的工程类别对应不同的工程模板;开发环境模块102还用于根据工程类别和工程模板创建嵌入式工程。
具体来说,在创建嵌入式工程时,可以通过交互模块101展示的工程创建界面进行嵌入式工程的创建。例如,通过该界面进行工程类别选择,在工程类别选择完成后,可选择该工程类别下的工程模板,在工程模板选择完成后,开发环境模块102可基于工程模板创建嵌入式工程。
示例性的,在创建嵌入式工程时,通过交互模块101展示工程创建界面,该界面提供了工程类别和工程模板,例如,包括空项目模板的嵌入式工程和内置项目模板的嵌入式工程,其中,针对空项目模板的嵌入式工程,主要包含了8位MCU、Cortex-M、RISC-V和通用的GCC等工程模板;针对内置项目模板的嵌入式工程,主要包含了8051、89C52 SDCC、SCT15、STM8、STM8 SDCC、STM32F1、STM32F1 GCC、SCM630 GCC、GD32VF103等工程模板。用户可以基于需求,在工程创建界面中选择所需的嵌入式工程以及工程模板,进而通过开发环境模块102创建嵌入式工程。
可以理解的是,工程创建界面还可提供用于设置嵌入式工程保存路径的功能框等,以便用户通过该功能框等选择嵌入式工程的保存路径,进而在完成嵌入式工程创建后,对其进行保存。另外,可以采用JSON文件记录嵌入式工程的数据和状态等,用户可以通过配置界面更新或删除相应数据。
上述实施例中,通过提供一些默认的基础模板供进行选择,用户可以在此基础上进行项目的创建以及后续使用,可实现嵌入式工程的快速创建等。
在一些实施例中,参照图2,系统还包括:调试模块105,调试模块105与开发环境模块102和仿真器106相连,用于响应于开发环境模块102的调试指令,通过仿真器106与目标开发板201进行信息交互,以对编译后的嵌入式工程进行调试。
具体来说,调试模块105也可称调试器,仿真器106可以是JLink仿真器等,仿真器106以外部服务的形式与目标开发板201(即待调试的开发板)进行连接。调试模块105主要依托于调试配置文件和编译后的嵌入式工程(也可称工程的编译产物),由开发环境模块102调用调试进程启动,在调试模块105启动后,通过仿真器106与目标开发板201进行信息交互,以实现对编译后的嵌入式工程的调试,并将调试结果反馈至开发环境模块102。
在一些实施例中,参照图2,系统还包括:语言服务模块107,语言服务模块107与开发环境模块102相连,用于在嵌入式工程的编程语言为目标语言时,给嵌入式工程提供代码智能提示功能。
具体来说,在嵌入式工程的编程语言为指定语言类时,将会主动激活语言服务模块107,以给嵌入式工程提供代码智能提示功能。
示例性的,以目标语言为C系列语言为例,当在开发环境模块102中打开的嵌入式工程文件为C系列语言文件时,将激活语言服务模块107,以给嵌入式工程提供代码智能提示功能。而若打开的嵌入式工程文件不是C系列语言文件,语言服务模块107将不激活,不能给嵌入式工程提供代码智能提示功能。
进一步的,在一些实施例中,代码智能提示功能包括代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化中的一种或多种。
具体来说,语言服务模块107提供了较为完善的代码智能提示功能,包括但不限于是代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化。代码补全是指在输入关键字或者常用语时,会自动弹出补全语句,选择后将会自动补全代码,无需用户手动输入;关键字高亮是指一些关键字,如对于C/C++的关键字,将会出现高亮样式。代码跳转是指对于导入的头文件、定义的方法、变量等,当鼠标移动至相关代码上时,会出现调用提示,通过相应的操作指令,如Ctrl+鼠标单击,会自动跳转到指定代码定义界面。代码错误提示是指当检测到代码出错时,会在开发环境模块102的显示界面“问题”区域给出错误提示和修复建议,点击对应的问题将会跳转指定代码界面。代码格式化是指程序员在书写代码的过程中或者完成代码开发后对代码书写格式排版的调整。
如此,通过语言服务模块主动给嵌入式工程提供代码智能提示,使得已经完成的代码变的更美观整洁也更具有可读性,提高开发效率与舒适度。
在一些实施例中,参照图2,系统还包括:语言本地化模块108,语言本地化模块108与开发环境模块102相连,用于给开发环境模块102提供语言本地化功能。
具体来说,语言本地化模块108可在整个集成开发环境生命周期内提供语言本地化功能,如中文、英文等服务,以适用于不同的用户。
在一些实施例中,参照图2,系统还包括:进制查看模块109,进制查看模块109与开发环境模块102相连,用于响应于开发环境模块102的进制查看指令,按照目标进制展示目标范围内的嵌入式工程代码,其中,进制查看指令包括目标进制和目标范围。
示例性的,当用户需要以某一进制查看某一范围内的嵌入式工程代码时,可输入需要查看的范围以及进制,即目标范围和目标进制,开发集成模块102在用户输入后,将激活进制查看模块109,以通过进制查看模块109将目标范围内的嵌入式代码转换为目标进制并显示。
如此,基于相应操作并输入查看范围时,可主动激活进制查看服务,并显示相应范围的进制码,省去了用户手动进行进制转换的操作。
在一些实施例中,编译规则配置界面包括系统全局配置界面、编译配置界面、汇编配置界面、工具链接配置界面、烧录配置界面、链接脚本文件路径配置界面、头文件目录及链接库目录配置界面、用户任务配置界面、禁用源文件配置界面和启用源文件配置界面中的一种或多种。
进一步的,在编译规则配置界面包括系统全局配置界面时,编译规则配置信息包括系统所处硬件信息和调试输出设置信息中的一种或多种。
具体来说,系统全局配置界面主要提供了对于编译选项的全局设置。示例性的,参照图3,在系统全局配置界面,主要涉及对系统所处硬件和调试输出信息的相关配置,例如涉及对CPU类型(例如Cortex-M4)、硬件浮点选项、硬件浮点ABI(例如softfp)、输出调试信息、输出目录以及SVD文件路径的相关配置,用户可以通过该界面对系统所处硬件和调试输出信息进行配置,交互模块101基于用户配置,可得到系统硬件所处信息和调试输出设置信息。
在一些实施例中,在编译规则配置界面包括编译配置界面时,编译规则配置信息包括编程语言标准信息、代码优化级别配置信息、代码优化方式配置信息和编译告警设置信息中的一种或多种。
具体来说,编译配置界面主要提供了对于编译选项的编程语言编译设置。示例性的,参照图4,当编译模块103为C/C++编译器时,通过编译配置界面提供了对于编译选项的C/C++编译设置,例如,可包括C标准、C++标准、代码优化级别(例如level-0)、代码优化方式(例如one elf section per function、one elf section per data、split load andstoremultiple、turn warnings into errors、turn verbose log等)以及编译告警(例如all- warnings)等的相关配置,用户可以通过该界面进行C/C++编译配置,交互模块101基于用户配置,可得到编程语言标准信息、代码优化级别配置信息、代码优化方式配置信息以及编译告警设置信息等编译规则配置信息。
在一些实施例中,在编译规则配置界面包括汇编配置界面时,编译规则配置信息包括预处理配置信息和汇编配置信息中的一种或多种。
具体来说,汇编配置界面主要提供了对于编译选项的汇编器设置。示例性的,参照图5,汇编配置界面主要提供了预处理定义和汇编器附加选项,用户可以通过该界面进行汇编器配置,交互模块101基于用户配置,可得到预处理配置信息和汇编配置信息。
在一些实施例中,在编译规则配置界面包括工具链接配置界面时,编译规则配置信息包括工具链输出格式配置信息、链接库信息中的一种或多种。
具体来说,工具链接配置界面提供了对于编译选项的链接器设置,示例性的,参照图6,工具链接配置界面主要提供了输出格式、链接器附加选项、链接库等相关配置,用户可以通过该界面进行链接器配置,交互模块101基于用户配置,可得到输出格式配置信息、链接库信息等。
在一些实施例中,烧录配置界面主要提供了对于编译选项的烧录配置设置。示例性的,参照图7,烧录配置界面主要提供了芯片类型、接口类型、下载速度等相关配置,用户可以通过该界面进行烧录配置设置,交互模块101基于用户设置,可得到烧录硬件信息和烧录控制信息等。
在一些实施例中,链接脚本文件路径配置界面主要提供了编译选项链接脚本文件路径的设置,即RAMFlash布局。示例性的,参照图8,链接脚本文件路径配置界面主要提供了链接脚本文件路径的相关配置,用户基于该界面可进行路径设置,交互模块101基于用户设置可得到相应的链接脚本文件路径。
在一些实施例中,头文件目录及链接库目录配置界面主要提供了编译选项头文件目录及链接库目录的设置。示例性的,参照图9,头文件目录及链接库目录配置界面主要提供了目录、链接库目录以及预处理器定义的相关配置,用户可以通过该界面进行头文件目录及链接库目录的设置,交互模块101基于用户设置,可得到相应的目录信息等。
在一些实施例中,用户任务配置界面主要提供了编译选项构建前后任务设置。示例性的,参照图10,用户任务配置界面主要提供了任务名称、命令以及选项的相关配置,用户基于该界面可进行任务设置,交互模块101基于用户设置可得到嵌入式工程构建前后的具体任务。
在一些实施例中,在编译规则配置界面包括禁用源文件配置界面时,编译规则配置信息包括嵌入式工程中禁用的源文件夹和源文件中的一种或多种,编译模块103还用于在对嵌入式工程进行编译时,对禁用的源文件夹和源文件禁止编译。
具体来说,禁用源文件配置界面提供了禁用源文件选项,在对某源文件禁用时,该源文件将不再参与编译。示例性的,参照图11,禁用源文件可分为禁用的源文件夹和源文件,用户通过点击文件资源浏览器中的禁用图标即可完成禁用。在禁用源文件夹时,此文件夹下所有的源文件都将不参与编译,而禁用文件时,该文件不再参与编译。在禁用之后,文件的图标将会发生变化,例如,DMA.cpp文件已被禁用,该文件的图标变为禁用状态。
在一些实施例中,在编译规则配置界面包括启用源文件配置界面时,编译规则配置信息包括嵌入式工程中启用的源文件夹和源文件中的一种或多种,编译模块还用于在对嵌入式工程进行编译时,对启用的源文件夹和源文件进行编译。
具体来说,启用源文件配置界面提供了启用源文件选项,在对某源文件启动时,该源文件将参与编译。示例性的,参照图12,启用源文件可分为启用的源文件夹和源文件,用户通过点击文件资源浏览器中的启用图标即可完成启用。在启用源文件夹时,此文件夹下所有的源文件都将参与编译,而启用文件时,该文件将参与编译。在启用之后,文件的图标将会发生变化,例如,DMA.cpp文件启用之后,其文件图标将变为启用状态。
如此,通过上述的可视化界面配置,用户即可在对应界面中设置嵌入式工程的编译规则,相较于通过编写类似于Makefile脚本的方式去控制嵌入式工程的编译规则,提供了完全可视化页面配置的方式,用户可以通过设置选项打开页面,从而设置嵌入式工程的编译规则,设置简单、方便。
在一些实施例中,嵌入式集成开发系统基于VS Code构建。
具体来说,嵌入式集成开发系统可基于VS Code作为基础架构进行构建。VS Code是基于Electron框架实现的,而Electron是基于Chromium和Node.js进行设计的,因此Electron可以通过JavaScript的原生API来生成桌面应用。VS Code具备Chromium架构特性,将渲染进程、主进程、扩展进程等进行分离,是一种多进程架构的桌面应用。
图13为VS Code的进程架构图。其中,主进程、渲染进程和扩展进程共同组成Electron应用,且一个Electron应用只有一个主进程,可有多个渲染进程,每一个工作区对应一个渲染进程,该渲染进程是当前工作区的示例对象,而扩展进程复刻了渲染进程,每个扩展都运行在一个Node JS环境中,即扩展之间共享进程。调试适配器是一个特殊的扩展进程,负责连接调试服务。语言服务也是一个特殊的扩展进程,负责连接具体的语言服务,例如C++语言服务等。Node.js提供基础服务与调试协议。另外,VS Code的进程通信是基于Electron,进程间可以双向通信,并且支持同步异步通信,远程调用用于单向调用,例如渲染进程调用主进程。
嵌入式集成开发系统可基于VS Code进行二次开发,图14为根据本发明一个实施例的嵌入式集成开发系统的架构图,该架构整体依托于VS Code的架构作为基础设计,对应了图14中的VS Code API部分,系统基本的代码编辑功能、全局查找、快速定位、语法高亮等直接继承自VS Code API。另外,该系统还包括服务层和显示层,服务层包括:代码自动补全和自动跳转clangd、代码格式化clang-format、编译unify_builder、代码风格检查clang-tindy、工具链arm-none-eabi、工具调试cortex-debug、语言本地化Language Packs和十六进制编辑器Hexeditor,在服务层,除了编译unify_builder是单独使用VS Code API调用之外,其余服务均是以VS Code中扩展进程的方式进行运行。而对于显示层,VS Code API提供了WebView接口进行视图渲染。
其中,VS Code API为整体架构的基础,基本的代码编辑功能等全部继承自它,其还包含了一套完整的VS Code体系,服务层和显示层的服务都直接或间接依赖于它。代码自动补全和自动跳转clangd为编程语言服务器,提供代码智能提示功能,例如代码补全、编译错误、自动跳转等。代码格式化clang-format为格式化代码风格管理器,提供了统一代码风格的管理。代码风格检查clang-tindy为静态代码分析框架,提供代码检测和语法分析服务,包括智能化提示和快速修复建议等。工具链arm-none-eabi提供基础工具链。工具调试cortex-debug提供了工程调试的基本服务。语言本地化Language Packs提供适配中英文服务。十六进制编辑器Hexeditor为hex文件查看器,提供hex文件的查看与编辑服务。WebView为网页视图,提供页面交互服务。
这些基本服务相互分离之后,通过对外暴露接口的方式实现服务之间的调用,将在特定的场合激活相应的服务,以此减少对于计算机资源的消耗。各服务对应于前述的嵌入式集成开发系统的各模块,例如,代码自动补全和自动跳转clangd、代码格式化clang-format和代码风格检查clang-tindy可集成为语言服务模块107。编译unify_builder对应编译模块103,工具链arm-none-eabi对应工具模块104,工具调试cortex-debug对应调试模块105,语言本地化Language Packs对应语言本地化模块108,十六进制编辑器Hexeditor对应进制查看模块109,WebView对应交互模块101。各模块的连接关系参照图2,开发环境模块102负责与交互模块1013、编译模块103、工具模块104、调试模块105、进制查看模块109、语言服务模块107、语言本地化模块108连接,并与交互模块101交互编译规则配置信息,另外,调试模块105与仿真器106相连,仿真器106可以外部服务的形式与开发板201进行连接。
如此,嵌入式集成开发系统依托于VS Code API的良好支持,在工程管理、语言智能化服务、工程编译、工程调试、界面设置、License保护等方面形成了一套完整面向全嵌入式场景的体系和保护机制。
上述实施例中,基于可视化界面进行编译规则的配置,相较于通过编写类似于Makefile脚本的方式控制嵌入式工程的编译规则,配置更加简单;采用模块化方式,基于需求激活相应的模块,如包含了编译模块、工具模块、调试模块、语言服务模块、语言本地化模块等功能模块,相较于众多集成开发系统所支持的多种编程语言、多种项目的平等和一致性,从而导致量级重、占用资源多、响应速度慢、工程管理不友好等问题,具有量级轻、占用资源少、交互界面友好等特征,从而极大提升了开发过程中计算机的响应速度。
在一些实施例中,还提供了一种电子设备,包括前述的嵌入式集成开发系统。
需要说明的是,上述对嵌入式集成开发系统的实施例和有益效果的解释说明,也适应本发明实施例的电子设备,为避免冗余,在此不作详细展开。
图15为根据本发明一个实施例的嵌入式集成开发方法的流程示意图。参照图15,该嵌入式集成开发方法可包括:
S110,展示编译规则配置界面,并接收编译规则配置信息。
S120,基于编译规则配置信息设置创建的嵌入式工程的编译规则。
S130,响应于编译指令,基于编译规则和编译环境对嵌入式工程进行编译。
在一些实施例中,方法还包括:展示工程创建界面,并接收工程创建信息,其中,工程创建信息包括工程类别和工程模板,且不同的工程类别对应不同的工程模板;根据工程类别和工程模板创建嵌入式工程。
在一些实施例中,方法还包括:在嵌入式工程的编程语言为目标语言时,给嵌入式工程提供代码智能提示功能,其中,代码智能提示功能包括代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化中的一种或多种。
在一些实施例中,方法还包括:响应于进制查看指令,按照目标进制展示目标范围内的嵌入式工程代码,其中,进制查看指令包括目标进制和目标范围。
需要说明的是,上述对嵌入式集成开发系统的实施例和有益效果的解释说明,也适应本发明实施例的嵌入式集成开发方法,为避免冗余,在此不作详细展开。
在一些实施例中,还提供了另一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时,实现前述的嵌入式集成开发方法。
需要指出的是,上述对嵌入式集成开发系统、方法的实施例和有益效果的解释说明,也适应本发明实施例的电子设备,为避免冗余,在此不作详细展开。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施例中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施例中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (21)

1.一种嵌入式集成开发系统,其特征在于,所述系统包括:
交互模块,用于展示编译规则配置界面,并接收编译规则配置信息;
开发环境模块,所述开发环境模块与所述交互模块相连,用于创建嵌入式工程,并基于所述编译规则配置信息设置所述嵌入式工程的编译规则;
编译模块,所述编译模块与所述开发环境模块相连,用于响应于所述开发环境模块的编译指令,对所述嵌入式工程进行编译,其中,所述编译指令包括所述编译规则;
工具模块,所述工具模块与所述编译模块相连,用于给所述编译模块提供编译环境。
2.根据权利要求1所述的嵌入式集成开发系统,其特征在于,
所述交互模块,还用于展示工程创建界面,并接收工程创建信息,其中,所述工程创建信息包括工程类别和工程模板,且不同的工程类别对应不同的工程模板;
所述开发环境模块,还用于根据所述工程类别和所述工程模板创建所述嵌入式工程。
3.根据权利要求1所述的嵌入式集成开发系统,其特征在于,所述系统还包括:
调试模块,所述调试模块与所述开发环境模块和仿真器相连,用于响应于所述开发环境模块的调试指令,通过所述仿真器与目标开发板进行信息交互,以对编译后的嵌入式工程进行调试。
4.根据权利要求1所述的嵌入式集成开发系统,其特征在于,所述系统还包括:
语言服务模块,所述语言服务模块与所述开发环境模块相连,用于在所述嵌入式工程的编程语言为目标语言时,给所述嵌入式工程提供代码智能提示功能。
5.根据权利要求4所述的嵌入式集成开发系统,其特征在于,所述代码智能提示功能包括代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化中的一种或多种。
6.根据权利要求1所述的嵌入式集成开发系统,其特征在于,所述系统还包括:
语言本地化模块,所述语言本地化模块与所述开发环境模块相连,用于给所述开发环境模块提供语言本地化功能。
7.根据权利要求1所述的嵌入式集成开发系统,其特征在于,所述系统还包括:
进制查看模块,所述进制查看模块与所述开发环境模块相连,用于响应于所述开发环境模块的进制查看指令,按照目标进制展示目标范围内的嵌入式工程代码,其中,所述进制查看指令包括所述目标进制和所述目标范围。
8.根据权利要求1-7任一项所述的嵌入式集成开发系统,其特征在于,所述编译规则配置界面包括系统全局配置界面、编译配置界面、汇编配置界面、工具链接配置界面、烧录配置界面、链接脚本文件路径配置界面、头文件目录及链接库目录配置界面、用户任务配置界面、禁用源文件配置界面和启用源文件配置界面中的一种或多种。
9.根据权利要求8所述的嵌入式集成开发系统,其特征在于,在所述编译规则配置界面包括所述系统全局配置界面时,所述编译规则配置信息包括系统所处硬件信息和调试输出设置信息中的一种或多种。
10.根据权利要求8所述的嵌入式集成开发系统,其特征在于,在所述编译规则配置界面包括所述编译配置界面时,所述编译规则配置信息包括编程语言标准信息、代码优化级别配置信息、代码优化方式配置信息和编译告警设置信息中的一种或多种。
11.根据权利要求8所述的嵌入式集成开发系统,其特征在于,在所述编译规则配置界面包括所述汇编配置界面时,所述编译规则配置信息包括预处理配置信息和汇编配置信息中的一种或多种。
12.根据权利要求8所述的嵌入式集成开发系统,其特征在于,在所述编译规则配置界面包括所述工具链接配置界面时,所述编译规则配置信息包括工具链输出格式配置信息、链接库信息中的一种或多种。
13.根据权利要求8所述的嵌入式集成开发系统,其特征在于,在所述编译规则配置界面包括所述禁用源文件配置界面时,所述编译规则配置信息包括所述嵌入式工程中禁用的源文件夹和源文件中的一种或多种,所述编译模块还用于在对所述嵌入式工程进行编译时,对禁用的源文件夹和源文件禁止编译。
14.根据权利要求8所述的嵌入式集成开发系统,其特征在于,在所述编译规则配置界面包括所述启用源文件配置界面时,所述编译规则配置信息包括所述嵌入式工程中启用的源文件夹和源文件中的一种或多种,所述编译模块还用于在对所述嵌入式工程进行编译时,对启用的源文件夹和源文件进行编译。
15.根据权利要求1-7任一项所述的嵌入式集成开发系统,其特征在于,所述嵌入式集成开发系统基于VS Code构建。
16.一种电子设备,其特征在于,包括根据权利要求1-15任一项所述的嵌入式集成开发系统。
17.一种嵌入式集成开发方法,其特征在于,所述方法包括:
展示编译规则配置界面,并接收编译规则配置信息;
基于所述编译规则配置信息设置创建的嵌入式工程的编译规则;
响应于编译指令,基于所述编译规则和编译环境对所述嵌入式工程进行编译。
18.根据权利要求17所述的嵌入式集成开发方法,其特征在于,所述方法还包括:
展示工程创建界面,并接收工程创建信息,其中,所述工程创建信息包括工程类别和工程模板,且不同的工程类别对应不同的工程模板;
根据所述工程类别和所述工程模板创建所述嵌入式工程。
19.根据权利要求17所述的嵌入式集成开发方法,其特征在于,所述方法还包括:
在所述嵌入式工程的编程语言为目标语言时,给所述嵌入式工程提供代码智能提示功能,其中,所述代码智能提示功能包括代码补全、关键字高亮、代码跳转、代码错误提示、代码格式化中的一种或多种。
20.根据权利要求17-19任一项所述的嵌入式集成开发方法,其特征在于,所述方法还包括:
响应于进制查看指令,按照目标进制展示目标范围内的嵌入式工程代码,其中,所述进制查看指令包括所述目标进制和所述目标范围。
21.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时,实现根据权利要求17-20任一项所述的嵌入式集成开发方法。
CN202410331304.XA 2024-03-22 2024-03-22 嵌入式集成开发系统、方法及电子设备 Pending CN117931205A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410331304.XA CN117931205A (zh) 2024-03-22 2024-03-22 嵌入式集成开发系统、方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410331304.XA CN117931205A (zh) 2024-03-22 2024-03-22 嵌入式集成开发系统、方法及电子设备

Publications (1)

Publication Number Publication Date
CN117931205A true CN117931205A (zh) 2024-04-26

Family

ID=90764940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410331304.XA Pending CN117931205A (zh) 2024-03-22 2024-03-22 嵌入式集成开发系统、方法及电子设备

Country Status (1)

Country Link
CN (1) CN117931205A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725177A (zh) * 2004-07-21 2006-01-25 中国科学院软件研究所 嵌入式设备集成开发系统及其使用方法
CN116301836A (zh) * 2021-12-08 2023-06-23 成都创腾软件有限公司 一种基于国产自主可控环境的嵌入式开发系统
CN116775009A (zh) * 2022-03-10 2023-09-19 成都创腾软件有限公司 一种基于图形化操作环境的嵌入式软件集成开发系统
CN117573095A (zh) * 2023-12-15 2024-02-20 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种支持持续集成的交叉编译框架的搭建及编译方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725177A (zh) * 2004-07-21 2006-01-25 中国科学院软件研究所 嵌入式设备集成开发系统及其使用方法
CN116301836A (zh) * 2021-12-08 2023-06-23 成都创腾软件有限公司 一种基于国产自主可控环境的嵌入式开发系统
CN116775009A (zh) * 2022-03-10 2023-09-19 成都创腾软件有限公司 一种基于图形化操作环境的嵌入式软件集成开发系统
CN117573095A (zh) * 2023-12-15 2024-02-20 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种支持持续集成的交叉编译框架的搭建及编译方法

Similar Documents

Publication Publication Date Title
US8201143B2 (en) Dynamic mating of a modified user interface with pre-modified user interface code library
US8141036B2 (en) Customized annotation editing
US7448024B2 (en) System and method for software application development in a portal environment
US20060041879A1 (en) System and method for changing defined user interface elements in a previously compiled program
CN103617037A (zh) 用于web开发系统的开发方法和web开发系统
CN100511139C (zh) 计算机软件系统基于xml和脚本语言应用程序开发运行方法
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
US20170286068A1 (en) Development support system
CN111708528A (zh) 一种小程序的生成方法、装置、设备及存储介质
CN105117210A (zh) 一种面向wscn的图形化编程系统
JP2013518321A (ja) パターンベースのユーザインターフェース
US20100313181A1 (en) Application building
US8543975B2 (en) Behavior-first event programming model
Sotnik et al. Modern Integrated Software Development Environments
US20220300262A1 (en) Method for constructing, running and implementing cross-platform application, terminal, server and system
KR101114038B1 (ko) 공통 언어 런타임 언어에서의 리소스에 대한 어드레스 지원
CN114217789A (zh) 功能组件拓展方法、装置、设备、存储介质及程序产品
Biernacki et al. A dynamic continuation-passing style for dynamic delimited continuations
CN117215574A (zh) 一种融合流程设计和ui设计的低代码开发系统和方法
Del Sole Visual Basic 2012 Unleashed
CN117931205A (zh) 嵌入式集成开发系统、方法及电子设备
WO2023128793A1 (ru) Система и способ динамической визуализации элементов программного обеспечения
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
Smyth Android Studio 3.5 Development Essentials-Kotlin Edition: Developing Android 10 (Q) Apps Using Android Studio 3.5, Kotlin and Android Jetpack
CN112199097B (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