CN104699523A - 用于硬件平台所开发的应用程序的调试方法和系统 - Google Patents

用于硬件平台所开发的应用程序的调试方法和系统 Download PDF

Info

Publication number
CN104699523A
CN104699523A CN201510131447.7A CN201510131447A CN104699523A CN 104699523 A CN104699523 A CN 104699523A CN 201510131447 A CN201510131447 A CN 201510131447A CN 104699523 A CN104699523 A CN 104699523A
Authority
CN
China
Prior art keywords
hardware platform
library file
application program
host computer
executable program
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.)
Granted
Application number
CN201510131447.7A
Other languages
English (en)
Other versions
CN104699523B (zh
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.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield 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 Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201510131447.7A priority Critical patent/CN104699523B/zh
Publication of CN104699523A publication Critical patent/CN104699523A/zh
Application granted granted Critical
Publication of CN104699523B publication Critical patent/CN104699523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用于硬件平台所开发的应用程序的调试方法和装置,该调试方法包括以下步骤:步骤S1,确定硬件平台的IO操作,用上位机系统内的IO操作代码来模拟硬件平台的IO操作;步骤S2,将用于模拟的IO操作代码编译为库文件,将待调试的应用程序编译为上位机的可执行程序,并将库文件与可执行程序的各执行代码分别进行初始链接;步骤S3,通过模拟的IO操作,在上位机上运行并调试可执行程序。本发明利用上位机的IO操作代码来模拟该硬件平台的主要IO操作,使在上位机上进行调试的应用程序的运行逻辑以及运行效果与在硬件平台上运行时保持一致,从而解决了在硬件平台上开发软件时遇到的仿真操作过程复杂的问题,因此可以降低开发成本。

Description

用于硬件平台所开发的应用程序的调试方法和系统
技术领域
本发明主要涉及应用程序的调试方面,涉及一种用于硬件平台所开发的应用程序的调试方法和系统。
背景技术
通常,硬件平台(尤其是嵌入式系统开发平台)自身的操作系统功能极为有限,没有提供可调试的支持(即,在硬件平台内不存在硬件仿真器或者硬件虚拟机),在这些硬件平台的开发操作处于一种高复杂度且低可见度的状态,为了验证所开发的程序的正确性,开发操作一般要使用硬件仿真器(也称为硬件调试器)。现有技术中,调试器(DeBugger)是作为软件维护与错误修正的一个最重要、最直接,同时也是必不可少的一种机制。在应用中,调试器一般是通过串口与上位机(即计算机)软件相连,在连接之后由上位机软件发出控制命令,通过该串口将待调试的可执行程序发送到硬件仿真器内,然后由硬件仿真器执行该可执行程序。所不同的是,硬件仿真器可以对这些程序做特定的运行,如单步、断点、更改执行地址、查看内存与寄存器状态等等来实现固件的调试。
使用硬件仿真器进行开发,首先要建立一个符合要求的硬件平台,如果该硬件平台涉及的程序比较复杂,还要搭建一个人机交流通道,例如,可以是一个简单的发光二极管、蜂鸣器或串口通讯的LCD显示屏等。然后编写一个简单的程序示例,通过此前建立的人机交流通道验证该硬件平台是否正常工作,之后再验证底层驱动程序和用户框架程序是否正常工作,然后才能对应用程序进行调试。所以,开发时搭建该硬件平台时操作过程比较复杂,而且硬件仿真器价格也较昂贵。
发明内容
为了解决上述问题,本发明提供一种用于硬件平台所开发的应用程序的调试方法和系统。
根据本发明的一个方面,提供了一种用于硬件平台所开发的应用程序的调试方法,其包括以下步骤:
步骤S1,确定硬件平台的IO操作,用上位机系统内的IO操作代码来模拟硬件平台的IO操作;
步骤S2,将用于模拟的IO操作代码编译为库文件,将待调试的应用程序编译为上位机的可执行程序,并将库文件与可执行程序的各执行代码分别进行初始链接;
步骤S3,通过模拟的IO操作,在上位机上运行并调试可执行程序。
作为优选,硬件平台以非硬件相关的语言编写应用程序。
作为优选,库文件包括动态库文件或静态库文件。
作为优选,步骤S1进一步包括:
通过硬件平台为应用程序提供的API来确定硬件平台的IO操作。
作为优选,硬件平台的IO操作包括下列至少之一:
文件IO操作、图形显示、时钟、硬件信息IO操作、执行单元IO操作。
根据本发明的另一个方面,提供了一种用于硬件平台所开发的应用程序的调试系统,其包括:
模拟模块,其配置为确定硬件平台的IO操作,用上位机系统内的IO操作代码来模拟硬件平台的IO操作;
编译模块,其配置为将用于模拟的IO操作代码编译为库文件,且将待调试的应用程序编译为上位机的可执行程序,并将库文件与可执行程序的各执行代码分别进行初始链接;
调试模块,其配置为通过模拟的IO操作,在上位机上运行并调试可执行程序。
作为优选,硬件平台以非硬件相关的语言编写应用程序。
作为优选,库文件包括动态库文件或静态库文件。
作为优选,模拟模块进一步配置为通过硬件平台为应用程序提供的API来确定硬件平台的IO操作。
作为优选,硬件平台的IO操作包括下列至少之一:
文件IO操作、图形显示、时钟、硬件信息IO操作、执行单元IO操作。
本发明相对于现有技术的有益效果在于:
1、本发明利用上位机的IO操作代码来模拟硬件平台的主要IO操作,使在上位机上进行调试的应用程序的运行逻辑以及运行效果与在硬件平台上运行时保持一致,从而使得硬件平台所开发的应用程序可以易于由上位机的调试工具进行调试从而定位该应用程序内的逻辑错误,解决了在硬件平台上开发软件时遇到的仿真操作过程复杂的问题,并且不需要硬件仿真器,因此可以降低开发成本,并且本发明的技术方案的实现不同于现有技术中的硬件虚拟机,硬件虚拟机在进行调试时需要模拟硬件指令集,而本发明的只需要模拟该硬件平台的IO操作,因而所需的开发周期很短,能够实现轻量级的仿真方法;
2、适用于多种上位机系统,便于对硬件平台所开发的应用程序进行调试,并且在上位机上也不需要额外的硬件支持,仅使用其常用的开发调试工具即可。
附图说明
图1为根据本发明的用于硬件平台所开发的应用程序的调试方法的流程图;
图2为根据本发明的用于硬件平台所开发的应用程序的调试系统的结构框图。
具体实施方式
以下结合附图对本发明的进行详细描述。
根据本发明的实施例,提供了一种用于硬件平台所开发的应用程序的调试方法,其可以包括以下步骤:
步骤S1,确定硬件平台的IO操作,用上位机系统内的IO操作代码来模拟硬件平台的IO操作。
一般硬件平台会为应用程序提供API(Application ProgrammingInterface),由于硬件平台的操作系统往往十分精简,其API一般都是IO操作,因此可以通过利用硬件平台为应用程序提供的API来确定硬件平台的IO操作。其中,硬件平台的IO操作可以包括文件IO操作、图形显示、时钟、硬件信息IO操作、执行单元IO操作等。根据对硬件平台IO操作的分析可以确定该硬件平台的IO操作中是否存在文件操作,该硬件平台是否有显示设备,该应用程序是否需要向显示设备显示一些信息,该平台的程序是否要向系统获取时钟等。
在一些优选实施方式中,如果上位机系统为Windows或Linux等主流操作系统,则步骤S1中的IO操作代码的模拟可以包括:将文件IO操作模拟为Windows或Linux平台的文件操作,将图形显示模拟为窗口显示,将时钟模拟为获取系统的时间等。其中,此类IO操作一般为操作系统的系统调用。
步骤S2,将用于模拟的IO操作代码编译为库文件,将待调试的应用程序编译为上位机的可执行程序,并将库文件与可执行程序的各执行代码分别进行初始链接。
由于硬件平台的此类应用程序的开发通常直接使用非硬件相关的语言(例如C语言)进行编写,所以可以直接将硬件平台开发的应用程序编译为任意上位机平台(如Windows或Linux等)的指令,使得应用程序可以直接在上位机进行执行,便于对硬件平台所开发的应用程序进行调试,并且在上位机上也不需要额外的硬件支持,仅使用其常用的开发调试工具即可。
步骤S3,通过模拟的IO操作,在上位机上运行并调试可执行程序。
通过上述技术方案,可以使得硬件平台上开发的应用程序可以直接在上位机上进行调试或运行,效果与上位机系统内的普通应用程序一样,并可以直接查看模拟的IO操作效果是否与预期的一致。
库文件可以包括动态库文件或静态库文件。静态库和动态库是两种共享程序代码的方式。使用动态库的优点是系统只需载入一次动态库,不同的程序可以使用内存中相同的动态库的副本,因此节省了很多内存。使用静态库的特点是调试程序中包含了库代码的一份完整拷贝。
根据本发明的一个实施例,提供了一种调试方法在实践中用于嵌入式平台(即对应于上述硬件平台)所开发的应用程序。在一个嵌入式平台中具有多份源文件(即对应于待调试的应用程序的执行代码)。该嵌入式平台为该源文件提供了API,可通过如上步骤实现仿真(即调试):
步骤1、上位机根据该嵌入式平台所提供的API(即IO操作)、用上位机的IO操作代码对嵌入式平台的IO操作进行模拟,然后将用于模拟的IO操作代码编译为静态库文件,其中,该嵌入式平台的应用程序以C语言所编写,将应用程序直接编译为上位机的Windows操作系统的可执行程序;
步骤2、将该可执行程序与步骤1中所模拟的静态库文件进行链接;
步骤3、通过上位机的调试工具对该可执行程序进行运行和调试,通过模拟的IO效果,验证程序逻辑是否正确。
根据本发明的实施例,还提供了一种用于硬件平台所开发的应用程序的调试系统,该调试系统可以配置在上位机中。硬件平台可以以非硬件相关的语言编写应用程序。
该调试系统可以包括:
模拟模块21,其配置为确定硬件平台的IO操作,硬件平台的IO操作可以包括下列至少之一:文件IO操作、图形显示、时钟、硬件信息IO操作、执行单元IO操作。该模拟模块21利用上位机系统内的IO操作代码来模拟硬件平台的IO操作,优选地,该模拟模块21可以配置为通过硬件平台为应用程序提供的API来确定硬件平台的IO操作;
编译模块22,其配置为将用于模拟的IO操作代码编译为库文件,其中,库文件可以包括动态库文件或静态库文件,并且该编译模块22还配置为将待调试的应用程序编译为上位机的可执行程序,并将库文件与可执行程序的各执行代码分别进行初始链接;
调试模块23,其配置为通过模拟的IO操作,在上位机上运行并调试所述可执行程序。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

Claims (10)

1.一种用于硬件平台所开发的应用程序的调试方法,其特征在于,包括以下步骤:
步骤S1,确定所述硬件平台的IO操作,用上位机系统内的IO操作代码来模拟所述硬件平台的IO操作;
步骤S2,将用于模拟的所述IO操作代码编译为库文件,将待调试的应用程序编译为上位机的可执行程序,并将所述库文件与所述可执行程序的各执行代码分别进行初始链接;
步骤S3,通过模拟的IO操作,在上位机上运行并调试所述可执行程序。
2.根据权利要求1所述的调试方法,其特征在于,所述硬件平台以非硬件相关的语言编写所述应用程序。
3.根据权利要求1所述的调试方法,其特征在于,所述库文件包括动态库文件或静态库文件。
4.根据权利要求1所述的调试方法,其特征在于,步骤S1进一步包括:
通过所述硬件平台为所述应用程序提供的API来确定所述硬件平台的IO操作。
5.根据权利要求1所述的调试方法,其特征在于,所述硬件平台的IO操作包括下列至少之一:
文件IO操作、图形显示、时钟、硬件信息IO操作、执行单元IO操作。
6.一种用于硬件平台所开发的应用程序的调试系统,其特征在于,包括:
模拟模块,其配置为确定所述硬件平台的IO操作,用上位机系统内的IO操作代码来模拟所述硬件平台的IO操作;
编译模块,其配置为将用于模拟的所述IO操作代码编译为库文件,且配置为将待调试的应用程序编译为上位机的可执行程序,并将所述库文件与所述可执行程序的各执行代码分别进行初始链接;
调试模块,其配置为通过模拟的IO操作,在上位机上运行并调试所述可执行程序。
7.根据权利要求6所述的调试系统,其特征在于,所述硬件平台以非硬件相关的语言编写所述应用程序。
8.根据权利要求6所述的调试系统,其特征在于,所述库文件包括动态库文件或静态库文件。
9.根据权利要求6所述的调试系统,其特征在于,所述模拟模块进一步配置为通过所述硬件平台为所述应用程序提供的API来确定所述硬件平台的IO操作。
10.根据权利要求6所述的调试系统,其特征在于,所述硬件平台的IO操作包括下列至少之一:
文件IO操作、图形显示、时钟、硬件信息IO操作、执行单元IO操作。
CN201510131447.7A 2015-03-24 2015-03-24 用于硬件平台所开发的应用程序的调试方法和系统 Active CN104699523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510131447.7A CN104699523B (zh) 2015-03-24 2015-03-24 用于硬件平台所开发的应用程序的调试方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510131447.7A CN104699523B (zh) 2015-03-24 2015-03-24 用于硬件平台所开发的应用程序的调试方法和系统

Publications (2)

Publication Number Publication Date
CN104699523A true CN104699523A (zh) 2015-06-10
CN104699523B CN104699523B (zh) 2018-06-01

Family

ID=53346689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510131447.7A Active CN104699523B (zh) 2015-03-24 2015-03-24 用于硬件平台所开发的应用程序的调试方法和系统

Country Status (1)

Country Link
CN (1) CN104699523B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970825A (zh) * 2017-03-10 2017-07-21 深圳航天科技创新研究院 一种基于gdb可配置框架的arm7仿真目标机实现方法
CN108255542A (zh) * 2018-01-05 2018-07-06 北京北信源信息安全技术有限公司 一种虚拟机的串口并口管控方法与装置
WO2018184359A1 (zh) * 2017-04-07 2018-10-11 万达百汇科技(深圳)有限公司 支付终端应用仿真方法、移动终端和可读存储介质
CN109992516A (zh) * 2019-04-03 2019-07-09 北京中科寒武纪科技有限公司 一种编程调试方法、装置及相关产品
CN112765018A (zh) * 2021-01-12 2021-05-07 武汉光庭信息技术股份有限公司 一种仪器仪表调试系统及方法
CN113342702A (zh) * 2021-08-04 2021-09-03 武汉天喻信息产业股份有限公司 一种应用程序测试方法、装置、设备及可读存储介质
CN115525542A (zh) * 2022-09-06 2022-12-27 河南翔宇医疗设备股份有限公司 一种调试工具的调试方法、装置以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558330A (zh) * 2004-01-18 2004-12-29 广东拓思软件科学园有限公司 家电控制器嵌入式软件的仿真集成开发系统及其纯软件仿真执行方法
CN102662648A (zh) * 2012-03-05 2012-09-12 广东天波信息技术股份有限公司 一种通讯终端的嵌入式软件开发仿真平台及其应用
CN103678099A (zh) * 2012-09-10 2014-03-26 国网电力科学研究院 一种实现硬件平台与软件平台通讯的方法以及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558330A (zh) * 2004-01-18 2004-12-29 广东拓思软件科学园有限公司 家电控制器嵌入式软件的仿真集成开发系统及其纯软件仿真执行方法
CN102662648A (zh) * 2012-03-05 2012-09-12 广东天波信息技术股份有限公司 一种通讯终端的嵌入式软件开发仿真平台及其应用
CN103678099A (zh) * 2012-09-10 2014-03-26 国网电力科学研究院 一种实现硬件平台与软件平台通讯的方法以及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王荣: ""嵌入式软件测试方法"", 《航空兵器》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970825A (zh) * 2017-03-10 2017-07-21 深圳航天科技创新研究院 一种基于gdb可配置框架的arm7仿真目标机实现方法
CN106970825B (zh) * 2017-03-10 2020-07-14 深圳航天科技创新研究院 一种基于gdb可配置框架的arm7仿真目标机实现方法
WO2018184359A1 (zh) * 2017-04-07 2018-10-11 万达百汇科技(深圳)有限公司 支付终端应用仿真方法、移动终端和可读存储介质
CN108255542A (zh) * 2018-01-05 2018-07-06 北京北信源信息安全技术有限公司 一种虚拟机的串口并口管控方法与装置
CN108255542B (zh) * 2018-01-05 2021-08-10 北京北信源信息安全技术有限公司 一种虚拟机的串口并口管控方法与装置
CN109992516A (zh) * 2019-04-03 2019-07-09 北京中科寒武纪科技有限公司 一种编程调试方法、装置及相关产品
CN109992516B (zh) * 2019-04-03 2022-08-26 寒武纪(西安)集成电路有限公司 一种编程调试方法、装置及相关产品
CN112765018A (zh) * 2021-01-12 2021-05-07 武汉光庭信息技术股份有限公司 一种仪器仪表调试系统及方法
CN113342702A (zh) * 2021-08-04 2021-09-03 武汉天喻信息产业股份有限公司 一种应用程序测试方法、装置、设备及可读存储介质
CN115525542A (zh) * 2022-09-06 2022-12-27 河南翔宇医疗设备股份有限公司 一种调试工具的调试方法、装置以及介质
CN115525542B (zh) * 2022-09-06 2024-01-02 河南翔宇医疗设备股份有限公司 一种调试工具的调试方法、装置以及介质

Also Published As

Publication number Publication date
CN104699523B (zh) 2018-06-01

Similar Documents

Publication Publication Date Title
CN104699523A (zh) 用于硬件平台所开发的应用程序的调试方法和系统
EP0926592B1 (en) Software emulation system
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
CN101630258A (zh) Windows平台上嵌入式Linux软件集成开发系统及其构建方法
CN100492387C (zh) 基于Keil C51的软件保护开发的方法和系统
US8225286B2 (en) Debugging interpreted input
CN104156311A (zh) 一种基于cpu模拟器的嵌入式c语言目标码级单元测试方法
CN102722438B (zh) 一种内核调试的方法和设备
CN111930398A (zh) 应用程序更新方法、装置、系统、介质及设备
KR20190078681A (ko) 인공신경망 학습/시뮬레이션 시스템 및 방법
CN104317723A (zh) 一种驱动程序运行信息的跟踪方法及系统
CN113632067A (zh) 利用跟踪代码的记录执行来仿真非跟踪代码
CN103678099B (zh) 一种实现硬件平台与软件平台通讯的方法以及装置
CN109144849B (zh) 一种嵌入式软件调测方法
CN109271231B (zh) 测试物理硬件装置的方法和仿真物理硬件装置的系统
US11573787B1 (en) Hot reloading a running application with an unsaved source code change
KR20240009757A (ko) 오토사 스택 가상화를 통한 윈도우 기반의 차량용 소프트웨어 시뮬레이션 장치 및 방법
Jakubík Cortex-m simulator
CN101593257B (zh) 基于.Net虚拟机的软件保护系统和方法
US11719749B1 (en) Method and system for saving and restoring of initialization actions on dut and corresponding test environment
Sastry et al. TESTING DISTRIBUTED EMBEDDED SYSTEMS THROUGH INSTRUCTION SET SIMULATORS
Dolinskii et al. In-circuit emulators of microprocessors and microcontrollers
Li et al. Software Design of Protocol Conversion between Instruments Based on Test-Driven Development
Mantu et al. Approaches to teaching embedded development
Phillips Enhanced debugging with traces

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder