杭电嵌入式.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
杭电嵌入式

杭电2015年1月份嵌入式的部分题型(考完1月后回忆的)和本人的不完整的复习资料 选择题 共同体和结构体占内存大小 进程、线程的关系 块设备、字符设备有哪些 软件的开发流程,开发环境 指出树的节点数 Tcp/ip分层模型 简答题 进程间通信方式有哪些?优缺点? 全局变量和局部变量的异同 一个程序在内存中的存储方式(堆,栈,程序段,代码段) 画出书上唯一的一副程序流程图(大概有等待,获取信息,返回信息……) 编程填空题 关于static的用法 全局变量和局部变量的理解 编程题 输入一个字符串,逆序后输出。如输入abc,输出cba。 Linux嵌入式 什么是块设备(硬盘)块设备是利用一块系统内存作为缓存区,当用户进程对设备进行读写请求时,驱动程序先查看缓存区的内容,如果缓存区的内容能够满足用户要求就返回相应的数据,否则就调用相应的请求函数来进行实际的I/O操作。 字符型设备是什么(键盘、串口、打印机)字符设备是以字节为单位的逐个进行I/O操作的设备,缓存可有可无,不支持随机访问。 进程间通信能否通过全局变量通信?不能,使用的内存空间是不共用的,不同的虚拟内存空间 ①管道。简单方便。半双工的通信方式,数据只能单向流动 ②信号通信(唯一异步):信号是异步的,信号的产生对进程而言是随机出现的。用于通知接受进程某个事件已经发生。 ③共享内存(最高效的进程间通信):共享内存允许两个或更多进程共享一给定的内存区域。它是针对其他进程间通信运行效率低而专门设计的。进程间的读写操作同步问题操作系统无法实现。 ④消息队列:一个消息的链表,消息可看作一个记录,具有特定的格式以及特定的优先级。克服了信号传递量少、管道只能承载无格式字节流以及缓冲区大小受限的缺点。 嵌入式软件怎么开发?开发环境是什么?交叉编译 嵌入式软件开发工作包括:代码编写、交叉编译与链接、交叉调试、测试 开发环境:嵌入式软件开发需要交叉开发环境,开发过程通常在宿主机上,运行环境是目标机 Volatile、static用法 volatile表明某个变量的值随时可能被外部改变,因此这些变量的存取不能缓存到寄存器,每次使用时需要重新读取。 static静态变量的类型说明符:属于静态存储方式,存储空间在编译完成后就分配,在程序运行的去不过程中不会撤销。 全局变量,局部变量内存分配 全局变量(外部变量):贯穿整个程序,作用域为源文件,可被源文件中的任何一个函数使用,在整个程序执行期间有效。(在某函数与定义全局变量不是同一个源文件,或是在定义全局变量之前,使用全局变量要声明,extern不能省,全局变量声明不能再赋初始值) 局部变量:是函数内部定义的变量,仅能被该变量的模块的内部语句所访问,对模块外部不可见。(进入模块时生成,退出模块时硝亡。) 进程、线程与程序的关系,共同点(进程是动态的,程序是静态的,不断切换) 进程、线程和程序的区别 程序是静态的,它是一些保存在存储介质上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程,它是程序执行和资源管理的最小单位。线程是进程中某个单一顺序的控制流,是程序执行运算的最小单元,是可以被操作系统独立调度的基本单位。线程作为进程的一个实体,自己不拥有进程所拥有的系统资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源 第一章 嵌入式软件的开发工具:编辑器vi,编译器GCC,调试器GDB,工程管理器make 嵌入式软件的开发流程 需求分析,系统设计,代码生成(代码编写, 交叉编译与链接:宿主机上编译/链接出目标机上可执行的程序代码, 交叉调试:调试器运行在宿主机上,而被调试的程序则运行在目标机上, 测试),固化 嵌入式vi基本模式 命令行模式、插入模式、底行模式 GCC编译流程,各流程代码表示P10 ①预处理阶段:gcc –E –o hello.i hello.c ②编译阶段:gcc –S –o hello.s hello.i生成汇编代码 ③汇编阶段:gcc –c hello.s –o hello.o生成二进制目标代码 ④链接阶段: gcc hello.o –o hello 可以生成可执行文件 一次性搞定:gcc hello.c –o hello 或 gcc hello.c ①要使用某个库函数,在源程序中必须声明该函数 ②使用不同的C函数库,需使用选项“-l”(注意这里是小写),该选项是用于指明具体使用的库文件 ③若同一目录下有库名相同的静态库和共享库GCC缺省链接的是共享库(动态链接库) 如果要链接静态库,则需要添加选项 –static ④共享库和静态库的区别P14 静态库的代码在编译时就已链接到开发人员开发的应用程序中,后缀.a 共享库(动态链接库)是在程

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档