一种嵌入式系统集成开发环境的实现方法

上传人:文*** 文档编号:61858455 上传时间:2022-03-13 格式:DOC 页数:5 大小:272KB
收藏 版权申诉 举报 下载
一种嵌入式系统集成开发环境的实现方法_第1页
第1页 / 共5页
一种嵌入式系统集成开发环境的实现方法_第2页
第2页 / 共5页
一种嵌入式系统集成开发环境的实现方法_第3页
第3页 / 共5页
资源描述:

《一种嵌入式系统集成开发环境的实现方法》由会员分享,可在线阅读,更多相关《一种嵌入式系统集成开发环境的实现方法(5页珍藏版)》请在装配图网上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 一种嵌入式系统集成开发环境的实现方法 何斌 (南大傲拓科技江苏有限公司 江苏南京) 摘要:为了适应嵌入式系统发展,缩短基嵌入式系统开发工具研发周期,开发一种低成本的嵌入式软件开发工具。 本文设计了一种基于ARM7及Cortex-M3系列处理器的集成开发软件。该软件基于gcc内核模式,运行在window系统环境,实现项目管理、代码编辑、程序编译、编译信息输出、程序程序下载等功能。该软件极大地方便了用户的使用,为嵌入式系统的深入发展提供了有利的支撑平台。关键词:嵌入式系统;编译器移植;gcc;IDE;Abstract: For embedded sy

2、stem development and cutting down the research time of the embedded software IDE, the paper develops low cost embedded system IDE, which is based on ARM7 and Cortex-M3 series processor. The softwareisbasedongcckernel, run on thewindow systemenvironment,has been achieved project management,code editi

3、ng,compling,compilinginformation output and programdownload. The softwaregreatly facilitates theuseofthe user,provide favorablesupport platformfor in-depthdevelopmentofembedded systems.Key words: embedded system; complier porting; gcc; IDE;1 引言随着嵌入式系统的发展,在向用户提供以为微处理器为核心的软硬件开发平台时,需要开发出相应的编译工具链、可执行程序串

4、口下载工具,由于编译器的原理复杂,开发周期长,成本高,开发全新编译器需要付出高昂的代价,另一方面编译生成的可执行程序,还需要用户通过相应的工具手动配置下载到嵌入式系统中,对用户使用带来了极大的不便。因此,嵌入式软件集成开发环境是不可或缺的开发工具。目前,我国公司用的绝大多数集成开发环境都来自国外,不仅为企业带来了一定的经济负担,增加成本,同时也为嵌入式系统产品的定制化开发带来了极大的不便。因此,开发具有自主知识产权的嵌入式集成开发软件对于提升企业核心竞争力就变得非常重要。本文针对市场上通用的ARM7及Cortex-M3系列处理器,开发了一套运行在windows平台下的基于GCC内核的嵌入式系统

5、集成开发软件,实现了对项目管理、代码编辑、C语言代码编译、编译信息输出、程序下载等功能。2 总体设计该系统基于VC6.0工具开发,主要组成部分包括:项目管理、文件管理、代码编辑、程序编译、下载操作、界面显示等,实现了从工程建立,代码文件编辑,代码编译、编译信息输出以及程序下载等一系列功能,图1为模块总体架构设计。该系统主界面基于MFC多文档架构,可视化操作,主要包括菜单栏、工具栏、项目栏、信息栏,以及文档编辑显示区域。文档编辑功能基于CRichEditView类开发,可以根据C语言关键字、变量、函数不同显示不同的颜色,并识别注释符号,可以屏蔽相应的代码,并用绿色标记, 极大提高代码的可读性。提

6、供了操作菜单用来执行编译,下载功能。通过上述功能,将代码编辑器、编译器、编译信息查看器和图形用户界面工具有机地统一到一起。其中,核心功能包括:代码编译和串口下载。 图1 总体架构设计框图3 基于gcc内核的编译器开发原理 3.1 gcc编译器要把基于Linux平台的GCC工具链集成到基于windows的嵌入式IDE中,首先要解决从Linux到windows的移植问题。目前,可以通过Sourcery G+ Lite 实现gcc编译器在windows平台下的移植操作。Sourcery G+是一个基于GNU工具链的完整的软件开发环境。Sourcery G+包括GNU C/C+ 编译器、GNU汇编程序

