嵌入式软件集成开发环境的设计与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
随着嵌入式系统硬件技术与软件技术的不断发展,以信息家电为代表的各种嵌入式产品正在广泛而深入地改变着人们的生活。为了支持用户对嵌入式设备进行快速、高效的软件开发,同时尽可能地降低软件开发成本,迫切需要一种集各种嵌入式开发工具为一体的较为通用的嵌入式软件开发环境。
     本文设计了嵌入式软件集成开发环境PLAEmbeddedIDE的层次结构,介绍了其中各个模块的功能;在深入分析GNU GCC编译器后端重定向原理的基础上,定义了一种目标机结构信息描述表,设计了目标描述文件的自动生成工具,实现了目标描述文件的自动生成,并给出了通用交叉编译接口,对交叉编译器做了相应封装;在深入分析GDB源码的基础上,给出了GDB stub在内核层和应用层的通用设计流程,提出了移植GDB的一般方法,并设计了通用调试接口,对GDB做了相应封装。在此基础上,实现了PLAEmbeddedIDE v1.0嵌入式软件集成开发环境原型系统。
     论文还结合基于M·Core硬件平台和uc/os-Ⅱ环境的应用实例,给出了PLAEmbeddedIDE开发嵌入式应用程序的一般步骤,并通过实际调试、运行目标代码,验证了交叉编译器和交叉调试器等工具的正确性。
Along with the ceaseless development of technology of hardware & software in embedded system, people are influence of all kinds of embedded appliances. In order to quickly and efficiently develop embedded products with the lowest development cost, a universal IDE(Integrated Development Environment) for embedded software development is essential.
     This dissertation introduces the hiberarchy of the PLAEmbeddedIDE and the function in each module at first, then analyses the back end of GNU GCC, abstracts the table structure from the target description files, achieves the automatically production tool for target description files, and designs the common compiler interface for IDE. Next, this dissertation elaborately analyses the source code of GNU GDB, on this basis puts forward an universal model of remote debug, then comes up with the design flow chart of GDB stub in kernel layer and application layer separately, and gives the general plan to transplant GDB to a new target and designs the debugger interface for PLAEmbeddedIDE.
     At last, the dissertation takes a web server program for example, explains that how to develop an application by the PLAEmbeddedIDE, and then, via editing, compiling, debugging, and running the object code, verifies the validity of the PLAEmbeddedIDE.
