第1讲 嵌入式系统编程基础ppt课件.ppt

第1讲 嵌入式系统编程基础ppt课件.ppt

ID:59020063

大小:203.00 KB

页数:40页

时间:2020-09-26

第1讲 嵌入式系统编程基础ppt课件.ppt_第1页
第1讲 嵌入式系统编程基础ppt课件.ppt_第2页
第1讲 嵌入式系统编程基础ppt课件.ppt_第3页
第1讲 嵌入式系统编程基础ppt课件.ppt_第4页
第1讲 嵌入式系统编程基础ppt课件.ppt_第5页
资源描述:

《第1讲 嵌入式系统编程基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式系统基础——嵌入式系统编程基础之工具链本周主要内容linux开发环境的搭建编译器gcc的使用(重点)Makefile的编写(难点)Linux开环境的搭建“傻瓜”方法:利用别人已经搭建好的环境(1)安装vmware10.0在任课老师“/课件区/资料/VMware-workstation-full-10.0.2-1744117.1398244508[NA_RicardoM.Lu].exe”(2)获取已经搭建好的开发环境的linux镜像在任课老师“/课件区/资料/linux_mint17.rar”,解压;(3)双击第2步中解压出来的linux_mint17.v

2、mx,即可启动linux(密码:123)gcc编译器GNUCC(简称为gcc)是GNU项目中符合ANSIC标准的编译系统,能够编译用C、C++和ObjectC等语言编写的程序。gcc不仅功能强大,而且可以编译如C、C++、ObjectC、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。gcc编译过程gcc所支持后缀名解释gcc---预处理阶段在该阶段,对包含的头文件(#include)和宏定义(#def

3、ine、#ifdef等)进行处理。可以使用gcc的选项“-E”让gcc在预处理结束后停止编译过程。[root@localhostgcc]#gcc–Ehello.c–ohello.i/*hello.i*/……typedefint(*__gconv_trans_fct)(struct__gconv_step*,struct__gconv_step_data*,void*,__constunsignedchar*,__constunsignedchar**,__constunsignedchar*,unsignedchar**,size_t*);……#2"hello

4、.c"2intmain(){printf("Hello!Thisisourembeddedworld!");return0;}gcc---编译阶段(1)接下来进行的是编译阶段,在这个阶段中,gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。[root@localhostgcc]#gcc–Shello.i–ohello.sgcc---编译阶段(2)/*hello.s*/.file"hello.c".section

5、.rodata.align4.LC0:.string"Hello!Thisisourembeddedworld!".text.globlmain.typemain,@functionmain:pushl%ebpmovl%esp,%ebpsubl$8,%espandl$-16,%espmovl$0,%eaxaddl$15,%eaxaddl$15,%eaxshrl$4,%eaxsall$4,%eaxsubl%eax,%espsubl$12,%esppushl$.LC0callputsaddl$16,%espmovl$0,%eaxleaveret.sizemain,

6、.-main.ident"GCC:(GNU)4.0.0200X0Y19(RedHat4.0.0-8)".section.note.GNU-stack,"",@progbitsgcc——汇编阶段该阶段把编译阶段生成的目标“.s”文件生成目标文件,其命令格式如下:gcc–c-ohello.ohello.s,其等同于gcc–chello.s10gcc——汇编阶段成功编译后,就进入了链接阶段,为什么要链接呢?在这个程序中并没有定义“printf”的函数实现,在预处理的头文件“stdio.h”中也只有该函数的声明,而没有该该函数的实现,系统已将这些函数实现放入了名为li

7、bc.so.6的库文件中,在没有特别指定时,gcc会到系统默认的路径“/usr/lib”下查找,也就是链接到libc.so.6库函数中去,这样就能够调用函数“printf”了,而这也是链接的作用,完成了链接之后,gcc就可以生成可执行文件,其命令如下:gcchello.o–ohello.o11gcc---常用选项[root@localhostgcc]gcchello1.c–I/root/workplace/gcc/-ohello1gcc---库选项函数库分为静态库和动态库两种,静态库是一系列的目标文件(.o文件)的归档文件(文件名格式为libname.a),如

8、果在编译某个程序时链接静态库,则链接器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。