7、和连接器、运行时间库、源码级和汇编级调试器、支持微处理器调试接口(Microprocessor Debug Interface,MDI)与 MIPS 系统 Navigator探针和 MIPSsim仿真器的连接,另外还有可选的Eclipse-based IDE。Sourcery G+可以在Windows和Linux主机上运行,可用于采用Lite、个人和专业版的bare-iron和GNU/Linux的开发。 3.2 gcc编译器windows平台下移植工作原理可执行程序从源码到可执行的二进制程序主要步骤如下:1) 预编译(Pre-Processing):完成对预编译代码的处理; 2) 编译(Com

8、piling):将源代码编译成汇编代码;3) 汇编(Assembling):将汇编代码会变成目标文件; 4) 链接(Linking):将目标代码和所需要库链成一个完整的应用程序。本文通过IDE环境实现gcc的上述各个功能的自动链接执行。首先,下载安装Sourcery G+ Lite for ARM装程序,获取相应的编译器、连接器、以及运行库文件等文件信息。然后,将这些文件打包到开发环境安装包中,通过IDE应用程序 NaBuild.exe调用相应的gcc 命令,执行当前程序的编译,以及编译信息的输出等工作。Gcc工具链的各个执行文件都是基于控制台的执行程序,而IDE是图形用户界面(GUI)程序,

9、通过VC6.0编程软件编程实现将他们执行的各种输出信息收集并放到IDE的输出窗口中显示。实现IDE的输出窗口中编译信息的方法如下:1) 用户点击菜单-编译后,建立一个后台线程OperateBuildThread;2) 后台线程创建一个匿名管道,发起一个命令子进程以执行编译整个工程的make命令,并将该命令子进程的标准输出和错误输出均定向到由父进程创建的匿名管道的写端,IDE后台线程通过该匿名管道读取编译信息;3) 后台线程再将所有通过管道获取的编译信息,传送给界面线程显示输出。伪代码信息表示如下:/创建匿名管道,用来获取编译信息if (!CreatePipe(&hRead,&hWrite,&s

10、a,0) MessageBox( Error On CreatePipe() ); return “create error”; /建立子进程用来,调用执行相应的gcc程序,发送执行命令if (!CreateProcess(NULL, strCommand.GetBuffer(0) ,NULL,NULL,TRUE,NULL,NULL,makefilefileaddr,&si,&pi) m_Edit1=Error On CreateProcess() ;MessageBox( Error on CreateProcess() ); return m_Edit1; CloseHandle(hWri

11、te); /关闭写句柄/循环从匿名管道读取编译信息,如果出错直接退出循环 while (true) if (ReadFile(hRead,buffer,1023,&bytesRead,NULL) = NULL) break; strBuf = buffer;if (strBuf.Find(reserved) != -1)strBuf = strBuf.Mid(strBuf.Find(reserved) +8);strcpy(buffer, strBuf.GetBuffer(0);strBuf.ReleaseBuffer();m_Edit1 += buffer;Sleep(200); retur

12、n m_Edit1;4 hex程序下载该系统通过基于FlashMagic所提供的Command Line方法,将.hex程序通过串口线下载到嵌入式系统中。首先将FlashMagic库文件以及Command Line命令文件打包到集成环境目录下,通过IDE应用程序 NaBuile.exe调用相应的命令信息,实现程序的烧写功能。例如:FM DEVICE(LPC1758,11.0592) COM(3,19200) HARDWARE(BOOTEXEC,25,250) ERASE(DEVICE, PROTECTISP) HEXFILE(TEST.HEX, NOCHECKSUMS, NOFILL, NOP

13、ROTECTISP) VERIFY(TEST.HEX, NOCHECKSUMS),表示以擦除程序的方式将hex程序TEST.HEX执行下载。通过VC6.0编程实现了hex程序下载功能,主要方法步骤如下(程序流程图如图4所示):1) 用户点击下载按钮会弹出下载配置界面,用来配置波特率、串口号、擦除模式等,如图2所示;2) 启动后台线程实现具体下载功能;3) 获取界面配置信息,根据获取的配置信息组包下载命令行参数;4) 创建匿名管道,用来截获下载时返回的信息以及错误记录;5) 通过函数CreateProcess()创建子进程,调用FM命令行程序,并传递步骤3所组包的命令行参数,实现HEX文件的下载

14、;6) 通过匿名管道读取下载信息,并传送到界面线程显示,如图3所示。 图 2 下载配置界面 图 3 下载信息显示图4 下载功能程序流程图 5 总结本文介绍了一种基于gcc内核,在windows平台运行的嵌入式系统集成开发软件设计方法,该方法简单实用,成本低,通用性强。该系统广泛应用在电力、煤炭、交通等多个行业。经实践证明,该方法极大地方便了嵌入式系统的定制化开发,满足了不同层次的需求。本文不足之处就是缺乏调试功能,需要对gcc调试器做进一步研究。6 参考文献1 Stallman R M.GNU complier collection internals EB/OL.2 Reis G A,Chang J,Vachharajani N,et al.SWIFT:Software Implemented Fault ToleranceC. . 20053任伟,张毅,聂捷楠.基于嵌入式系统开发平台的设计与实现J.微计算机信息.2006(29)4 冯钢, 郑扣根. 基于GCC的交叉编译器研究与开发.计算机工程与设计,2004(11).5 / 5

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!