




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 18 嵌入式暑期实习报告刷卡 一、嵌入式的概述: 随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术合一的趋势正在逐步形成,无所不在的网络和无所不在的计算正在将人类带入一个崭新的信息社会。 二、实习目的 学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握 ARM 硬件体系结构 ,熟悉 linux 下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项 目,为今后的学习和将从事的技术工作打下坚实的基础 三、实习设备: 1、硬件: Embest EduKit-IV 平台, ULINK2 仿真器套件, PC 机; 2、软件: Vision IDE for ARM 集成开发环境,Windows 98/2000/NT/XP。 四、实习内容 第一阶段 Linux 操作和编程基础 主要介绍 Linux 的基本命令和基础编程知识,包括Linux 的文件操作和目录操作命令, VI 编辑器, GCC 编译器,2 / 18 GDB 调试器和 Make 项目管 理工具等知识。 第二阶段 嵌入式 C 语言编程基础 主要介绍在嵌入式开发编程中 C 语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。 第三阶段 Linux 上 C 强化编程训练 主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用 C 库函数编程接口实践,强化学员对 Linux 下基本编程开发的理解和编码调试的能力。 第四阶段 Linux 环境高级编程及项目开发编程 实践 主要包括系统编程,文件 I/O 编程,多任务和多线程编程,网络编程;掌握 Linux 下 Socket 编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux 上进行系统编程开发的 能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件 I/O编程,多线程编程,网络编程和项目文档编写。 第五阶段嵌入式处理器体系结构及编程实践 主要介绍 ARM 体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断 处理、汇3 / 18 编语言以及 CC+和汇编语言的混合编程等知识。同时结合ARM 嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM 开发板上的编程大作业。 第六阶段嵌入式 Linux 开发基础及高级应用 主要介绍嵌入式 Linux 开发应用程序的基本流程和知识,包括嵌入式 Linux 基本概念和开发流程、 Bootloader工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程以及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式 Linux GUI 的应用编程大作业。 第七阶段嵌入式 Linux 驱动理论及驱动程序开发实践 主要介绍嵌入式 Linux 上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。 第八阶段嵌入式 Linux 项目团队开发实践锻炼 主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数 据库存储系统等多种嵌入式 Linux 编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流4 / 18 程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。 五、实习心得: 通过本次实习对 ARM9 嵌入式系统设计有了更深一步的了解,知道了如何使用 uc/os 软件进行编程编译,并下载到实验箱中,使图像、声音、文字得以显示,学会了转换 IIS声音文件的工具:和转换 bmp 图片文件的工具: Image2Lcd,使其能够在程序中运行。更重要的是学会了如何解 决在实习中遇到的各种问题并很好的解决,为以后使用该软件进行编程打下了坚实的基础,也培养了自己对该软件的兴趣,大四的学生正面临找工作的压力,通过这次实习积累了经验,对找工作也起到了辅助的作用,希望能够有机会对该软件进行进一步的学习研究。最后感谢指导老师和同学们的细心帮助。 电子工艺 实 习 报 告 班级 学号 姓名 同 组 人 指导教师 2016 年 1 月 13 日 一、嵌入式的概述: 随着信息化技术的 发展和数字化产品的普及,以计5 / 18 算机技 术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术合一的趋势正在逐步形成,无所不在的网络和无所不在的计算正在将人类带入一个崭新的信息社会。 二、实习目的 学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握 ARM 硬件体系结构 ,熟悉 linux 下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础 三、 实习任务 第一阶段 Linux 操作和编程基础 主要介绍 Linux 的基本命令和基础编程知识,包括Linux 的文件操作和目录操作命令, VI 编辑器, GCC 编译器, GDB 调试器和 Make 项目管理工具等知识。 第二阶段 嵌入式 C 语言编程基础 主要介绍在嵌入式开发编程中 C 语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。 6 / 18 第三阶段 Linux 上 C 强化编程训练 主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用 C 库函数编程接口实践,强化学员对 Linux 下基本编程开发的理解和编码调试的能力。 第四阶段 Linux 环境高级编程及项目开发编程实践 主要包括系统编程,文件 I/O 编程,网络编程;掌握 Linux 下 Socket 编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在 Linux 上进行系统编程开发的能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件 I/O 编程,多线程编程,网络编程和项目文档编写。 第五阶段嵌入式处理器体系结构及编程实践 主要介绍 ARM 体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及 CC+和汇编语言的混合编程等知识。同时结合ARM 嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM 开发板上的编程大作业。 第六阶段嵌入式 Linux 开发基础及高级应用 主要介绍嵌入式 Linux 开发应用程序的基本流程和知识,包括嵌入式 Linux 基本概念和开发流程、 Bootloader7 / 18 工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程以及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式 Linux GUI 的应用编程大作业。 第七阶段嵌入式 Linux 驱动理论及驱动程序开发实践 主要介绍嵌入式 Linux 上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及 完整的项目开发文档的编写。 第八阶段嵌入式 Linux 项目团队开发实践锻炼 主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式 Linux 编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。 四、实习内容 1. 嵌入式的历史与现状 虽然嵌入式系统是近几年才开 始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了,从上个世纪 708 / 18 年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近 30 年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段: ? 无操作系统阶段 嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经 初步具备了嵌入式的应用特点,但仅仅只是使用 8 位的 CPU 芯片来执行一些单线程的程序,因此严格地说还谈不上 系统 的概念。 这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量都有较高要求的信息家电等场合的需要。 ? 简单操作系统阶段 嵌入式系统实习报告 学 院: 专 业: 班 级: 9 / 18 学 号: 姓 名: 指导老师: 计算机与信息学院电子信息工程 20161111 2016111123 王金民 严朝军 彭文标 嵌入式系统开发与应用概述 在今日,嵌入式 ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了, ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。由于嵌入式系统具有体积小、 性能强、功耗低、可靠性高以及面向行业具体应用等突出特征, 目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。 linux 系统 linux 系统主要是由用户空间和内核空间再加上外部的硬件平台构成,用户空间就是用户应用程序的运行空间,主要包括两方面的内容:用户应用程序和 GNU C Library。而内核空间有三方面的内容,一是系统调用接口,它作为用户空间和内核空间相互转移的一种方式,二是内核空间,三是体系相关内核代码,在 linux 内核代码中,可以看到 arch目录下有许多子目录,其中每一个子目录代表一种硬件平10 / 18 台。 而为什么要把 linux 系统划分为用户空间和内核空间呢?主要是一旦用户空间和内核空间没有分开,那用户将拥有很大的权限去操控内核或用户应用程序的崩溃将会造成系统的崩溃,而 linux 系统是利用 cpu 的模式分级来分别运行用户空间和内核空间,这样就可以使操作系统得到充分的保护。而现代的 cpu 通常实现了不同的工作模式,以 ARM处理器为例实现了 7 种运行模式,分别为: 1)用户模式: ARM 微处理器正常程序执行模式 2)系统模式:运行具有特权的操作系统任务 3)中断模式:用于通用的中断处理 4)外部中断模式:用于高速数据传输或通道处理 5)数据访问终止模式:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 6)管理模式:操作系统使用的保护模式 7)未定义指令中止模式:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真 ARM 微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变,除用户模式外 , 其他模式都是非用户模式或特权模式,除用户模式和系统模式外,其他模式都是异常模式,常用于处理异常或中断,以及需要访问受保护的系统资源等情况。 11 / 18 同时用户空间和内核空间是程序执行的两种不同状态,通过系统调用和硬件中断去实现用户空间到内核空间的转移,系统调用是主动的,硬件中断是被动的,比如键盘按下或者串口中断。 接下来说说 linux 的内核架构,它主要是包含 7 大组成部分 1.内存管理 内存管理的主要作用是使多个进程能安全高效的共享内存区域,通常使用以下两个手段: 内存 映射:将物理内存映射到虚拟内存中,变有限为无限 有效管理:使用各种内存管理算法,减少内存浪费 2.虚拟文件系统 vfs 隐藏了各种文件系统的具体细节,为文件操作提供统一的接口 3.网络协议栈 它为 linux 提供了完善丰富的网络协议实现 4.进程管理 进程管理的重点是创建进程、停止进程,并控制它们之间的通信。进程管理还包括控制活动进程如何共享 cpu,即进程调度。 5.设备驱动 设备驱动也是内核的一部分,它不同于内核的其他部件,并且独立于内核的其他部件, 同时它是与设备交互的唯一模块,通常由第三方厂商开发,一个驱动程12 / 18 序不与其他驱动程序交互;内核与驱动程序之间也仅通过一个严格定义的接口交互。 6.系统调用接口 SCI 层为用户空间提供了一套标准的系统调用函数来访问 Linux 内核,搭起了用户空间到内核空间的桥梁。 7.体系相关部分 Linux 内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具可读性。 下面介绍下这些目录的组成 arch 目录 arch 是 architecture 的缩写。内核所支持的每种CPU 体系,在该目录下都有对应的子目录。每个 CPU 的子目录,又进一步分解为 boot,mm,kernel 等子目录,分别包含控制系统引导,内存管理,系统调用等。其下子目录有 | -x86 /*英特尔 cpu 及与之相兼容体系结构的子目录 */ | |-boot /*引导程序 */ | | |-compressed /*内核解压缩 */ | |-tools /*生成压缩内核映像的程序 */ | |-kernel /*相关内核特性实现方式,如信号处理、时钟处理 */ 13 / 18 | |-lib /*硬件相关工具函数 */ block 目录 部分块设备驱动程序 crypto 目录 加密、压缩、 CRC 校验算法 documentation 内核的文档 drivers 目录 设备驱动程序 fs 目录 存放各种文件系统的实现代码。每个子目录对应一种文件系统的实现,公 用的源程序用于实现虚拟文件 系统 vfs。 | |-devpts /* /dev/pts 虚拟文件系统 */ | |-ext2 /*第二扩展文件系统 */ | |-fat /*MS 的 fat32 文件系统 */ | |-isofs /*ISO9660 光盘 cd-rom 上的文件系统 */ include 目录 内核所需要的头文件。与平台无关的头文件在include/linux 子目录下,与平台相关的头文件则放在相应的子目录中。 init 目录 14 / 18 内核初始化代码 ipc 目录 进程间通信的实现代码 kernel 目录 Linux 大多数关键的核心功能都是在这个目录实现。 lib 目录 库文件代码 mm 目录 mm 目录中的文件用于实现内存管理中与体系结构无关的部分 net 目录 网络协议的实现代码 | |-802 /*802 无线通讯协议核心支持代码 */ | |-appletalk /*与苹果系统连网的协议 */ | |-ax25 /*AX25 无线 INTERNET 协议 */ | |-bridge /*桥接设备 */ | |-ipv4 /*IP 协议族 V4 版 32 位寻址模式 */ | |-ipv6 /*IP 协议族 V6 版 */ samples 一些内核编程的范例 scripts 配置内核的脚本 15 / 18 security SElinux 的模块 sound 音频设备的驱动程序 usr cpio 命令实现 virt 内核虚拟机 Linux 内核的配置与编译 Linux 内核具有可定制的优点,配置内核的目的是裁剪掉不必要的文件和目录,获得一个最简单的又能满足用户开发的操作系统,以解除嵌入式开发过程中所遇到的存储空间有限的困扰。内核配置与编译的具体步骤如下: 1.清除临时文件、中间文件和配置文件 1) make clean Remove most generated files but keep the config即清除大部 分生成的文件但保留配置文件 2) make mrproper Remove all generated files + config files 即清除所有生成的文件还有配置文件 3) make distclean Mrproper + remove editor backup and patch files16 / 18 即实现 make mrproper命令的同时删除编辑器备份文件和补丁文件 2.确定目标系统的软硬件配置情况,比如 cpu 类型,网卡型号,所需 支持的网络协议等。 3.使用如下命令之一配置内核: 1) make config:基于文本模式的交互式配置 2) make menuconfig:基于文本模式的菜单型配置 3) make oldconfig:使用已有的配置文件,但是会询问新增的配置选项 4) make xconfig:图形化的配置 Make menuconfig 是最为常用的内核配置方式 如果一个 .config 文件已经存在,它将使用该文件设置那些默认的值 4.编译内 核 编译内核通常也需要几个步骤,一是清除以前编译通过的残留文件;二是编译内核 image 文件和可加载模块;三是安装模块。 下面是编译内核的具体步骤。 make dep 命令用在内核或之前,用于建立源文件之间的依赖关系,在执行内核配置命令之后使用,不过在内核中已经取消该命令,该功能由内核配置命令实现。 17 / 18 make clean 命令用于删除前面留下来的中间文件,该命令不会删除 .config 等配置文件。这个步骤是可选的,它的目的是清除原先编译过而残留的 .com 和 .o。如果是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年泌尿外科手术技术操作模拟考核答案及解析
- 教师招聘之《小学教师招聘》能力提升题库含完整答案详解(必刷)
- 2025年教师招聘之《小学教师招聘》考前冲刺练习题(综合卷)附答案详解
- 2025年教师招聘之《小学教师招聘》题库必刷100题有完整答案详解
- 2025年教师招聘之《幼儿教师招聘》通关练习题和答案及参考答案详解
- 教师招聘之《幼儿教师招聘》综合检测题型汇编及参考答案详解(综合题)
- 教师招聘之《幼儿教师招聘》模拟题库带答案详解(典型题)
- 2025年押题宝典教师招聘之《幼儿教师招聘》题库附参考答案详解【典型题】
- 教师招聘之《小学教师招聘》强化训练附完整答案详解(网校专用)
- 2025-2026学年人教版(2024)七年级地理第一学期第六章发展与合作单元测试(含答案)
- 七年级上册英语单词形象记忆法
- 小学生科普知识蜜蜂介绍PPT
- GB/T 5590-2008矿用防爆低压电磁起动器
- 船舶电气知识培训课件
- 院前急救理论知识考核试题题库及答案
- 归类总规则培训资料课件
- 监理工作管理制度汇编
- 豁免知情同意申请表【模板】
- DB33- 1015-2021《居住建筑节能设计标准》
- 最新2022年全市住院医师规范化培训实践技能考核人员及时间安排
- 基于MAXIMO的发电行业EAM解决方案
评论
0/150
提交评论