您好,欢迎访问三七文档
第一节嵌入式系统概念开场白,自我介绍,手机等联系方式告知学生。介绍嵌入式系统这门课。对学生提出要求:(1)课上手机不能响(2)严格出勤制度(3)动手为主,理论为辅(4)最后有综合实训报告1、嵌入式系统的概念(1)到目前为止,业界还没有对嵌入式系统给出权威的和确定的定义。有关嵌入式系统的定义有很多种版本。(2)国内一个普遍被认同的嵌入式系统定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(3)嵌入式系统定义的理解——三个方面2、嵌入式系统的组成嵌入式系统由底层硬件模块、中间协议层、操作系统和高端应用层4部分组成。结合PPT,根据计算机的组成原理说明嵌入式系统的组成原理3、嵌入式系统的特点操作系统内核较小、系统精简、高实时性、多任务的操作系统、需要专门的开发工具和环境。4、嵌入式系统的应用消费电子领域、通信领域、工控、汽车电子、仿真、医疗仪器等、国防、航空航天领域。第二节SC2410处理器1、ARM微处理器(1)介绍ARM公司及其缩写的含义(2)介绍ARM处理器系列(高端到低端)(3)ARM处理器的特点2、S3C2410处理器S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器。介绍该处理器的内部资源,并对资源展开介绍(硬件及协议知识科普)。3、ARM开发平台RealView,是一套包含编译、调试和模拟的开发工具,需结合开发环境如uVision、eclipse或者CodeWarrior,形成集成开发环境来使用。ARM公司为了给ARM架构提供最优异的支持,经过十六年的研究推出了ARMRealView编译工具。他们包含了能够将C或C++编译成32位ARM指令集、16位Thumb指令集和Thumb-2指令集所必需的软件部件。KeiluVision4是ARM公司为ARM处理器平台开发的IDE,目前的最新版本是MDK4.53。ADS1.2ADS是ARM公司的集成开发环境软件,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C编译器;实时调试器;应用函数库。ADS的编译器调试器较SDT都有了非常大的改观,ADS1.2提供完整的WINDOWS界面开发环境。C编译器效率极高,支持C以及C++,使工程师可以很方便的使用C语言进行开发。提供软件模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统。配合FFT-ICE使用,ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。IARSystem是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。本书所选用的集成开发环境是ADS1.2。ARM公司表示不再支持ADS1.2软件升级,ADS1.2是目前的最终版本。这种情况下选择这款软件的原因是:(1)目前国内开发S3C2410应用的,大部分还在使用ADS1.2软件,应用范围很广泛。(2)ADS1.2软件是非常成熟的软件,Bug较少。(3)有关使用ADS1.2软件开发S3C2410的相关信息,互联网上有很多,非常便于自学。在本书的第二章将详细介绍ADS1.2软件的使用。第三节EL-TAB-ARM-II实验系统平台EL-TAB-ARM-II实验系统是北京精仪达盛科技有限公司研发的教学系统。这套教学系统集教学开发于一身,是一套综合的教学系统。本书将围绕这套教学系统讲述嵌入式技术的基本应用。1、介绍实验系统资源——采用图示介绍(系统框图和实物照片)2、说明系统内核用+1.8V供电,外围电路用3.3V供电的原因。3、说明RS232是怎么回事。4、核心板资源具体说明——内存、硬盘、网卡等硬件设备说明。5、JTAG接口是怎么回事——必要知识科普。6、简要介绍北京达盛公司的TechV总线及互联S3C2410AUSB主机接口USB设备接口10M以太网接口NANDFlashSDRAMUARTTechV总线接口触摸屏音频模块CPLD键盘和数码管显示I/O单元E_LAB总线接口TFT屏扬声器扬声器TFT屏开关CPU核心板对外输出电源8位数码管显示音频处理I/O单元4×4键盘整机开关扩展接口第四节ADS1.2的使用ADS的全称为ARMDeveloperSuite,是ARM公司推出的ARM集成开发环境。目前ADS的最新版本是1.2,ARM公司宣称对于ADS软件不再进行升级而转往其他ARM开发平台的开发。虽然,ARM公司不再支持ADS软件,但是ADS软件是国内业界使用最多的ARM开发平台,相关的技术资料非常之多,很适合初学ARM者使用。1、ADS1.2软件的安装介绍2、ADS1.2主界面介绍3、结合PPT介绍ADS1.2的工程建立过程4、结合PPT介绍ADS1.2的工程配置过程5、结合PPT介绍工程文件的组织形式(1)PC上工程文件的组织形式(2)ADS1.2平台上的工程文件组织(3)向工程中添加文件6、结合PPT介绍工程编译、调试及下载本节属于边讲边练进行,教师操作一步学生操作一步。第五节利用C语言开发嵌入式系统1、C语言与汇编语言的比较ARM处理器支持两种语言进行设计,一种是汇编语言(ARM/Thumb),另一种是高级语言(如C/C++语言)。汇编语言的机器代码生成效率很高,但可读性却不强,复杂的程序很难读懂;而高级语言在大多数情况下其机器代码生成效率较差,但可读性和可移植性却比汇编语言强很多,而且还可以嵌入汇编来解决高效性的代码编写问题。2、利用汇编语言开发ARM系统底层驱动ARM的汇编指令包括32位的ARM指令集和16位的Thumb指令集。ARM指令集效率高,代码密度低,而Thumb指令集具有更好的代码密度,却保持ARM的大多数性能上的优势,它是ARM指令集的子集(注:代码密度是单位存储空间中包含的指令的个数。举例说明,ARM指令是32位的,而Thumb指令是16位的,如果在1K的存储空间中,可以放32条ARM指令,但是可以放64条Thumb指令,因此存放Thumb指令时,代码密度高)。ARM程序和Thumb程序可相互调用,它们之间的状态切换开销几乎为零。3、ARM指令集介绍(科普不做重点要求)ARM指令集的基本格式是opcode{cond}{S}Rd,Rn{,opcode2}指令格式中,中的内容是必须出现的,{}中的内容是可选的。指令格式中相应符号的说明见表3-1所示。表3-1指令格式中符号的说明符号说明opcode指令助记符cond执行条件S是否影响CPSR寄存器的值,有“S”这个符号说明影响CPSR寄存器的值,否则不影响Rd目标寄存器Rn第一个寄存器操作数opcode2第二个操作数ARM指令集分为七类,分别是存储器访问指令、数据处理指令、乘法指令、跳转指令、协处理器指令、杂项指令和伪指令。表3-2是ARM存储器访问指令列表,表3-3是ARM数据处理指令列表,表3-3是ARM数据处理指令列表,表3-4是ARM乘法指令列表,表3-5是ARM跳转指令列表,表3-6是ARM协处理器指令列表,表3-7是ARM杂项指令列表,表3-8是ARM伪指令列表。下面的例子程序段是一个含有子程序调用的汇编程序代码段。AREAInit,CODE,READONLYENTRYLDRR0,=0x3FF5000LDRR1,0x0fSTRR1,[R0]LDRR0,=0x3F50008LDRR1,0x1STRR1,[R0]BLPROC;子程序调用┋PROC;子程序开始┋MOVPC,LR;从子程序返回┋END采用汇编语言编写ARM9的驱动程序,需要对ARM9的硬件组成结构非常熟悉。在学习汇编语言之前,需要对ARM9处理器的内核ARM920T的结构有个全面了解,了解其工作模式、工作状态、寄存器组织和程序状态寄存器等相关硬件的知识,除此之外,还要对ARM9的存储器映射、基本寻址方式和各种中断类型有较全面的了解。上述内容对于初学者来说不是短期内能够掌握的。另外,应用汇编语言编写程序,需要用户对于相关的指令能够熟练记忆,如果一段时间搁置汇编语言,就会对指令产生遗忘,不利于以后的工作,所以建议初学者采用C语言来开发嵌入式系统。第六节利用C语言开发ARM底层驱动C语言是目前常用编程语言中结合底层硬件最好的高级语言。C语言应用在嵌入式开发中的特点是代码效率较高而执行效率较低。之所以C语言的执行效率较低时因为用C语言编写的ARM底层驱动在通过软件编译时会生成相应的汇编代码,汇编代码再被编译为机器码由ARM处理器执行。C程序转换为汇编程序这个过程是由编译软件自动完成的,用户无法对其进行干涉,所以一条C程序究竟转换为多少汇编代码在一般情况下是不知道的,所以用户无法根据指令周期对程序运行的精确时间进行估计,分析由汇编语言编写的简单延迟代码和用C语言中for循环编写的简单延迟代码就是很好的例证。虽然相对于汇编语言,C语言的执行效率较低,但是ARM9处理器的速度非常快(百兆级),S3C2410A的最高速度就可达266MHz。一般非高速应用,这个级别的速度都能满足需要,所以C语言所带来的代码上的开销基本可以忽略不计。如果一定要求对程序的关键地方做时间上的严格控制,可以采取C语言和汇编语言混合编程的模式处理。关键程序段用汇编语言编写,其他部分还是采用C语言编写,这样一来就可以两全其美了。采用C语言编写ARM9底层驱动,只需要对ARM9处理器的外设控制器的寄存器进行全面了解就能写出功能完整的驱动程序。有关ARM9处理器的启动程序和操作系统在ARM9处理器上的关于CPU的移植,这两部分代码都用汇编语言编写。一般开发系统出厂时,这两部分代码全部由厂家提供,用户可以直接使用,无需自行编写。C语言与汇编语言比较1.汇编语言的特点汇编语言直接同底层软件甚至硬件进行交互,其优点是:(1)能够直接访问与硬件相关的存储器或I/O端口;(2)能够不受编译器的限制,对生成的二进制代码进行完全的控制;(3)方便对位的操作;(4)能够对关键代码进行更准确的控制;(5)能够根据特定的应用对代码做最佳的优化,提高运行速度;(6)能够最大限度地发挥硬件的功能。汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,所以汇编语言有如下缺点:(1)编写的代码晦涩难懂,不易维护;(2)因为汇编你语言与硬件联系紧密,所以只能针对特定的体系结构和处理器进行优化;(3)由于其代码效率低,所以开发效率很低。2.C语言的特点C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖硬件的应用程序。C语言的优点是:(1)简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。(2)运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。(3)数据类型丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。(4)C是结构式语言。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。(5)适用范围大,可移植性好。C语言有一个突出的优点就是适合于多种操作系统,如Linux、UNIX和windows等;也适用于多种机型。C语言与汇编程序相比,其缺点是语法要求不是很严格,程序设计自由度很大,这样写出
本文标题:嵌入式技术教学笔记
链接地址:https://www.777doc.com/doc-3760662 .html