CN111240683A - 一种嵌入式热编程方法及系统 - Google Patents
一种嵌入式热编程方法及系统 Download PDFInfo
- Publication number
- CN111240683A CN111240683A CN201811447186.XA CN201811447186A CN111240683A CN 111240683 A CN111240683 A CN 111240683A CN 201811447186 A CN201811447186 A CN 201811447186A CN 111240683 A CN111240683 A CN 111240683A
- Authority
- CN
- China
- Prior art keywords
- compiling
- codes
- programming
- module
- running
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 10
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram 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/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
- G06F11/3644—Software debugging by instrumenting at runtime
-
- 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
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种嵌入式热编程方法及系统,涉及热编程领域,所述方法包括以下步骤:步骤1:目标机系统初始化处理,并进入热编程模式;步骤2:进行代码的编写和修改,并进行暂时存储;步骤3:编译代码,确认是否编译成功,若否,则返回步骤2,若是,则生成可执行文件并运行;步骤4:检查运行过程和结果,确认是否达到预期的功能,若否,则返回步骤2,若是,则退出热编程模式。本发明通过直接在目标机上进行程序代码的编写,并编译和链接程序,达到解决bug和添加新功能的目的,且不用重启目标机,新编写的程序就可以直接运行,不会导致正常业务中断。
Description
技术领域
本发明涉及热编程领域,尤其涉及一种嵌入式热编程方法及系统。
背景技术
在嵌入式开发过程种,有宿主机和目标机的角色之分:
1.宿主机是编写程序,执行编译和链接嵌入式软件的计算机;
2.目标机是运行嵌入式软件版本的硬件平台;
通常使用的计算机就是宿主机,而开发板则是目标机。在宿主机上编写程序代码,通过编译和链接生成软件版本,然后将软件版本下载到目标机上,重启目标机,才能运行新的原件版本,新增程序才能得到执行。
因此在现有嵌入式开发过程中,在解决bug和添加新功能的时候,需要编译生成新的嵌入式软件版本,然后下载到目标机中,必须重新目标机后才能运行新的软件版本。其中,重启目标机会导致业务中断,甚至配置丢失。在实时性要求较高的应用场景(例如核心骨干网和中心机房)不允许出现业务中断,甚至毫秒级的业务中断也会引发通信事故。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种嵌入式热编程方法及系统,通过直接在目标机上进行程序代码的编写,并编译和链接程序,达到解决bug和添加新功能的目的,且不用重启目标机,新编写的程序就可以直接运行,不会导致正常业务中断。
本发明提供种嵌入式热编程方法,所述方法包括以下步骤:
步骤1:目标机系统初始化处理,并进入热编程模式;
步骤2:进行代码的编写和修改,并进行暂时存储;
步骤3:编译代码,确认是否编译成功,若否,则返回步骤2,若是,则生成可执行文件并运行;
步骤4:检查运行过程和结果,确认是否达到预期的功能,若否,则返回步骤2,若是,则退出热编程模式。
进一步的,所述系统初始化处理包括编译工具准备、环境变量设置、系统资源划分和征用、热编程环境搭建。
进一步的,在进入热编程模式之前,需要进行自检处理,确认系统初始化处理是否完成。
进一步的,在运行可执行文件过程中,将运行过程和结果保存在log文件中,便于检查运行过程和结果。
进一步的,在退出热编程模式前,需要回收系统资源,让目标机系统恢复热编程之前状态。
一种嵌入式热编程系统,所述系统包括
初始化模块:用于gcc编译工具的装载、环境变量的设置、系统资源的划分和征用、热编程环境搭建;
自检模块:用于确认系统初始化处理是否完成;
代码编辑模块:用于代码的编写和修改,并暂存代码;
程序编译模块:用于编译代码生成可执行文件;
程序执行模块:用于运行生成的可执行文件,记录执行过程和结果;
结果log记录模块:用于记录运行过程中产生的log;
资源回收模块:用于回收系统划分和征用的资源。
进一步的,所述程序编译模块集成了gcc编译工具,用于检测代码,提供编译报错信息,链接生成可执行文件。
如上所述,本发明的一种嵌入式热编程方法及系统,具有以下有益效果:
1.本发明中,不需要宿主机,可以直接在目标机上进行代码开发。
2.本发明中,不需要升级目标机软件版本,也不用重启系统,就可以进行代码开发和运行,不会导致正常业务中断。
附图说明
图1显示为本发明实施例中公开的嵌入式热编程方法流程图;
图2显示为本发明实施例中公开的嵌入式热编程系统结构框图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图1所示,本发明提供一种嵌入式热编程方法及系统,所述方法包括以下步骤:
步骤1:目标机系统初始化处理,并进入热编程模式;
其中,系统初始化处理包括编译工具准备、环境变量设置、系统资源划分和征用、热编程环境搭建;在进入热编程模式之前,需要进行自检处理,确认系统初始化处理是否完成,当初始化处理完成后,才允许进入热编程模式界面。
步骤2:进行代码的编写和修改,并进行暂时存储;
在进入热编程模式界面后,可以进行代码的编写和修改,且将代码进行暂时存储,等待gcc编译工具编译生成可执行文件。
步骤3:编译代码,确认是否编译成功,若否,则返回步骤2,若是,则生成可执行文件并运行;
gcc编译工具对代码进行编译和链接,且对代码做各种合法性检查,如果有报错,则返回步骤2,重新对代码进行修改,直到编译通过,最终生成可执行文件并运行,用来解决原有系统的bug,或者添加新功能;
为了方便调试追踪问题,可执行文件运行的过程中,可以把一些关键的信息和执行过程和结果保存在指定的log文件中。
步骤4:检查运行过程和结果,确认是否达到预期的功能,若否,则返回步骤2,若是,则退出热编程模式。
查看log文件,确认程序是否达到预期的功能和效果,如果没有,则返回步骤2重新对代码进行修改,直到达到预期的功能和效果,如果有,则回收系统资源,退出热编程模式,让目标机系统恢复热编程之前状态。
如图2所示,所述系统包括
初始化模块:用于gcc编译工具的装载、环境变量的设置、系统资源的划分和征用、热编程环境搭建;
自检模块:用于确认系统初始化处理是否完成,是否可以进入热编程模式;
代码编辑模块:用于代码的编写和修改,并暂存代码,为以后gcc编译工具提供源代码;
程序编译模块:用于编译代码生成可执行文件,该模块集成了gcc编译工具,可以用于检测源代码,提供编译报错信息,链接生成可执行文件;
程序执行模块:用于运行生成的可执行文件,记录执行过程和结果,用于检测程序是否达到预期功能;
结果log记录模块:用于记录运行过程中产生的log,跟踪程序运行过程和结果;
资源回收模块:用于回收系统划分和征用的资源,在退出热编程模式之前,恢复环境变量。
综上所述,本发明通过直接在目标机上进行程序代码的编写,并编译和链接程序,达到解决bug和添加新功能的目的,且不用重启目标机,新编写的程序就可以直接运行,不会导致正常业务中断。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (7)
1.一种嵌入式热编程方法,其特征在于,所述方法包括以下步骤:
步骤1:目标机系统初始化处理,并进入热编程模式;
步骤2:进行代码的编写和修改,并进行暂时存储;
步骤3:编译代码,确认是否编译成功,若否,则返回步骤2,若是,则生成可执行文件并运行;
步骤4:检查运行过程和结果,确认是否达到预期的功能,若否,则返回步骤2,若是,则退出热编程模式。
2.根据权利要求1所述的嵌入式热编程方法,其特征在于:所述系统初始化处理包括编译工具准备、环境变量设置、系统资源划分和征用、热编程环境搭建。
3.根据权利要求1所述的嵌入式热编程方法,其特征在于:在进入热编程模式之前,需要进行自检处理,确认系统初始化处理是否完成。
4.根据权利要求1所述的嵌入式热编程方法,其特征在于:在运行可执行文件过程中,将运行过程和结果保存在log文件中,便于检查运行过程和结果。
5.根据权利要求1所述的嵌入式热编程方法,其特征在于:在退出热编程模式前,需要回收系统资源,让目标机系统恢复热编程之前状态。
6.一种嵌入式热编程系统,其特征在于,所述系统包括
初始化模块:用于gcc编译工具的装载、环境变量的设置、系统资源的划分和征用、热编程环境搭建;
自检模块:用于确认系统初始化处理是否完成;
代码编辑模块:用于代码的编写和修改,并暂存代码;
程序编译模块:用于编译代码生成可执行文件;
程序执行模块:用于运行生成的可执行文件,记录执行过程和结果;
结果log记录模块:用于记录运行过程中产生的log;
资源回收模块:用于回收系统划分和征用的资源。
7.根据权利要求6所述的嵌入式热编程系统,其特征在于,所述程序编译模块集成了gcc编译工具,用于检测代码,提供编译报错信息,链接生成可执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811447186.XA CN111240683A (zh) | 2018-11-29 | 2018-11-29 | 一种嵌入式热编程方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811447186.XA CN111240683A (zh) | 2018-11-29 | 2018-11-29 | 一种嵌入式热编程方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111240683A true CN111240683A (zh) | 2020-06-05 |
Family
ID=70869490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811447186.XA Pending CN111240683A (zh) | 2018-11-29 | 2018-11-29 | 一种嵌入式热编程方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240683A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630258A (zh) * | 2009-07-29 | 2010-01-20 | 精伦电子股份有限公司 | Windows平台上嵌入式Linux软件集成开发系统及其构建方法 |
CN103729288A (zh) * | 2013-11-01 | 2014-04-16 | 华中科技大学 | 一种嵌入式多核环境下应用程序的调试方法 |
CN104050080A (zh) * | 2014-06-09 | 2014-09-17 | 汉柏科技有限公司 | 用户态调试linux内核的方法及系统 |
CN105740139A (zh) * | 2014-12-09 | 2016-07-06 | 北京中船信息科技有限公司 | 一种基于虚拟环境的嵌入式软件调试方法 |
CN106502905A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种应用程序的测试方法、装置及系统 |
CN106776310A (zh) * | 2016-12-07 | 2017-05-31 | 广州视源电子科技股份有限公司 | 一种调试方法及调试装置 |
WO2018113443A1 (zh) * | 2016-12-21 | 2018-06-28 | 北京大学 | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 |
-
2018
- 2018-11-29 CN CN201811447186.XA patent/CN111240683A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630258A (zh) * | 2009-07-29 | 2010-01-20 | 精伦电子股份有限公司 | Windows平台上嵌入式Linux软件集成开发系统及其构建方法 |
CN103729288A (zh) * | 2013-11-01 | 2014-04-16 | 华中科技大学 | 一种嵌入式多核环境下应用程序的调试方法 |
CN104050080A (zh) * | 2014-06-09 | 2014-09-17 | 汉柏科技有限公司 | 用户态调试linux内核的方法及系统 |
CN105740139A (zh) * | 2014-12-09 | 2016-07-06 | 北京中船信息科技有限公司 | 一种基于虚拟环境的嵌入式软件调试方法 |
CN106502905A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种应用程序的测试方法、装置及系统 |
CN106776310A (zh) * | 2016-12-07 | 2017-05-31 | 广州视源电子科技股份有限公司 | 一种调试方法及调试装置 |
WO2018113443A1 (zh) * | 2016-12-21 | 2018-06-28 | 北京大学 | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 |
Non-Patent Citations (1)
Title |
---|
聂宇威: "超高空观测平台半实物仿真系统设计与实现", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019256B2 (en) | Systems and methods for incremental software development | |
KR102059705B1 (ko) | 적응식 이식가능 라이브러리 | |
WO2017185606A1 (zh) | 基于overlay机制的APK开发方法及系统 | |
WO2015117434A1 (zh) | 补丁的制作方法及装置、补丁的激活方法及装置 | |
CN102364433B (zh) | 在ARM处理器上实现Wine构建工具移植的方法 | |
CN115629971A (zh) | 一种应用的开发系统和开发方法 | |
CN111562934A (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
WO2022156277A1 (zh) | 一种应用程序安装方法、装置、计算设备及可读存储介质 | |
CN110851168A (zh) | 数据处理方法及其装置、计算机可读存储介质 | |
CN111061486B (zh) | 一种安卓应用程序增量方法 | |
CN113454606B (zh) | 不同编译的可执行文件之间的软件检查点-恢复 | |
CN109766125B (zh) | 批次间追平冲突的识别方法及装置 | |
CN100359485C (zh) | 嵌入式系统的测试装置及测试方法 | |
CN111240683A (zh) | 一种嵌入式热编程方法及系统 | |
US11573787B1 (en) | Hot reloading a running application with an unsaved source code change | |
CN111984329B (zh) | 一种boot引导软件标准化生成、执行方法及系统 | |
CN113157329A (zh) | 启动应用的方法、系统、服务器和存储介质 | |
CN113568834A (zh) | Sdk代码的兼容性检测方法、装置、计算机设备和介质 | |
CN108958795B (zh) | 一种嵌入式系统中BootLoader代码重利用方法和开发板 | |
CN112631599A (zh) | 编译方法、装置和存储介质 | |
CN112052007A (zh) | 源码调试方法、装置、服务器及存储介质 | |
CN113672238B (zh) | 基于实时操作系统模块化管理的运行方法、装置及设备 | |
CN110618824A (zh) | 一种软件升级方法、装置、介质和设备 | |
US20230359547A1 (en) | Targeted Testing for Modular Software Applications | |
CN114327396A (zh) | 脱离源码编译环境开发Andriod系统应用的方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200605 |