欢迎来到天天文库
浏览记录
ID:51498049
大小:671.00 KB
页数:39页
时间:2020-03-25
《哈工大嵌入式操作系统课件—7 Linux开发环境2-gcc gdb.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Agenda嵌入式软件开发环境概述GCCGDBASimpleExampleMAKE嵌入式软件开发模型嵌入式系统的一个特点在于其开发的特殊性与困难性。开发机器!=执行机器开发环境!=执行环境专门的开发环境与开发工具-VxWorks系统配套的Tornado集成开发工具-Linux系统配套的gcc,gdb等开发工具嵌入式软件开发环境嵌入式软件开发环境宿主机开发机器(编辑器、编译器、调试器、….)负责程序的编译和部分调试工作。目标机程序运行的机器,负责程序的运行和部分调试工作。交叉编译是指宿主机和目标机是不同的系统嵌入式
2、软件开发环境Agenda嵌入式软件开发环境概述GCCGDBASimpleExampleMAKEGCCLinux下的编译器–GNU项目的C编译器四个步骤-预处理preprocessing-编译compilation-汇编assembly-连接linkingGCCGCC-gProduceDebugInformation-WallWarningindetail-EPreprocessonly;donotcompile,assembleorlink-SCompileonly;donotassembleorlink-cCo
3、mpileandassemble.Butdonotlink-oPlacetheoutputintoGCCGCC的组件名称功能描述cppC预处理器g++C++编译器gccC编译器gccbug创建bug报告的shell脚本gcov覆盖测试工具,分析如何最好的优化程序libgccgcc的运行库libstdc++标准C++库,包含许多常用的函数libsupc++提供支持C++语音的库函数Agenda嵌入式软件开发环境概述GCCGDBASimpleExampleMAKEGDBLinux下软件调试工具
4、远端调试-通过串口或网口调试目标设备-target命令:指定调试目标和建立连接的GDB命令GDBGDBGDB常用命令Agenda嵌入式软件开发环境概述GCCGDBASimpleExampleMAKEASimpleExample–Hello.cASimpleExample-CompilationASimpleExample-DebuggingAgenda嵌入式软件开发环境概述GCCGDBASimpleExampleMAKEMakeThemakeutilityautomaticallydetermineswhichp
5、iecesofalargeprogramneedtoberecompiled,andissuescommandstorecompilethem.-《AProgramforDirectingRecompilationGNU》Make是一个自动化的工具。根据依赖关系自动决定项目的那些部分需要重新编译。基本原理:如果某个源程序文件被修改,那么依赖这个源程序文件的所有目标文件,都需要重新编译。依赖关系MakefileMakefile文件控制make程序的执行一个项目拥有一个或多个makefile文件每个makefile文
6、件由多条rules构成每条rule描述了一个依赖关系,并有一系列的行为MakefileRuleRule的格式为:target…:prerequisites…command……Target依赖prerequisites的目标Prerequisites被依赖的源程序,例如c文件或h文件Command需要执行的命令当prerequisites任何一个文件的时戳新于target的时戳时,就执行command。ASimpleMakefileASimpleMakefile编译edit项目$make删除edit项目中的目标文件
7、$makecleanclean是一个伪目标clean没有任何prerequisites,只有显式的makeclean才能执行clean目标的commandALittleMorePracticalMakefileMoreAbstractMoreAbstractSUFFIXESThe‘SUFFIXES’thingtells‘make’thatfilesthatarepossibletargets,fallunderthreecategories:filesthatendin‘.c’,filesthatendin‘.o
8、’andfilesthatendinnothing..c.o$(CC)$(CFLAG)–c$
此文档下载收益归作者所有