CN106502695A - 一种基于嵌入式软件开发方法 - Google Patents
一种基于嵌入式软件开发方法 Download PDFInfo
- Publication number
- CN106502695A CN106502695A CN201610948879.1A CN201610948879A CN106502695A CN 106502695 A CN106502695 A CN 106502695A CN 201610948879 A CN201610948879 A CN 201610948879A CN 106502695 A CN106502695 A CN 106502695A
- Authority
- CN
- China
- Prior art keywords
- software
- program
- debugging
- scheme
- embedded software
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
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)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于嵌入式软件开发方法。包括需求分析:获取对系统开发的具体要求,概要设计:根据需求分析阶段产生的结果寻求实现目标系统的方案;详细设计:为软件中的模块确定响应的算法及内部数据结构,获取目标系统具体实现的精确描述;编码:将步骤三设计的方案用计算机程序语言描述得到在计算机上执行的程序;生成执行代码;编译:把宿主机上的源程序编译成目标代码;链接;调试:通过交叉调试器调试程序和被调试程序运行在不同机器上的调试器;测试;固化运行。本发明通过对嵌入式软件的开发进行设计、编译、调试、测试以及固化运行的过程,提高系统的可扩展性,并且,提高各组件的集成,降低嵌入式软件开发的周期。
Description
技术领域
本发明属于软件开发技术领域,特别是涉及一种基于嵌入式软件开发方法。
背景技术
嵌入式系统开发是当今计算机软件发展的一个热点。嵌入式系统的关键之处在于,结合微处理器或微控制器的系统电路与其专属的软件,来达到系统操作效率成本的最高比。随着计算机技术的发展和应用的普及,嵌入式系统己渗透到日常生活的各个方面,广泛地应用于消费电子、通信、汽车、国防、航空航天、工业控制、仪表和办公自动化等领域,它在应用数量上远远超过了各种通用计算机。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪哉,适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机。嵌入式软件开发有别于通用计算机软件系统开发的一个显著特点是:它一般需要一个交叉编译和调试环境,即编辑和编译软件在宿主机上进行(一般是在有较充裕CPU和内存资源的运行Windows操作系统的PC机上进行),编译好的目标软件则需要下载到目标机上运行(如在一个运行嵌入式Linux系统的ARM目标板上运行)。宿主机和目标机通过特定的通信协议建立通信连接。宿主机通过这个通信连接向目标机发送调试指令,而目标机则运行该调试指令并将相应的运行结果返回给宿主机。由于宿主机和目标机上往往运行着不同的操作系统,并且处理器的体系结构往往也不相同,这样就显著提高了嵌入式软件开发的复杂性。
发明内容
本发明的目的在于提供一种基于嵌入式软件开发方法,通过对嵌入式软件的开发进行设计、编译、调试、测试以及固化运行的过程,提高系统的可扩展性,并且,提高各组件的集成,降低嵌入式软件开发的周期。
本发明是通过以下技术方案实现的:
本发明为一种基于嵌入式软件开发方法,包括如下步骤:
步骤一,需求分析:获取对系统开发的具体要求,包括功能性需求和性能需求;
步骤二,概要设计:根据需求分析阶段产生的结果寻求实现目标系统的方案,然后确定方案,并对系统进行结构的设计、确定数据结构和数据库;
步骤三,详细设计:在步骤二的基础上为软件中的模块确定响应的算法及内部数据结构,获取目标系统具体实现的精确描述;
步骤四,编码:将步骤三设计的方案用计算机程序语言描述得到在计算机上执行的程序;
步骤五,生成执行代码:通过宿主机的交叉开发工具将编写好的程序源代码进行编译和链接,生成可供调试和/或固化的二进制目标程序;
步骤六,编译:把宿主机上的源程序编译成目标代码;
步骤七,链接:通过交叉链接器将所有目标模块及相关的库文件一起链接生成二进制程序;
步骤八,调试:通过交叉调试器调试程序和被调试程序运行在不同机器上的调试器;
步骤九,测试:在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行查错和纠错;
步骤十,固化运行:当调试完成后,程序代码被烧入到目标板的存储器中,并在真实的硬件环境上运行。
本发明具有以下有益效果:
本发明通过对嵌入式软件的开发进行设计、编译、调试、测试以及固化运行的过程,提高系统的可扩展性,并且,提高各组件的集成,降低嵌入式软件开发的周期。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种基于嵌入式软件开发方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为一种基于嵌入式软件开发方法,包括如下步骤:
步骤一,需求分析:获取对系统开发的具体要求,包括功能性需求和性能需求;
步骤二,概要设计:根据需求分析阶段产生的结果寻求实现目标系统的方案,然后确定方案,并对系统进行结构的设计、确定数据结构和数据库;
步骤三,详细设计:在步骤二的基础上为软件中的模块确定响应的算法及内部数据结构,获取目标系统具体实现的精确描述;
步骤四,编码:将步骤三设计的方案用计算机程序语言描述得到在计算机上执行的程序;
步骤五,生成执行代码:通过宿主机的交叉开发工具将编写好的程序源代码进行编译和链接,生成可供调试和/或固化的二进制目标程序;
步骤六,编译:把宿主机上的源程序编译成目标代码;
步骤七,链接:通过交叉链接器将所有目标模块及相关的库文件一起链接生成二进制程序;
步骤八,调试:通过交叉调试器调试程序和被调试程序运行在不同机器上的调试器;
步骤九,测试:在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行查错和纠错;
步骤十,固化运行:当调试完成后,程序代码被烧入到目标板的存储器中,并在真实的硬件环境上运行。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (1)
1.一种基于嵌入式软件开发方法,其特征在于,包括如下步骤:
步骤一,需求分析:获取对系统开发的具体要求,包括功能性需求和性能需求;
步骤二,概要设计:根据需求分析阶段产生的结果寻求实现目标系统的方案,然后确定方案,并对系统进行结构的设计、确定数据结构和数据库;
步骤三,详细设计:在步骤二的基础上为软件中的模块确定响应的算法及内部数据结构,获取目标系统具体实现的精确描述;
步骤四,编码:将步骤三设计的方案用计算机程序语言描述得到在计算机上执行的程序;
步骤五,生成执行代码:通过宿主机的交叉开发工具将编写好的程序源代码进行编译和链接,生成可供调试和/或固化的二进制目标程序;
步骤六,编译:把宿主机上的源程序编译成目标代码;
步骤七,链接:通过交叉链接器将所有目标模块及相关的库文件一起链接生成二进制程序;
步骤八,调试:通过交叉调试器调试程序和被调试程序运行在不同机器上的调试器;
步骤九,测试:在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行查错和纠错;
步骤十,固化运行:当调试完成后,程序代码被烧入到目标板的存储器中,并在真实的硬件环境上运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610948879.1A CN106502695A (zh) | 2016-10-26 | 2016-10-26 | 一种基于嵌入式软件开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610948879.1A CN106502695A (zh) | 2016-10-26 | 2016-10-26 | 一种基于嵌入式软件开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106502695A true CN106502695A (zh) | 2017-03-15 |
Family
ID=58322159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610948879.1A Pending CN106502695A (zh) | 2016-10-26 | 2016-10-26 | 一种基于嵌入式软件开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502695A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107621950A (zh) * | 2017-08-10 | 2018-01-23 | 清远博云软件有限公司 | 一种嵌入式软件开发方法 |
CN108228467A (zh) * | 2018-01-30 | 2018-06-29 | 北京航天长征飞行器研究所 | 一种嵌入式飞控软件算法快速验证方法及系统 |
CN109375908A (zh) * | 2018-11-13 | 2019-02-22 | 温州华天软件科技有限公司 | 一种应用软件开发方法 |
CN113434120A (zh) * | 2021-06-29 | 2021-09-24 | 上海律信信息科技有限公司 | 一种基于数据安全的软件开发方法 |
WO2023208012A1 (zh) * | 2022-04-27 | 2023-11-02 | 恒宝股份有限公司 | 程序处理、运行方法、装置、终端、智能卡及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354676A (zh) * | 2008-09-10 | 2009-01-28 | 浪潮齐鲁软件产业有限公司 | 一种嵌入式程序调试方法 |
CN101551928A (zh) * | 2009-05-14 | 2009-10-07 | 浪潮齐鲁软件产业有限公司 | 一种金融税控收款机嵌入程序的断点调试方法 |
-
2016
- 2016-10-26 CN CN201610948879.1A patent/CN106502695A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354676A (zh) * | 2008-09-10 | 2009-01-28 | 浪潮齐鲁软件产业有限公司 | 一种嵌入式程序调试方法 |
CN101551928A (zh) * | 2009-05-14 | 2009-10-07 | 浪潮齐鲁软件产业有限公司 | 一种金融税控收款机嵌入程序的断点调试方法 |
Non-Patent Citations (1)
Title |
---|
ARCHIE3000: "第2章嵌入式系统开发过程", 《HTTP://SUO.IM/5R1UOH》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107621950A (zh) * | 2017-08-10 | 2018-01-23 | 清远博云软件有限公司 | 一种嵌入式软件开发方法 |
CN108228467A (zh) * | 2018-01-30 | 2018-06-29 | 北京航天长征飞行器研究所 | 一种嵌入式飞控软件算法快速验证方法及系统 |
CN109375908A (zh) * | 2018-11-13 | 2019-02-22 | 温州华天软件科技有限公司 | 一种应用软件开发方法 |
CN113434120A (zh) * | 2021-06-29 | 2021-09-24 | 上海律信信息科技有限公司 | 一种基于数据安全的软件开发方法 |
CN113434120B (zh) * | 2021-06-29 | 2023-02-17 | 上海律信信息科技有限公司 | 一种基于数据安全的软件开发方法 |
WO2023208012A1 (zh) * | 2022-04-27 | 2023-11-02 | 恒宝股份有限公司 | 程序处理、运行方法、装置、终端、智能卡及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502695A (zh) | 一种基于嵌入式软件开发方法 | |
Clements et al. | {HALucinator}: Firmware re-hosting through abstraction layer emulation | |
US20100180263A1 (en) | Apparatus and method for detecting software error | |
CN103279418B (zh) | 一种组态控制信息的测试方法和装置 | |
CN102346235A (zh) | 一种面向硬件设备功能的自动测试系统及方法 | |
EP2706459B1 (en) | Apparatus and method for validating a compiler for a reconfigurable processor | |
US10083029B2 (en) | Detect application defects by correlating contracts in application dependencies | |
Goli et al. | Automated nonintrusive analysis of electronic system level designs | |
CN111897711B (zh) | 代码中bug的定位方法、装置、电子设备及可读存储介质 | |
CN113282487A (zh) | 编程语言调试方法、装置及终端设备 | |
CN115935631A (zh) | 用于车机设备的测试系统和方法、存储介质 | |
CN114428642B (zh) | 一种基于新型处理器架构的随机指令生成环境 | |
CN111597115A (zh) | 一种嵌入式操作系统自动化闭环测试系统及测试方法 | |
CN102722438A (zh) | 一种内核调试的方法和设备 | |
CN114625660A (zh) | 调试方法及装置 | |
CN118152298A (zh) | 内存的访问检测方法及其装置、电子设备以及计算机存储介质 | |
US8707267B1 (en) | Debugging a computer program by interrupting program execution in response to access of unused I/O port | |
CN116501378B (zh) | 一种逆向工程还原源代码的实现方法、装置和电子设备 | |
CN117370093A (zh) | 一种芯片调试方法、装置、设备及存储介质 | |
CN109144849B (zh) | 一种嵌入式软件调测方法 | |
CN116150021A (zh) | 程序运行轨迹的追踪方法、对比方法、装置及计算设备 | |
Sharma et al. | Finding substitutable binary code for reverse engineering by synthesizing adapters | |
CN114238107A (zh) | 一种跟踪调试方法、系统及计算机可读存储介质 | |
CN109189671A (zh) | 逐层夹逼式变量定位方法、系统及终端设备 | |
CN116415599A (zh) | Ic卡读取方法、写入方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |
|
RJ01 | Rejection of invention patent application after publication |