嵌入式编程基础.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《嵌入式编程基础.ppt》由会员分享,可在线阅读,更多相关《嵌入式编程基础.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式编程基础linux 平台下的应用程序类型nlinux 下的应用程序主要有两种特殊的文件来代表:可执行文件和脚本程序。n可执行文件是能够被计算机直接执行的程序,相当于win平台下exe文件。n脚本程序则是一组指令,这些指令将由另外一个程序(一般来说是shell 解释器)来执行,相当于dos下的bat文件。Shell如何解释执行命令n内置命令-直接执行n实例程序(用户给出路径的)-按照用户给出的路径执行n实例程序(用户未给出路径)-按照PATH变量给出的路径执行n将被搜索的那些子目录都被保存到一个名字为PATH的shell变量里面,和dos下的情况差不多。PATH 是由系统管理员预先配置好了
2、的,通常包括/bin,/usr/bin,/usr/local/bin,你可以使用echo$PATH来显示。如果你是使用的root登陆系统,则还会多包括/sbin,/usr/sbin目录。应用程序开发流程n编写应用程序(vi编辑器)n编译应用程序(编译器)n调试运行应用程序(调试器)n执行(直接输入程序命令运行)应用程序开发流程(实例)应用程序开发流程(实例)n为了快速获得对linux 平台下应用程序设计的体验,我们首先编写经典的hello world程序。下面的代码来自 c programming language第一章#include main()printf(hello,worldn);利
3、用vi进行编辑n首先,进入linux的控制台界面。然后,在某个目录建立一个空的c程序文件,比如利用touch/home/zhaohui/linuxApp/hello.c命令 然后cd到当前目录,调用vi编辑器对这个空文件进行编辑,输入这个程序的源代码,(利用vihello.c命令,进入vi编辑器,然后进入vi 的编辑状态,然后输入程序,然后进入vi的命令状态,进行源程序的保存和vi 的退出,回到shell 提示符。)n-hello.c-n#include nint main()nnprintf(Hello,Linux programmingnworld!n);nreturn 0;nn-gcc
4、编译和程序运行n然后在当前目录输入编译这个程序的命令,在程序没有错误的情况下,会在当前目录得到一个可执行文件hello。n程序的运行如图所示。n注意:如果你只是输入 gcc hello.c则生成的可执行文件的名字是a.out过程总结n这个命令会依次调用gcc的预编译器(cpp),汇编器(生成.s文件),编译器(生成.o文件)和链接器程序(ld)。n$gcc-E hello.c-o hello.cppn$gcc-x cpp-output-c hello.cpp-o hello.on$gcc hello.o-o hellon提示:命令$gcc O2-S hello.c 可以得到.s汇编文件。如果打
5、算学习某个c语言程序所对应的汇编代码。可以参考csapp的第三章。诸如变量、数组、指针、控制流、子程序等。n当然也可以使用objdump d hello来查看汇编代码。诸如objdump等这些命令称为binutils,是非常强大的代码分析工具。比如addr2line,ar,as,gprof,ld,nm,objcopy,objdump,ranlib,size,strings,strip等。具体可以参考其man命令手册。文件I/O编程n文件描述符n文件I/O相关操作函数nopen函数nclose函数nlseek函数nread函数nwrite函数ndup和dup2函数nfcntl函数文件描述符n文件
6、描述符定义 linux中每打开一个文件都有一个文件描述符与之对应。该描述符是一个非负整数。取值0对应标准输入,表示键盘1对应标准输出,一般屏幕2表示出错输出,一般到屏幕文件I/O操作函数-open、close函数nOpen函数可以打开一个文件,也可以创建并打开文件;调用方式:#include#include#include Int open(const char pathname,int flag)调用成功返回文件描述符,失败返回-1nClose函数-关闭一个文件,释放该文件上的记录锁调用方法:#includeInt close(int filedes)返回成功0,出错-1文件I/O操作函数-
7、read函数nRead函数用来读取打开文件的数据n用法:#include ssize_t read(int filedes,void*buf,size_t nbytes)n函数作用:filedes所代表的文件的当前位移量处读取nbytes个字节的数据到buf中,size_t是一个无符号整数,返回类型ssize_t是带符号整数。返回值:成功,返回读到的字节数,到文件结尾返回0;错返回-1文件I/O读写-程序示例nLED灯-GPIO实验程序文件I/O操作函数-dup函数n复制一个现存的文件描述符用法:#include int dup(int filedes);int dup2(int filede
8、s,int filedes2);返回值:成功,返回新的文件描述符;失败,返回-1文件I/O操作函数-lseeknLseek函数-每个打开的文件都关联着一个文件位移量,用来标识读或写文件时的起始位置,lseek重新设置文件位移量。进程控制开发n进程控制开发n进程的几个基本概念n进程相关几个函数n进程间通信n网络编程进程控制开发-基本概念 n进程几个基本概念n进程-程序的执行 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。n父子进程 由于li
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 编程 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内