引文
[1]姜兆义.星载嵌入式软件集成开发环境设计与关键技术研究[D]硕士.长沙;国防科学技术大学,2004.
    [2]谢其庭,徐炜,孟小锁.Tornado API分析及第三方工具链集成技术.微机发展,2005,15(11);67-69.
    [3]冯钢.基于GCC的嵌入式系统编译器研究与开发[D]硕士.杭州;浙江大学,2004.
    [4]朱少波.基于GCC开发C编译器的研究与实践[D]硕士.杭州;浙江大学,2003.
    [5]苏斐琦.交叉编译系统的研究与实践[D]硕士.杭州;浙江大学,2003.
    [6]任小西.嵌入式系统编译器的快速生成方法研究[D]硕士.长沙;湖南大学,2004.
    [7]冯钢,郑扣根.基于GCC的交叉编译器研究与开发[J].计算机工程与设计,2004,25(11);1180-1183.
    [8]倪蓥,蔡杰,李莹.基于GCC的嵌入式系统开发环境构造[J].计算机工程与应用,2004,40(32);124-127.
    [9]王晓栋,郑扣根.基于嵌入式系统的交叉汇编器的研究与实现[J].工业控制计算机,2004,17(3);34-36.
    [10]谢丹夏,韩果凌,程旭.可重定义目标编译器的原理及设计[J].计算机工程与应用,2001,37(7);61-63.
    [11]王民华,张素琴,田金兰.基于类库的可重定向编译器后端设计与实现[J].。算机工程与应用,2003,39(9);115-118.
    [12]郭兵,熊光泽,陈宇.嵌入式应用软件开发环境的构造[J].计算机应用,2000,20(7);7-9.
    [13]王庆江.GDB内部结构分析与改进[D]硕士.西安;西安交通大学,2002.
    [14]曲蕾.基于GDB的嵌入式系统集成开发环境的研制[D]硕士.太原;太原理工大学,2004.
    [15]李红卫.嵌入式Linux远程调试工具gdbstub的剖析与改进[D]硕士.哈尔滨;哈尔滨工业大学,2004.
    [16]张彦明.嵌入式操作系统远程调试器的研究与实现[D]硕士.西安;西北工业大学,2002.
    [17]刘岚.嵌入式软件开发环境中远程调试技术的研究及应用[D]硕士.西安;西北工业大学,2004.
    [18]任小西.嵌入式系统编译器的快速生成方法研究[D].长沙;湖南大学,2003.
    [19]吴疆,田金兰,张素琴.面向多目标机的交叉调试器的研究与设计[J].清华大学学报(自然科学版),2003,43(1);101-104.
    [20]刘璐,马跃.基于嵌入式操作系统的GDB远程调试[J/OL].中国科技论文在线,2006,http;//www.paper.edu.cn/downloadpaper.php?serial_number=200607-311.
    [21]于婷,龙翔,高小鹏.基于模拟器远程调试系统的研究与实现[J/OL].中国科技论文在线,2007,http;//www.paper.edu.cn/downloadpaper.php?serial_number=200702-23.
    [22]陈必泉,黄承慧.GDBSERVER原理分析及其应用[J].计算机工程与设计,2005,26(3);746-749.
    [23]黄红燕,史烈.GDBstub的剖析与改进[J].电子技术应用,2006,5;13-15.
    [24]兰利东,乔永强.GDB远程调试环境的设计与实现[J].单片机与嵌入式系统应用,2005,10;22-25.
    [25]郭胜超,吕强,杨季文,钱培德.GDB远程调试及其在嵌入式Linux系统中的应用[J].计算机工程与科学,2004,26(10);100-103.
    [26]彭进展,尹宝林,黄鑫.一种针对嵌入式系统的通用远程调试系统[J].计算机工程,2003,29(2);109-111.
    [27]李红卫,李翠萍,韩红宇.kgdb调试Linux内核的剖析与改进[J].微型机与应用,2004,23(10);7-10.
    [28]张栋岭,刘献科,邓晓艳,朱培彦,陈涵生.嵌入式应用的远程调试[J].计算机工程,2003,29(11);77-78.
    [29]曹杰,蒋泽军,王丽芳,张彦明.嵌入式远程调试器的设计与实现[J].计算机测量与控制,2005,13(7);731-733.
    [30]石怀东,杨子江,懂金祥.一种基于应用开发平台的内核调试环境[J].计算机应用研究,2005,22(1);155-157.
    [31]吴明琪,马潮.一种软硬结合的嵌入式系统远程调试方法[J].单片机与嵌入式系统应用,2005,7;15-19.
    [32]黄瑞芳,朱敏,张卫民.远程调试的设计与实现[J].计算机工程与应用,2001,27(1);125-128.
    [33]陈火旺,钱家骅,孙永强.程序设计语言编译原理[M].北京;国防工业出版社,1984.
    [34]Steven S.Muchinck著,赵克佳,沈志宇译.高级编译器设计与实现[M].北京;机械工业出版社,2005.
    [35]孙鑫,余安萍.VC++深入详解[M].北京;电子工业出版社,2006.
    [36]马鸣锦,蒋烈辉,杜威,郭惠芳.基于M·CORE微控制器的嵌入式系统[M].北京;国防工业出版社,2003.
    [37](美)Qing Li著,Caroline Yao助编,王安生译.嵌入式系统的实时概念[M].北京;北 京航空航天大学出版社,2004.
    [38](美)Jean J.Labrosse著,邵贝贝等译.μC/OS嵌入式实时操作系统[M].北京;北京航空航天大学出版社,2003.
    [39]冯骁斌.基于Eclipse移植的嵌入式系统开发平台的研究[D]硕士.杭州;浙江大学,2006.
    [40]方前.面向嵌入式系统的开发平台的研究[D]硕士.杭州;浙江大学,2005.
    [41]郭兵.嵌入式软件开放式集成开发平台体系结构研究[D]博士.西安;电子科技大学,2002
    [42]Nikil Dutt,Alex Nicolau,Hiroyuki Tomiyama,Ashok Halambi.New Direction in Compiler Technology for Embedded System[C].Design Automation Conference of the ASP-DAC,Japan,2001;409-414.
    [43]P.J.Hatcher,J.W.Tuller.Efficient Retargetable Complier Code Generation[C].International Conference on Computer Languages,USA,1988;25-30.
    [44]Soubhik Bhattacharya.Generation of GCC Backend from Sim-mML processor Description[D]Master.Kanpur;Indian Institute of Technology,2001.
    [45]Cristian S.Collberg.Automatic Derivation of Machine Descriptions[C].Proceedings of the 20th Australasian Computer Science Conference,Sydney.1997;125-128.
    [46]A.Fauth,J.Van Praet,M.Freericks.Describing Instruction Set Processors Using nML[C].European Design and Test Conference,Paris.1995;121-125.
    [47]Piyush Porwal.Exploring Aternative Machine Description for GCC[D]Master.Bombay;Indian Institute of Technology,2004.
    [48]Richard M.Stallman,GCC Developer Community.GNU Compiler Collection Internals[EB/OL].2005,http;//www.delorie.com/gnu/docs/gcc/gccint_toc.html#SEC_Contents.
    [49]Richard M.Stallman.Using and Porting GNU Compiler Collection[EB/OL].2003,http;//gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_toc.html.
    [50]GNU GDB Developer Community.Debugging with GDB-GDB-MI[EB/OL].2005,http;//sources.redhat.com/gdb/current/onlinedocs/gdb_25.html#SEC215.
    [51]GNU GDB Developer Community.KGDB-Linux Kernel Source Level Debugger[EB/OL].2006,http;//kgdb.linsyssoft.com.