CN111221534B - 一种模块化嵌入式软件交叉编译烧录装置及方法 - Google Patents
一种模块化嵌入式软件交叉编译烧录装置及方法 Download PDFInfo
- Publication number
- CN111221534B CN111221534B CN201911422694.7A CN201911422694A CN111221534B CN 111221534 B CN111221534 B CN 111221534B CN 201911422694 A CN201911422694 A CN 201911422694A CN 111221534 B CN111221534 B CN 111221534B
- Authority
- CN
- China
- Prior art keywords
- burning
- file
- compiling
- codes
- compiler
- 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
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
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种模块化嵌入式软件交叉编译烧录装置及方法,用于在Windows环境下适配不同的上层应用软件,通过相异编译器生成目标模块两个通道的可执行文件,该装置包括筛选器、C编译器、汇编器、链接器和烧录器,所述的筛选器一端连接应用软件模块,另一端分别连接C编译器和汇编器,所述的C编译器、汇编器和第三方库文件分别连接链接器,所述的链接器的输出连接烧录器。与现有技术相比,本发明以下优点:能够有效减少前期搭建两套交叉编译开发环境的繁琐过程。
Description
技术领域
本发明涉及轨道交通信号系统领域,尤其是涉及一种模块化嵌入式软件交叉编译烧录装置及方法。
背景技术
由于轨道交通信号系统安全苛责性要求,信号设备安全计算机平台通常采用基于微内核的定制化操作系统。因此,对于在Windows环境下开发此类软件产品,需要使用交叉编译方法。
为了避免共模失效问题,安全计算机平台软件通常需要采用相异的编译器生成双通道可执行文件。因此在进行项目开发时,就必须搭建两套交叉编译开发环境,非常不便于研发及维护。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种模块化嵌入式软件交叉编译烧录装置及方法。
本发明的目的可以通过以下技术方案来实现:
一种模块化嵌入式软件交叉编译烧录装置,用于在Windows环境下适配不同的上层应用软件,通过相异编译器生成目标模块两个通道的可执行文件。
优选地,该装置提供一个通用的makefile文件框架。
优选地,该装置提供不同应用场景下的若干文件集,用来适配不同的上层应用软件和底层BSP包及操作系统。
优选地,该装置基于统一的对象生成模式,最终输出目标板卡运行的可执行文件,并且提供烧录指令。
优选地,所述的装置与第三方库文件连接,所述的装置包括筛选器、C编译器、汇编器、链接器和烧录器,所述的筛选器一端连接应用软件模块,另一端分别连接C编译器和汇编器,所述的C编译器、汇编器和第三方库文件分别连接链接器,所述的链接器的输出连接烧录器。
优选地,所述的第三方库文件包括BSP、OS。
一种采用所述的模块化嵌入式软件交叉编译烧录装置的方法,该方法包括以下步骤:
步骤1、用户自定义编译器路径,烧录软件路径,应用软件模块盘符位置和期望生成的文件名;
步骤2、加载通用makefile文件集,并结合具体应用场景,选择加入模块功能包;
步骤3、用户自定义编译选项,作为自定义包加入装置使用;
步骤4、烧录装置遍历应用设置的软件模块路径,根据模块后缀名,筛选出支持的代码语言类型;
步骤5、根据编译选项提取对应通道的软件代码,两个通道分别使用预设的编译器对代码进行编译,生成代码相对应的二进制文件,并加入使用的编译器前缀进行区分;
步骤6、同时生成代码的依赖关系文件,便于重编译时只处理改动的代码部分;
步骤7、链接同一个通道下所有二进制文件,自动加载预设的操作系统库和BSP包的第三方库文件生成elf文件,同时转为可执行文件格式;
步骤8、提供预设的烧录命令,连接上烧录器后,输入烧录命令等待板卡烧录完成。
与现有技术相比,本发明具有以下优点:
1、简化了基于IDE搭建交叉编译开发环境配置的工作;
2、基于统一文件生成模式,适配不同的上层应用;
3、可自由搭配不同的操作系统和BSP组件,应对不同安全计算机平台硬件板卡;
4、自动生成依赖关系符号表,减少了编译时间。
附图说明
图1为本发明的装置结构示意图。
图2为本发明的装置连接原理示意图。
图3为本发明的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明的原理:模块化嵌入式软件交叉编译烧录装置的核心是提供一个通用的makefile文件框架。并提供不同应用场景下的若干文件集,用来适配不同的上层应用软件和底层BSP包及操作系统。基于统一的对象生成模式,最终输出目标板卡运行的可执行文件,并且提供烧录指令。
如图1和图2所示,一种模块化嵌入式软件交叉编译烧录装置,用于在Windows环境下适配不同的上层应用软件,通过相异编译器生成目标模块两个通道的可执行文件,该装置包括筛选器、C编译器、汇编器和烧录器,所述的筛选器一端连接应用软件模块,另一端分别连接C编译器和汇编器,所述的C编译器、汇编器和第三方库文件(包括BSP、OS)分别连接链接器,所述的链接器的输出连接烧录器。
本发明模块化嵌入式软件交叉编译烧录方法,该方法包括以下步骤:
步骤1、用户自定义编译器路径、烧录软件路径、应用软件模块盘符位置和期望生成的文件名的配置工作;
步骤2、加载通用makefile文件集,并结合具体应用场景,选择加入模块功能包;
步骤3、用户自定义编译选项,作为自定义包加入装置使用;
步骤4、本装置遍历应用设置的软件模块路径,根据模块后缀名,筛选出支持的代码语言类型;
步骤5、根据编译选项提取对应通道的软件代码,两个通道分别使用预设的编译器对代码进行编译,生成代码相对应的二进制文件,并加入使用的编译器前缀进行区分;
步骤6、同时生成代码的依赖关系文件,便于重编译时只处理改动的代码部分;
步骤7、链接同一个通道下所有二进制文件,自动加载预设的操作系统库和BSP包的第三方库文件生成elf文件,同时转为S19可执行文件格式;
步骤8、提供预设的烧录命令,连接上烧录器后,输入烧录命令等待板卡烧录完成。
如图3所示,具体的编译烧录流程包括以下步骤:
步骤1、装置启动时加载用户配置,执行代码筛选工作;
步骤2、装置分别调用C编译器和汇编器对代码进行词法分析和语法分析;
步骤3、把通过词法分析和语法分析的代码转化为二进制目标代码;
步骤4、调用链接器将编译完成的目标对象与库文件结合,进行依赖关系解析;
步骤5、完成依赖关系分析后,通过链接文件将所有对象结合成可执行文件;
步骤6、如果编译过程中或者是链接过程中发现错误,装置报告错误的性质和错误的发生的地点,并记录日志后退出。
步骤7、如果编译及链接过程都正常,支持调用预设的烧录工具,将对应通道镜像烧录至目标板卡中运行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (3)
1.一种模块化嵌入式软件交叉编译烧录装置,其特征在于,用于在Windows环境下适配不同的上层应用软件,通过相异编译器生成目标模块两个通道的可执行文件;
该装置提供一个通用的makefile文件框架;
该装置提供不同应用场景下的若干文件集,用来适配不同的上层应用软件和底层BSP包及操作系统;
该装置基于统一的对象生成模式,最终输出目标板卡运行的可执行文件,并且提供烧录指令;
所述的装置与第三方库文件连接,所述的装置包括筛选器、C编译器、汇编器、链接器和烧录器,所述的筛选器一端连接应用软件模块,另一端分别连接C编译器和汇编器,所述的C编译器、汇编器和第三方库文件分别连接链接器,所述的链接器的输出连接烧录器。
2.根据权利要求1所述的一种模块化嵌入式软件交叉编译烧录装置,其特征在于,所述的第三方库文件包括BSP、OS。
3.一种采用权利要求2所述的模块化嵌入式软件交叉编译烧录装置的方法,其特征在于,该方法包括以下步骤:
步骤1、用户自定义编译器路径,烧录软件路径,应用软件模块盘符位置和期望生成的文件名;
步骤2、加载通用makefile文件集,并结合具体应用场景,选择加入模块功能包;
步骤3、用户自定义编译选项,作为自定义包加入装置使用;
步骤4、烧录装置遍历应用设置的软件模块路径,根据模块后缀名,筛选出支持的代码语言类型;
步骤5、根据编译选项提取对应通道的软件代码,两个通道分别使用预设的编译器对代码进行编译,生成代码相对应的二进制文件,并加入使用的编译器前缀进行区分;
步骤6、同时生成代码的依赖关系文件,便于重编译时只处理改动的代码部分;
步骤7、链接同一个通道下所有二进制文件,自动加载预设的操作系统库和BSP包的第三方库文件生成elf文件,同时转为可执行文件格式;
步骤8、提供预设的烧录命令,连接上烧录器后,输入烧录命令等待板卡烧录完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911422694.7A CN111221534B (zh) | 2019-12-31 | 2019-12-31 | 一种模块化嵌入式软件交叉编译烧录装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911422694.7A CN111221534B (zh) | 2019-12-31 | 2019-12-31 | 一种模块化嵌入式软件交叉编译烧录装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221534A CN111221534A (zh) | 2020-06-02 |
CN111221534B true CN111221534B (zh) | 2022-08-30 |
Family
ID=70811453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911422694.7A Active CN111221534B (zh) | 2019-12-31 | 2019-12-31 | 一种模块化嵌入式软件交叉编译烧录装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221534B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689684A (en) * | 1995-06-07 | 1997-11-18 | Motorola, Inc. | Method and apparatus for automatically reconfiguring a host debugger based on a target MCU identity |
TW200725410A (en) * | 2005-12-27 | 2007-07-01 | Nat Univ Chung Cheng | Universal BSP tool applied to embedded system to assist porting and application method thereof |
CN101697135A (zh) * | 2009-10-28 | 2010-04-21 | 北京东方网力科技有限公司 | 一种编译程序的方法及装置 |
CN103049269A (zh) * | 2012-12-25 | 2013-04-17 | 卡斯柯信号有限公司 | 一种基于双链的相异性冗余编码方法 |
CN105760191A (zh) * | 2016-02-02 | 2016-07-13 | 西安诺瓦电子科技有限公司 | 嵌入式系统设备程序烧写量产方法 |
CN106303707A (zh) * | 2015-05-28 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种版本烧录方法、系统及终端 |
-
2019
- 2019-12-31 CN CN201911422694.7A patent/CN111221534B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689684A (en) * | 1995-06-07 | 1997-11-18 | Motorola, Inc. | Method and apparatus for automatically reconfiguring a host debugger based on a target MCU identity |
TW200725410A (en) * | 2005-12-27 | 2007-07-01 | Nat Univ Chung Cheng | Universal BSP tool applied to embedded system to assist porting and application method thereof |
CN101697135A (zh) * | 2009-10-28 | 2010-04-21 | 北京东方网力科技有限公司 | 一种编译程序的方法及装置 |
CN103049269A (zh) * | 2012-12-25 | 2013-04-17 | 卡斯柯信号有限公司 | 一种基于双链的相异性冗余编码方法 |
CN106303707A (zh) * | 2015-05-28 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种版本烧录方法、系统及终端 |
CN105760191A (zh) * | 2016-02-02 | 2016-07-13 | 西安诺瓦电子科技有限公司 | 嵌入式系统设备程序烧写量产方法 |
Non-Patent Citations (3)
Title |
---|
A compiler infrastructure for embedded heterogeneous MPSoCs;Weihua Sheng et al;《Parallel Computing》;20140228;第40卷(第2期);第51-68页 * |
基于嵌入式linux系统交叉编译的实现;沈健;《赤子(上中旬)》;20141215(第24期);第242页 * |
嵌入式软件集成开发环境关键技术研究;傅秀涛等;《微计算机信息》;20081115(第32期);第24-26页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111221534A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101311903B (zh) | 对基于组件的软件系统中的组件进行重用的方法和装置 | |
KR20180122019A (ko) | 실시간 데이터플로우 프로그래밍 언어를 위한 도구 및 방법 | |
Iwamoto et al. | Refactoring aspect-oriented programs | |
US7823144B2 (en) | Computer program code comparison using lexemes | |
CN111176629A (zh) | 一种应用开发的方法和装置 | |
CN104572238A (zh) | 一种高效的生成可执行软件包的方法及系统 | |
CN105094939B (zh) | 一种基于Makefile自动编译技术实现的软件源文件静态分析方法 | |
CN108228173A (zh) | 一种可视化的数据接口开发系统和方法 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN111813393A (zh) | 一种应用程序开发方法及装置 | |
CN111061489B (zh) | 一种多平台编译检测方法、装置、设备及介质 | |
CN101458633A (zh) | 通过脚本程序访问宿主程序的方法及其系统和装置 | |
CN111221534B (zh) | 一种模块化嵌入式软件交叉编译烧录装置及方法 | |
US10891113B2 (en) | Source code rewriting during recording to provide both direct feedback and optimal code | |
Skotiniotis et al. | Cona: aspects for contracts and contracts for aspects | |
US20100306734A1 (en) | Method and apparatus for multi-language software development | |
CN110442520B (zh) | 一种基于plc编程语言的交叉调试系统及方法 | |
JP2003006002A (ja) | 障害解析支援方法および装置 | |
JP2014106770A (ja) | 型チェック装置、型チェック方法および型チェックプログラム | |
Ihirwe et al. | A domain-specific modeling and analysis environment for complex IoT applications | |
US6948159B2 (en) | Automatic compilation of electronic telecommunications system message generation code | |
Justus et al. | Mo| E–a communication service between Modelica compilers and text editors | |
CN110737468A (zh) | 一种可执行程序的跨平台实现方法 | |
CN111352637B (zh) | 部署机器学习系统的方法、装置及设备 | |
KR100834759B1 (ko) | 목적 파일을 이용한 컴포넌트 구현 장치 및 방법 |
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 |