- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式毕业实习报告教程
嵌入式系统
毕业实习报告
学 院: 电子与电气工程学院
专 业: 电子信息工程
班 级: 电子11201
学 号: 1203251024
姓 名: 徐贤畅
嵌入式系统开发与应用概述
在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征, 目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。
linux系统
linux系统主要是由用户空间和内核空间再加上外部的硬件平台构成,用户空间就是用户应用程序的运行空间,主要包括两方面的内容:用户应用程序和GNU?C?Library(glibc)。而内核空间有三方面的内容,一是系统调用接口,它作为用户空间和内核空间相互转移的一种方式,二是内核空间,三是体系相关内核代码,在linux内核代码中,可以看到arch目录下有许多子目录,其中每一个子目录代表一种硬件平台。
?????而为什么要把linux系统划分为用户空间和内核空间呢?主要是一旦用户空间和内核空间没有分开,那用户将拥有很大的权限去操控内核或用户应用程序的崩溃将会造成系统的崩溃,而linux系统是利用cpu的模式分级来分别运行用户空间和内核空间,这样就可以使操作系统得到充分的保护。而现代的cpu通常实现了不同的工作模式,以ARM处理器为例实现了7种运行模式,分别为:
1)用户模式(usr):ARM微处理器正常程序执行模式
2)系统模式(sys):运行具有特权的操作系统任务
3)中断模式(irq):用于通用的中断处理
4)外部中断模式(fiq):用于高速数据传输或通道处理
5)数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护
6)管理模式(svc):操作系统使用的保护模式
7)未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变,除用户模式外,其他模式都是非用户模式或特权模式,除用户模式和系统模式外,其他模式都是异常模式,常用于处理异常或中断,以及需要访问受保护的系统资源等情况。
????同时用户空间和内核空间是程序执行的两种不同状态,通过系统调用和硬件中断去实现用户空间到内核空间的转移,系统调用是主动的,硬件中断是被动的,比如键盘按下或者串口中断。
接下来说说linux的内核架构,它主要是包含7大组成部分
1.内存管理?内存管理的主要作用是使多个进程能安全高效的共享内存区域,通常使用以下两个手段:
①内存映射:将物理内存映射到虚拟内存中,变有限为无限
②有效管理:使用各种内存管理算法(如伙伴算法),减少内存浪费
2.虚拟文件系统?vfs隐藏了各种文件系统的具体细节,为文件操作提供统一的接口
3.网络协议栈?它为linux提供了完善丰富的网络协议实现
4.进程管理?进程管理的重点是创建进程、停止进程,并控制它们之间的通信。进程管理还包括控制活动进程如何共享cpu,即进程调度。
5.设备驱动?设备驱动也是内核的一部分,它不同于内核的其他部件,并且独立于内核的其他部件,同时它是与设备交互的唯一模块,通常由第三方厂商开发,一个驱动程序不与其他驱动程序交互;内核与驱动程序之间也仅通过一个严格定义的接口交互。
6.系统调用接口?SCI层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。
7.体系相关部分?
Linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具可读性。
下面介绍下这些目录的组成
arch目录
arch是architecture的缩写。内核所支持的每种CPU体系,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等。其下子目录有
|?--x86??/*英特尔cpu及与之相兼容体系结构的子目录*/
|?|--boot??/*引导程序*/
|?|?|--compressed??/*内核解压缩*/
|?|--tools??/*生成压缩内核映像的程序*/
|?|--kernel??/*相关内核特性实现方式,如信号处理、时钟处理*/
|?|--lib??/*硬件相关工具函数*/
block目录
?????部分块设备驱动程序
crypto目
文档评论(0)