版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第1章嵌入式系统概述(重点掌握)2嵌入式计算机_发展历史在电子计算机发展的初期,计算机一直是“供养”在特殊的机房中的大型、昂贵的专用设备,主要是实现一些特殊的数值计算。同时微处理器表现出的智能化水平引起了设备制造、机电控制等专业人士的兴趣,要求将微型机嵌入到一个控制对象的体系中,实现对象体系的智能化控制。微处理器的问世极大的促进了控制领域的发展,复杂的控制系统最初只是由简单的设备组成,以微处理器这样的部件作为主要的控制和反馈器件,极大的提高了系统的可控性和智能化3嵌入式计算机_发展历史经过发展,到80年代初微处理器及微控制器各自已发展为一个庞大的家族,以Intel公司x86为主流的应用于个人计算机PC的微处理器格局已形成。为了区别于原有使用在PC的通用计算机,把嵌入到对象体系中、实现对象体系智能化控制的微控制器的计算机,称作嵌入式计算机。4嵌入式计算机_基本概念随着计算机技术对其它行业的广泛渗透和与其它行业应用技术的相互结合,以应用为中心的分类方法变得似乎更加切合实际发展;也就是按计算机的嵌入式应用和非嵌入式应用将其分为通用计算机和嵌入式计算机。而通用计算机具有一般计算机的基本标准形态,通过装配不同的应用软件,以基本雷同的面目出现并应用在社会的各个方面,其典型产品为PC;而非通用计算机的计算机-嵌入式计算机,则是非通用计算机形态的计算机应用它是以作为嵌入式系统的核心部件的形式隐藏在各种装置、设备、产品和系统中。5嵌入式系统的概念
嵌入式系统是嵌入到对象体中的专用计算机系统以嵌入式计算机为核心的嵌入式系统是继IT网络技术之后,又一个新的技术发展方向。IEEE对嵌入式系统的定义为:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(devicesusedtocontrol、monitor、orassisttheoperationofequipment、machineryorplants)这主要是从应用对象上加以定义,涵盖了软、硬件及辅助机械设备。6嵌入式系统的概念_国内的定义什么是嵌入式系统,目前国内对嵌入式系统有多种定义。传统的嵌入式系统定义是:嵌入式计算机系统是嵌入在其他设备中,起智能控制作用的专用计算机系统。
目前流行的嵌入式系统定义是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统相比较而言,国内的定义更全面一些,体现了嵌入式系统“嵌入”、“专用性”、“计算机”的基本要素和特征。7嵌入式系统的特点由于嵌入式系统是应用于特定环境下,针对特定用途来设计的系统,所以不同于通用计算机系统。同样是计算机系统,嵌入式系统是针对具体应用设计的“专用系统”。它的硬件和软件都必须高效率地设计、“量体裁衣”、去除冗余,力争在较少的资源上实现更高的性能。它与通用的计算机系统相比具有以下显著特点:8嵌入式系统的特点
(嵌入式系统与PC之间的区别)嵌入式系统一般是专用系统,而PC是通用计算平台嵌入式系统的资源比PC少得多嵌入式系统软件故障带来的后果比PC机大得多嵌入式系统一般采用实时操作系统嵌入式系统大都有成本、功耗的要求嵌入式系统得到多种微处理体系的支持嵌入式系统需要专用的开发工具9嵌入式系统的分类按表现形式分(硬件范畴)芯片级嵌入(含程序或算法的处理器)模块级嵌入(系统中的某个核心模块)系统级嵌入按实时性要求分(软件范畴):非实时系统(PDA)软实时系统(消费类产品)硬实时系统(工业和军工系统)10嵌入式系统的组成结构嵌入式系统是“专用计算机应用系统”,它具有一般计算机组成的共性,也是由硬件和软件组成;下图完整的描述了嵌入式系统的软、硬件各部分的组成结构。11
应用程序实时操作系统(RTOS)输入输出接口处理器/ARM核MMU/CacheSOC/SOPCUSBGPIOIISLCDUART和IrDAADC/DACFPGA/CPLDDSP/浮点运算协处理器DMA电源管理图典型的嵌入式系统组成人机交互接口LCD/触摸屏、键盘、鼠标设备驱动程序、HAL、BSP文件系统/图形用户应用程序接口驱动层OS层应用层软件硬件以太网看门狗及复位电路Timer/RTCCANFlashEEPROMSDRAMSRAM内存12嵌入式系统的组成结构嵌入式系统的硬件是嵌入式系统软件环境运行的基础,它提供了嵌入式系统软件运行的物理平台和通信接口;嵌入式操作系统和嵌入式应用软件则是整个系统的控制核心,控制整个系统运行、提供人机交互的信息等。由于嵌入式系统和实际应用对象密切相关,而实际应用非常繁杂,应用也日新月异,很难用一种构架或模型加以描述。13嵌入式系统的组成结构
_硬件基本结构介绍嵌入式系统的硬件架构是以嵌入式处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口组成。嵌入式系统是“量身定做”的“专用计算机应用系统”,又不同于普通计算机组成,在实际应用中的嵌入式系统硬件配置非常精简,除了微处理器和基本的外围电路以外,其余的电路都可以根据需要和成本进行“裁剪”、“定制化”(Customize),非常经济、可靠。
14嵌入式系统的组成结构
_硬件基本结构介绍嵌入式系统硬件核心是嵌入式微处理器,有时为了提高系统的信息处理能力,常常外接DSP和DSP协处理器(也可内部集成)完成高性能信号处理。随着计算机技术、微电子技术、应用技术的不断发展和纳米芯片加工工艺技术的发展,以微处理器为核心的集成多种功能的SoC系统芯片已成为嵌入式系统的核心,在嵌入式系统设计中,要尽可能的选择能满足系统功能接口的SoC芯片,这些SoC集成了大量的外围USB、UART、以太网、AD/DA、IIS(Inter—ICSound)等功能模块。15嵌入式系统的组成结构
_硬件基本结构介绍可编程片上系统SOPC(SystemOnProgrammableChip)结合了SoC和PLD、FPGA各自的技术优点,使得系统具有可编程的功能,是可编程逻辑器件在嵌入式应用中的完美体现,极大的提高了系统的在线升级、换代能力。以SoC/SOPC为核心,可以用最少的外围部件和连接部件构成一个应用系统,满足系统的功能需求,也是嵌入式系统发展的一个方向因此现代嵌入式设计是以处理器/SoC/SOPC为核心,完成系统设计的,其外围接口包括存储设备、通信接口设备、扩展设备接口和辅助的机电设备(电源、连接器、传感器等)构成硬件系统。16嵌入式系统硬件嵌入式系统的硬件是以嵌入式处理器为核心,配置必要的外围接口部件。在嵌入式系统设计中,尽可能的选择能满足系统功能接口的SoC/SOPC芯片,以最少的外围部件构成一个应用系统,满足嵌入式系统的特殊需求。17嵌入式处理器
嵌入式处理器可以分为三类:
嵌入式微处理器(Microprocessor)嵌入式微控制器MCU(MicrocontrollerUnit)嵌入式DSP(DigitalSignalProcessor)18ARM公司介绍20世纪90年代初,半导体行业产业链形成设计业、制造业、封装测试业三业分离的产业分工。台积电、联电等半导体代工厂崛起,一些fabless、chipless公司如雨后春笋般涌现出来。而英国先进RISC机器公司(AdvancedRISCMachines,简称ARM公司)作为fabless、chipless这一生产模式最为成功的典范,既不生产芯片,也不销售芯片,而是设计出高效的IP(intellectualproperty)内核,授权给各半导体公司使用;半导体公司在ARM技术的基础上,根据自己公司的产品定位,添加自己的设计并推出芯片产品;最后由OEM客户采用这些芯片来构建基于ARM技术的最终应用系统产品19ARM公司介绍ARM公司是一个全球领先的嵌入式微处理器IP核供应商;而自己从不介入芯片的生产销售,既不生产芯片也不销售芯片;它提供一些高性能、低功耗、低成本和高可靠性的RISC处理器核、外围部件和系统级芯片应用解决、设计方案;ARM的微处理器核适用于便携式通讯工具、手持式计算机、多媒体数字消费类产品和嵌入式系统解决方案;20ARM公司介绍ARM处理器是精简指令集计算机(RISC)最初ARM是1983到1985年间在英国剑桥的AcornComputer公司开发的。它是第一个为商业用途开发的RISC微处理器,同后来的RISC体系结构有明显的不同。1990年11月27日,Acorn公司正式改组为ARM计算机公司。苹果公司出资150万英镑,芯片厂商VLSI出资25万英镑,Acorn本身则以150万英镑的知识产权和12名工程师入股。公司的办公地点非常简陋,就是一个谷仓。从那以后,ARM已被授权给世界各地的许多半导体制造厂。它已经成为低功耗和追求成本的嵌入式应用的市场领导者。21ARM系列内核介绍ARM处理器核当前有7个系列产品:ARM7ARM9ARM9EARM10E,SecurCoreARM11Cortex系列(A,R,M系列)Intel公司推出的:StrongARMXScale22ARM7性能特征23嵌入式操作系统
嵌入式操作系统是嵌入式应用软件的基础和开发平台,它是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在操作系统之上。嵌入式操作系统大部分是实时操作系统RTOS,RTOS是一个可靠性和可信度很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。为了满足嵌入式系统的需要,嵌入式操作系统必须包括操作系统的一些最基本的功能,如中断处理与进程调度,用户可以通过API来使用操作系统。大多嵌入式系统应用在实时环境中,因此嵌入式操作系统跟实时(Real-Time)操作系统密切联系在一起。24嵌入式实时操作系统RTOS嵌入在系统的目标代码中,系统复位并执行完BootLoader后执行,用户的其它应用程序都建立在RTOS之上。RTOS是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API接口。实时操作系统可以根据实际应用环境的要求对内核进行剪裁和重新配置,组成可根据实际的不同应用领域而有所不同。但以下几个重要组成部分是不太变化的:实时内核、网络组件、文件系统和图形接口等。
嵌入式操作系统的种类繁多,但大体上可分为两种——商用型和免费型。目前商用型的操作系统主要有VxWorks,WindowsCE,WindowsMobile,Psos、PalmOS,QNX等;25典型嵌入式操作系统介绍它们的优点是功能稳定、可靠,有完善的技术支持和售后服务,而且提供了如图形用户界面和网络支持等高端嵌入式系统要求许多高级的功能;缺点是价格昂贵且源代码封闭性,这大大限制了开发者的积极性。目前免费型的操作系统主要有Linux,µC/OS-II,Android等。它们在价格方面具有很大的优势。比如,嵌入式Linux操作系统以价格低廉、功能强大、易于移植而且程序源码全部公开等优点正在被广泛采用,成为新兴的力量。26典型嵌入式操作系统介绍µC/OS-II嵌入式操作系统内核
µC/OS-II是一个可裁减的、源码开放的、结构小巧、可剥夺型的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良和可扩展性强等特点。µC/OS-II中最多可以支持64个任务,分别对应优先级0~63,其中0为最高优先级。实时内核在任何时候都是运行就绪了的最高优先级的任务,是真正的实时操作系统。µC/OS-II最大程度上使用ANSIC语言开发,现已成功移植到近40多种处理器体系上。27典型嵌入式操作系统介绍WinCE操作系统
MicrosoftWindowsCE是针对有限资源的平台而设计的多线程、完整优先权、多任务的操作系统,但它不是一个硬实时操作系统。高度模块化是WinCE的一个鲜为人知的特性,这一特性有利与它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。WinCE操作系统的基本内核需要至少200K的ROM,它支持
Win32API子集、多种用户界面硬件、多种的串行和网络通讯技术、COM/OLE和其他的进程间通讯的先进方法。Microsoft公司为WindowsCE提供了PlatformBuilder和EmbeddedVisualStudio开发工具。28典型嵌入式操作系统介绍Linux操作系统
Linux类似于UNIX,是一种免费的、源代码完全开放的、符合POSIX(PortableOperatingSystemInterfaceofUnix)标准规范的操作系统。
Linux的系统界面和编程接口与UNIX很相似,所以UNIX程序员可以很容易地从UNIX环境下转移到Linux环境中来。Linux拥有现代操作系统所具有的内容:真正的抢先式多任务处理、支持多用户、内存保护、虚拟内存、支持对称多处理机SMP(symmetricmultiprocessing)、符合POSIX标准、支持TCP/IP、支持绝大多数的32位和64位CPU。嵌入式Linux版本众多,如支持硬实时的Linux-RT-Linux/RTAI、Embedix、BlueCatLinux和HardHatLinux等29典型嵌入式操作系统介绍µClinux
µClinux是针对无MMU(内存管理单元)微处理器开发的,已经被广泛使用在ColdFire、ARM、MIPS、SPARC、SuperH等等没有MMU的微处理器上。虽然µClinux的内核要比原Linux2.0内核小的多,但保留了Linux操作系统稳定性好,网络能力优异以及对文件系统的支持等主要优点。30嵌入式应用软件开发
嵌入式应用软件是实现系统各种功能的关键,好的应用软件使得同样的硬件平台更好、更高效的完成系统功能,使系统具有更大的经济价值。嵌入式应用软件是针对特定应用的、基于相应的硬件平台,为完成用户预期任务而设计的计算机软件。用户的任务有时间、精度的要求,同时嵌入式系统对于实现成本十分敏感;因此在满足系统功能要求的前提下,就要最大限度的减少系统的成本,除了精简每个硬件单元的成本外,还应该尽可能地减少嵌入式应用软件的代码量。这就要求嵌入式应用软件不但要保证准确性、安全性、稳定性以满足应用要求,还要尽可能地优化。31
嵌入式软件开发环境嵌入式开发环境组成交叉开发环境模拟开发环境评估电路板32嵌入式开发环境组成交叉开发环境作为嵌入式系统应用的ARM处理器,其应用软件的开发属跨平台开发,因此需要一个交叉开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行运行调试的开发方式。用来开发的通用计算机可以选用比较常见的PC机、工作站等,运行通用的Windows或Unix操作系统。开发计算机一般称宿主机,嵌入式设备称为目标机,在宿主机上编译好的程序,下载到目标机上运行,交叉开发环境提供调试工具对目标机上运行的程序进行调试。33交叉开发环境一般由运行于宿主机上的交叉开发软件(最少必须包含编译调试模块)、宿主机到目标机的调试通道组成。运行于宿主机上的交叉开发软件最少必须包含编译调试模块,其编译器为交叉编译器。作为宿主机的一般为基于x86体系的桌上型计算机,而编译出的代码必须在ARM体系结构的目标机上运行,这就是所谓的交叉编译了。在宿主机上编译好目标代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。为了方便调试开发,交叉开发软件一般为一个整合编辑、编译汇编链接、调试、工程管理及函数库等功能模块的集成开发环境IDE(IntegratedDevelopmentEnvironment)。
34组成ARM交叉开发环境的宿主机到目标机的调试通道一般有以下三种:
基于JTAG的ICD(In-CircuitDebugger)。
Angel调试监控软件。
在线仿真器ICE(In-CircuitEmulator)。
35模拟开发环境在很多时候为保证项目进度,硬件和软件开发往往同时进行,这时作为目标机的硬件环境还没有建立起来,软件的开发就需要一个模拟环境来进行调试。模拟开发环境建立在交叉开发环境基础之上,是对交叉开发环境的补充。这时,除了宿主机和目标机之外,还需要提供一个在宿主机上模拟目标机的环境,使得开发好的程序直接在这个环境里运行调试。36模拟开发环境
模拟硬件环境是非常复杂的,由于指令集模拟器与真实的硬件环境相差很大,即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,因此软件模拟不可能完全代替真正的硬件环境,这种模拟调试只能作为一种初步调试,主要是用作用户程序的模拟运行,用来检查语法、程序的结构等简单错误,用户最终还必须在真实的硬件环境中实际运行调试,完成整个应用的开发。37评估电路板
评估电路板,也称作开发板,一般用来作为开发者学习板、实验板,可以作为应用目标板出来之前的软件测试、硬件调试的电路板。尤其是对应用系统的功能没有完全确定、初步进行嵌入式开发且没有相关开发经验的非常重要。开发评估电路板并不是ARM应用开发必须的,对于有经验的工程师完全可以自行独立设计自己的应用电路板和根据开发需要设计实验板。好的评估电路板一般文档齐全,对处理器的常用功能模块和主流应用都有硬件实现,并提供电路原理图和相关开发例程与源代码供用户设计自己的应用目标板和应用程序作参考。选购合适于自己实际应用的开发板可以加快开发进度,可以减少自行设计开发的工作量。38嵌入式开发的考虑要素嵌入式系统是以实际应用为主要考虑对象的专用计算机系统,嵌入式特点就是软硬件可配置、功能可靠、成本低、体积小、功耗低、实时性强。因此嵌入式系统受功能和具体应用环境的约束,其开发流程就不同于一般的通用计算机系统。在嵌入式系统设计开发时必须考虑以下因素:
39
嵌入式开发的考虑要素
功能可靠实用、便于升级;
实时并发处理,及时响应;
体积符合要求,结构紧凑;
接口符合规范,易于操作;
配置精简稳定,维护便利;功耗管理严格,成本低廉。
40
Embest
EDUKIT-III
实验教学系统第2章41一.
EmbestARM教学系统介绍EmbestARM教学系统包括EmbestIDE集成开发环境,EmbestJTAG仿真器,Flash编程器,EmbestEduKit-III开发板、各种连接线、电源适配器以及实验指导书等。基本实验模型示意图如下:42EduKit-III开发板介绍43EduKit-III开发板介绍·SD卡接口模块·PCI扩展接口·10/100M以太网接口·蜂鸣器·8段数码管·双CAN总线模块·CF卡接口模块·步进电机模块·直流电机模块·IDE硬盘接口·CPLD模块(ComplexProgrammableLogicDevice)·MICROPHONE输入口·IIS音频信号输入口·ADC模数转换模块·SPI(Serial
Peripheralinterface)·高速硬件仿真器·GPRS模块(选配)·GPS模块(选配)·蓝牙模块(选配)·摄像头模块(选配)44EmbestIDE集成开发环境EmbestIDE是一套应用于嵌入式软件开发的新一代集成开发环境。它提供高效明晰的图形化的嵌入式应用软件开发平台,包括一整套完备的面向嵌入式系统的开发和调试工具:编辑器、编译器、连接器、调试器、工程管理器等。EmbestIDE集成开发环境界面风格同MicrosoftVisualStudio,是一套良好的嵌入式软件可视化开发环境。用户可以很方便的在EmbestIDE集成开发环境中创建和打开工程,建立、打开和编辑文件,编译、连接、运行、调试各种嵌入式应用程序。EmbestIDE开发环境界面如图所示4546EmbestJTAG 仿真器JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。EmbestJTAG仿真器如下图所示。47EmbestJTAG 仿真器48EmbestJTAG 仿真器目前分为三种类型,包括标准型(EmbestEmulatorforARM),增强型(EmbestPowerICEforARM)和通用型(EmbestUnetICEforARM),主要区别在于下载调试的速度不同。其中EmbestEmulatorforARM,EmbestPowerICEforARM根据采用打印机并口(LPTx)与主机通讯,即仿真器一端是一个DB25的接口,用于连接计算机的并行口,另外一端是20针的IDC插头,用于连接目标板。EmbestUnetICEforARM 则可以使用USB接口或EthernetRJ45接口与主机通讯,分别使用USB线或交叉网线与主机USB或RJ45接口相连。EmbestJTAG仿真器面板上面都有三只指示灯,对当前的工作状态做出指示。EmbestJTAG 仿真器49Flash 编程器当用户程序编写完之后,需要把程序生成的二进制执行文件烧写到开发板的Flash存储器中观察实际运行结果。英蓓特公司提供了一套完善的Flash编程器,用户可以直接使用该编程器对开发板上的Flash进行读写(使用时需要配合前面提到的EmbestJTAG 仿真器)。其运行界面如图2-4所示:50教学系统硬件及电路
EmbestEduKit-III 教学实验平台是一款功能强大的32 位的嵌入式开发板,里面采用了SAMSUNG公司的ARM7TDMI-S为内核的处理S3C44B0X,同时可以兼容S3C2410,具有TAG调试等功能。板上提供了一些键盘、LED和串口等一些常用的功能模块,并且具有IDE硬件接口,CF存储卡接口、以太网接口和SD卡接口等等,对用户在32位ARM嵌入式领域进行开发实验非常方便。51S3C2410S3C2410是韩国三星公司的一款寄予ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用。运行频率可达203MHz。ARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。S3C2410的资源包括:1个LCD控制器(支持STN和TFT带有触摸屏的液晶显示屏)SDRAM控制器3个通道的UART4个通道的DMA52S3C24104个具有PWM功能的计时器和一个内部时钟8通道的10位ADC触摸屏接口IIS总线接口2个USB主机接口,1个USB接口设备2个SPI接口SD接口和MMC卡接口看门狗计数器117个通用I/O口和24位外部中断源8通道10位AD控制器53二.基于ARM核的嵌入式
开发环境介绍54主要内容开发环境开发流程工程的建立与配置编写软件源文件软件工程的编译链接软件调试可执行文件固化551、开发环境56EmbestIDEARM开发板Embest仿真器EmbestIDE开发环境开发环境的组成PC57开发环境的连接58增强型仿真器PowerICE120KByte/S标准型仿真器Emulator25KByte/SEmbest仿真器592、开发流程60开发流程工程建立
源文件
编译
调试
固化C语言程序*.c汇编源程序*.s链接脚本文件*.ld命令脚本文件*.CS存储区映像文件*.map61嵌入式应用软件开发的基本流程
嵌入式软件开发流程图链接器命令文件编译预处理编译器汇编器Archive工具链接器和定位器头文件(*.h,*.hpp)可重定位目标文件库文件(*.a,*.lib)头文件(*.h,*.hpp)C/C++源代码汇编源代码源文件列表源文件列表源代码编辑阶段源文件编译阶段链接与重定位调试与下载阶段重定位文件表(*.o,*.a)共享目标文件(*.o,*.a)可执行映象(*.elf,*.coff)链接映射文件(*.map)设备程序员目标开发系统I/O
口实验(重点掌握)实验目的掌握S3C2410X芯片的I/O控制寄存器的配置;通过实验掌握ARM芯片使用I/O口控制LED显示;了解ARM芯片中复用I/O口的使用方法。实验设备硬件:EmbestEduKit-III实验平台,EmbestARM标准/增强型仿真器套件,PC机。软件:EmbestIDEforARM集成开发环境,Windows/XP。实验内容编写程序,控制实验平台的发光二极管LED1,LED2,LED3,LED4,使它们有规律的点亮和熄灭,具体顺序如下:LED1亮->LED2亮->LED3亮->LED4亮->LED1灭->LED2灭->LED3灭->LED4灭->全亮->全灭,如此反复。实验原理S3C2410X芯片上共有117个多功能的输入输出管脚,他们分为8组I/O端口:一个23位的输出端口(端口A);两个11位的输入/输出端口(端口B、H);四个16位的输入/输出端口(端口C、D、E、G);一个8位的输入/输出端口(端口F);可以很容易的每组端口来满足不同系统配置和设计的需要。运行程序之前必须对每个用到的管脚功能进行设置,如果某些管脚的复用功能没有使用,可以先将该管脚设置为I/O口。1.S3C2410XI/O端口控制端口控制寄存器(GPACON-GPHCON)在S3C2410X中,大多数的管脚都复用,所以必须对每个管脚进行配置。端口控制寄存器定义了每个管脚的功能。如果GPF0-GPF7和GPG0-GPG7在掉电模式使用了弱上拉信号,这些端口必须在中断模式配置。端口数据寄存器(GPADAT-GPHDAT)如果端口被配置成了输出端口,可以向PnDAT的相应位写数据。如果端口被配置成了输入端口,可以从PnDAT的相应位读出数据。端口上拉寄存器端口上拉寄存器(GPBUP-GPHUP)端口上拉寄存器控制了每个端口组的上拉电阻的允许/禁止。如果某一位0,相应的上拉电阻被允许,如果是1,相应的上拉电阻被禁止。如果端口的上拉电阻被允许,无论在哪种状态(INPUT,OUTPUT,DATAn,EINTn等)下,上拉电阻都要起作用。1.S3C2410XI/O端口控制多状态控制寄存器这个寄存器控制数据端口的上拉电阻,高阻态,USBpad和CLKOUT选项。外部中断控制寄存器(EXTINTN)24个外部中断有各种各样的中断请求信号,EXTINTN寄存器可以配置信号的类型为低电平触发,高电平触发,下降沿触发,上升沿触发,两沿触发中断请求。8个外部中断引脚有数字滤波器(参考数据手册中的EINTFLTn)。只有16个外部中断(EINT[15:0])用于唤醒cpu。掉电模式和I/O端口在掉电模式下仍然保持所有的GPIO的所有状态值,。EINTMASK在掉电模式下也不能阻止唤醒cpu。如果EINTMASK屏蔽了EINT[15:4]的某一位,仍然可以唤醒cpu,但是SRCPND的EINT4_7位和EINT8_23位不能在cpu唤醒后马上被置位。2.I/O端口控制寄存器I/O端口A控制寄存器I/O端口B控制寄存器…………I/O端口H控制寄存器以端口A,C,F,H为例来说明端口A(23位).GPACON[22:0]中的某一位置1,设置与该位相对应的引脚为功能端口,.置0,为输出口端口E
(16位)如果端口E被配置为输入端口,可以从引脚读出相应外部输入源输入的数据。如果端口被配置为输出端口,向寄存器写的数据可以被送往相应的引脚。如果端口被配置为功能引脚,从该引脚读出的数据不确定。置位GPEUP[15:0]的某一位允许相应引脚的上拉功能,否则禁止上拉功能。端口E
(16位)端口F
端口H3.电路设计GPF7GPF6GPF5GPF4如图所示,LED1-4分别与GPF7-4相连,通过GPF7-4引脚的高低电平来控制发光二极管的亮与灭。当这几个管脚输出高电平的时候发光二极管熄灭,反之,发光二极管点亮。D1205->LED3D1207->LED1D1206->LED2D1204->LED4注意:学习机上的LED灯,并不是按顺序布放的,编程时要注意程序分析(main.c,led_test.c)#include"2410lib.h"voidMain(intargc,char**argv){ sys_init();/*Initials3c2410'sClock,MMU,Interrupt,PortandUART*/ while(1) led_test();}voidled_on(void){ inti,nOut; nOut=0xF0; //11110000 rGPFDAT=nOut&0xd0;//0xd0=11010000,led3亮
for(i=0;i<100000;i++); rGPFDAT=nOut&0x50;//0x50=01010000,led3,led1亮
for(i=0;i<100000;i++); rGPFDAT=nOut&0x40;//0x40=01000000,led3,led1,led4亮
for(i=0;i<100000;i++); rGPFDAT=nOut&0x00;//0x00=00000000,都亮
for(i=0;i<100000;i++); rGPFDAT=nOut;}voidled_off(void){ inti,nOut; nOut=0; rGPFDAT=0; for(i=0;i<100000;i++); rGPFDAT=nOut|0x20;//0x20=00100000,led3灭
for(i=0;i<100000;i++); rGPFDAT|=nOut|0xa0;//0xa0=10100000,led1,led3灭
for(i=0;i<100000;i++); rGPFDAT|=nOut|0xb0;//0xb0=10110000,led1,led3,led4灭
for(i=0;i<100000;i++); rGPFDAT|=nOut|0xf0;//0xf0=11110000,都灭
for(i=0;i<100000;i++);}voidled_on_off(void){ inti; rGPFDAT=0; for(i=0;i<100000;i++); rGPFDAT=0xF0; for(i=0;i<100000;i++); }voidled_test(void){ rGPFCON=0x5500;//0101010100000000,PORTF7/6/5/4OUTPUT rGPFUP=0;//PULL-UPENABLE rGPBCON=rGPBCON&0xFFFFFC|1;//beepconfiguration //0xFC=11111100|1=11111101,B口的0位作输出,接蜂鸣器
uart_printf("\nI/O(DiodeLed)TestExample\n"); rGPBDAT&=0xFFFFFE;//0xE=1110B,最后一位是低电平,发声!
led_on(); led_off(); led_on_off(); rGPBDAT|=1;//最后一位是高电平,蜂鸣器停止发声!
delay(1000); rGPFCON=0x55aa;//GPF1,GPF0=10:EINT1,EINT0,(2410lib.c) uart_printf("end.\n");}串口通信实验实验目的了解S3C2410X处理器UART相关控制寄存器的使用。熟悉ARM处理器系统硬件电路中UART接口的设计方法。掌握ARM处理器串行通信的软件编程方法。实验设备硬件:EmbestEduKit-III实验平台,EmbestARM标准/增强型仿真器套件,PC机。软件:EmbestIDEforARM集成开发环境,Windows/XP。实验内容编写S3C2410X处理器的串口通信程序,监视串行口UART0动作;将从UART0接收到的字符串回送显示。串口通信实验实验原理1.S3C2410X串行通讯(UART)单元S3C2410XUART单元提供三个独立的异步串行通信接口,皆可工作于中断和DMA模式。使用系统时钟最高波特率达230.4Kbps,如果使用外部设备提供的时钟,可以达到更高的速率。每一个UART单元包含一个16字节的FIFO,用于数据的接收和发送。S3C2410XUART支持可编程波特率,红外发送/接收,一个或两个停止位,5bit/6bit/7bit/或8bit数据宽度和奇偶校验。串口通信实验2.波特率的产生波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,计算公式如下:UBRDIVn=(int)(ULK/(bpsx16))–1或者UBRDIVn=(int)(PLK/(bpsx16))–1其中:时钟选用 ULK(外部)还是PLK(内部)由UART控制寄存器UCONn[10]的状态决定。如果UCONn[10]=0,用PLK作为波特率发生,否则选用ULK做波特率发生。UBRDIVn的值必须在1到(216-1)之间。例如:ULK或者PLK等于40MHz,当波特率为115200时,UBRDIVn=(int)(40000000/(115200x16))-1=(int)(21.7)-1=21-1=20串口通信实验3.UART通信操作下面简略介绍UART操作:发送数据帧是可编程的。一个数据帧包含一个起始位,5到8个数据位,一个可选的奇偶校验位和1到2位停止位,停止位通过行控制寄存器ULCONn配置。与发送类似,接收帧也是可编程的。接收帧由一个起始位,5到8个数据位,一个可选的奇偶校验和1到2位行控制寄存器ULCONn里的停止位组成。接收器还可以检测溢出错,奇偶校验错,帧错误和传输中断,每一个错误均可以设置一个错误标志。溢出错误(Overrunerror)是指已接收到的数据在读取之前被新接收的数据覆盖。奇偶校验错是指接收器检测到的校验和与设置的不符。帧错误指没有接收到有效的停止位。传输中断表示接收数据RxDn保持逻辑0超过一帧的传输时间。在FIFO模式下,如果RxFIFO非空,而在3个字的传输时间内没有接收到数据,则产生超时。
UART
控制寄存器
1)UART行控制寄存器ULCONn该寄存器的第6
位决定是否使用红外模式,位5~3
决定校验方式,位2
决定停止位长度,位1和0决定每帧的数据位数。2)UART控制寄存器UCONn该寄存器决定UART的各种模式。UCONn[10]=1:ULK做比特率发生;0:PLK做比特率发生。UCONn[9]=1:Tx中断电平触发;0:Tx中断脉冲触发。UCONn[8]=1:Rx中断电平触发;0:Rx中断脉冲触发。UCONn[7]=1:接收超时中断允许;0:接收超时中断不允许。UCONn[6]=1:产生接收错误中断;0:不产生接收错误中断。UCONn[5]=1:发送直接传给接收方式(Loopback);0:正常模式。UCONn[4]=1:发送间断信号;0:正常模式发送。UCONn[3:2]: 发送模式选择00:不允许发送;01:中断或查询模式10:DMA0请求(UART0)DMA3请求(UART2)11:DMA1请求(UART1).UCONn[1:0]: 接收模式选择00:不允许接收01:中断或查询模式10:DMA0请求(UART0)DMA3请求(UART2)11:DMA1请求(UART1)
(001001000101)B=0x2453)UARTFIFO控制寄存器UFCONnUFCONn[7:6] =00:TxFIFO寄存器中有0个字节就触发中断01:TxFIFO寄存器中有4个字节就触发中断10:TxFIFO寄存器中有8个字节就触发中断11:TxFIFO寄存器中有0个字节就触发中断UFCONn[5:4]=00:RxFIFO寄存器中有0个字节就触发中断01:RxFIFO寄存器中有4个字节就触发中断10:RxFIFO寄存器中有8个字节就触发中断11:RxFIFO寄存器中有0个字节就触发中断UFCONn[3]:保留。UFCONn[2]=1:FIFO复位清零TxFIFO;0:FIFO复位不清零TxFIFOUFCONn[1]=1:FIFO复位清零RxFIFO;0:FIFO复位不清零RxFIFOUFCONn[0]=1:允许FIFO功能;0:不允许FIFO功能4)UARTMODEM控制寄存器
UMCONn(n=0
或1)UMCONn[7:5]保留,必须全为0UMCONn[4]=1:允许使用AFC(自动流控)模式;0:不允许使用AFCUMCONn[3:1]保留,必须全为0UMCONn[0]=1:激活nRTS;0:不激活nRTS5)发送寄存器UTXH和接收寄存器URXH这两个寄存器存放着发送和接收的数据,当然只有一个字节8位数据。需要注意的是在发生溢出错误的时候,接收的数据必须被读出来,否则会引发下次溢出错误。6)波特率分频寄存器UBRDIV。//UART0#definerULCON0(*(volatileunsigned*)0x50000000)//UART0Linecontrol#definerUCON0(*(volatileunsigned*)0x50000004)//UART0Control#definerUFCON0(*(volatileunsigned*)0x50000008)//UART0FIFOcontrol#definerUMCON0(*(volatileunsigned*)0x5000000c)//UART0Modemcontrol#definerUTRSTAT0(*(volatileunsigned*)0x50000010)//UART0Tx/Rxstatus#definerUERSTAT0(*(volatileunsigned*)0x50000014)//UART0Rxerrorstatus#definerUFSTAT0(*(volatileunsigned*)0x50000018)//UART0FIFOstatus#definerUMSTAT0(*(volatileunsigned*)0x5000001c)//UART0Modemstatus#definerUBRDIV0(*(volatileunsigned*)0x50000028)//UART0Baudratedivisor……#definerUTXH0(*(volatileunsignedchar*)0x50000023)//UART0TransmissionHold#definerURXH0(*(volatileunsignedchar*)0x50000027)//UART0Receivebuffer#definerUTXH1(*(volatileunsignedchar*)0x50004023)//UART1TransmissionHold#definerURXH1(*(volatileunsignedchar*)0x50004027)//UART1Receivebuffer#definerUTXH2(*(volatileunsignedchar*)0x50008023)//UART2TransmissionHold#definerURXH2(*(volatileunsignedchar*)0x50008027)//UART2Receivebuffer在2410addr.h文件中有关于UART单元各寄存器的定义:UART
初始化代码下面列出的两个函数,是我们本实验用到的两个主要函数,包括UART初始化,字符的接收函数,希望大家仔细阅读,理解每一行的含义
这几个函数可以在例程目录下\common\include\2410lib.c文件内找到。voiduart_init(intnMainClk,intnBaud,intnChannel){inti;if(nMainClk==0)nMainClk=PCLK;switch(nChannel){caseUART0: rUFCON0=0x0;//UARTchannel0FIFOcontrolregister,FIFOdisable rUMCON0=0x0;//UARTchaneel0MODEMcontrolregister,AFCdisable rULCON0=0x3;//Linecontrolregister:Normal,Noparity,1stop,8bits rUCON0=0x245; rUBRDIV0=((int)(nMainClk/16./nBaud+0.5)-1); //Baudratedivisiorregister0break;……下面是接收字符的实现函数:
charuart_getch(void){if(f_nWhichUart==0){while(!(rUTRSTAT0&0x1));//ReceivedatareadyreturnRdURXH0();}elseif(f_nWhichUart==1){while(!(rUTRSTAT1&0x1));//ReceivedatareadyreturnRdURXH1();}elseif(f_nWhichUart==2){while(!(rUTRSTAT2&0x1));//ReceivedatareadyreturnRdURXH2();}}下面是发送字符的实现函数:voidSendByte(intport,U8data){switch(port) { case0: while(!(rUTRSTAT0&0x4)); rUTXH0=data; break; case1: while(!(rUTRSTAT1&0x4)); rUTXH1=data; break; case2: while(!(rUTRSTAT2&0x4)); rUTXH2=data; break; default: break; }}voidScom_Init(intport,intparity,intstop,intdata,U32baud){ //Ports:GPH10GPH9GPH8GPH7GPH6GPH5GPH4GPH3GPH2GPH1GPH0//Signal:CLKOUT1CLKOUT0UCLKRXD2TXD2RXD1TXD1RXD0TXD0nRTS0nCTS0//Binary:10,1010,1010,1010,1010,1010 rGPHCON=0x2aaaaa;//设置H口
switch(port)
{ case0: DisableIrq(BIT_UART0); rUFCON0=0x0; rUMCON0=0x0; rULCON0=(parity<<3)|(stop<<2)|(data); //parity:0-无较验,4-奇较验,5-偶较验
//stop:0-1个停止位,1-2个停止位
//data:0-5位.1-6位,2-7位,3-8位
rUCON0=0x245; rUBRDIV0=((int)(PCLK/16./baud+0.5)-1); pISR_UART0=(U32)Scom0_ISR; rINTSUBMSK=rINTSUBMSK&(~(1<<0)); EnableIrq(BIT_UART0); break;
初始化实现函数RS232
接口电路
本教学实验平台的电路中,UART0串口电路如图所示,UART0只采用二根接线RXD0和TXD0,因此只能进行简单的数据传输及接收功能。UART0采用MAX3232作为电平转换器逻辑1(MARK)=-3V~-15V逻辑0(SPACE)=+3~+15V中断实验实验目的通过实验掌握ARM处理器的中断方式和中断处理。熟悉S3C2410X的中断控制寄存器的使用;了解不同中断触发方式对中断产生的影响;理解S3C2410X处理器的中断响应过程;熟练掌握如何进行ARM处理器中断处理的软件编程方法。实验设备硬件:EmbestEduKit-III实验平台,EmbestARM标准/增强型仿真器套件,PC机。软件:EmbestIDEforARM集成开发环境,Windows/XP。实验内容编写中断处理程序,实现:由UART0选择输入使用不同的中断触发方式,使能外部中断Eint0,11;在不同的中断触发方式下,使用按钮SB1202触发EINT0,同时在超级终端的主窗中显示外部中断号;在不同的中断触发方式下,使用按钮SB1203触发EINT11,同时在超级终端的主窗口中显示外部中断号;中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。实验原理S3C2410的中断控制器可以处理多达
56个中断源的中断请求。这些中断源可以是来自片内外设的中断,比如
DMA、UART、IIC等;也可以是处理器的外部中断输入引脚。在这些中断源中,部分中断源通过分支中断控制器来申请使用中断,这部分中断源包括(11个):
INT_ADC//AD转换中断INT_TC//触摸屏中断
INT_ERR2UART2 收发错误中断INT_TXD2UART2 发送中断INT_RXD2UART2 接收中断INT_ERR1UART1 收发错误中断INT_TXD1UART1
发送中断INT_RXD1UART1 接收中断INT_ERR0UART0 收发错误中断INT_TXD0UART0
发送中断INT_RXD0UART0 接收中断片内外设
UARTn中断和外部中断输入
EINTn是逻辑或的关系,它们共用一条中断请求线。中断优先级仲裁
若嵌入式系统中由多个中断源,则这些中断源必须要进行中断优先级的排列。所谓优先级,指的以下两层含义:·若有2个及2个以上的中断源同时提出中断请求,微处理器先响应哪个中断源,后响应哪个中断源。·若1个中断源提出中断请求,并得到响应后,又有1个中断源提出中断请求,后来的中断源能否中断前一个中断源的中断服务程序。S3C2410的中断系统实际上,S3C2410的中断系统分成两级,一级是控制内部外围I/O端口或部件、或者芯片外部中断引(EINTn)的中断控制;另一级是ARM920T核的异常中断控制,采用了固定向量中断方式。S3C2410芯片中的中断控制器可以支持56个中断源提出的中断请求
这些中断源由芯片内部的I/O端口或部件如DMA控制器、UART、IIC、RTC等,以及外部中断引脚提供。在这些中断源中,有些中断,如串行接口UARTn中断和外部中断EINTn中断对于中断控制器来说都是共用的。当S3C2410芯片的内部外围I/O端口或部件提出中断请求、或者芯片外部中断引脚(EINTn)收到中断请求时,中断控制器经过仲裁之后再请求ARM9核的FIQ或IRQ中断。S3C2410的中断系统逻辑图S3C2410芯片中断控制器支持的56个中断源,由于其中有些中断共用中断请求信号线,因此,实际中断请求信号有32个。这32个中断请求的优先级仲裁判决机制采用了中断优先级编码判断电路原理。其裁决逻辑由7个基本裁决器组成,其中6个一级裁决器和1个二级裁决器。S3C2410芯片的32个中断请求信号,在系统复位初始状态下,按照前图中由上到下的顺序,中断优先级由高到低排列,即EINT0中断优先级最高,INT_ADC中断优先级最低。S3C2410X中断源(1)S3C2410X中断源(2)中断控制寄存器用S3C2410的中断方式来控制I/O端口或部件操作时,除了要对I/O端口或部件的相应寄存器进行初始化设置外,还需对中断控制器的5个控制寄存器进行初始化设置。这5个寄存器是:源未决(挂起)寄存器、中断模式寄存器、屏蔽寄存器、优先级寄存器、中断未决(挂起)寄存器。
源未决(挂起)寄存器源未决寄存器(SRCPND)由32位构成,每一位与一个中断请求信号相关联。当某个中断源请求中断服务时,SRCPND寄存器的相应位被置为1,即首先在源未决寄存器中登记。因此,该寄存器记录了哪个中断源的请求在等待处理。注意:SRCPND寄存器的每一位由中断源自动设置,而不管中断屏蔽寄存器(INTMASK)中对应的位是否被屏蔽。此外,SRCPND寄存器也不受中断控制器的优先级逻辑影响。
源未决寄存器(SRCPND)当中断源发出中断请求的时候,就会置位源未决寄存器的相应位。反之,中断的未决寄存器的值为0。SRCPND=SRCPND源未决寄存器(SRCPND)源未决寄存器(SRCPND)中断模式寄存器(INTMOD)中断模式寄存器INTMOD共有32位,每一位对应着一个中断源,当中断源的模式位设置为1时,对应的中断会由ARM920T内核以FIQ模式来处理。相反的,当模式位设置为0时,中断会以IRQ模式来处理。中断控制寄存器中只有一个中断源可以被设置为FIQ模式,因此只能在紧急情况下使用FIQ。如果INTMOD寄存器把某个中断设为FIQ模式,FIQ中断不影响INTPND和INTOFFSET寄存器,因此,这两个寄存器只对IRQ模式中断有效。中断模式寄存器(INTMOD)中断模式寄存器(INTMOD)中断屏蔽寄存器(INTMSK)寄存器有32位,分别对应一个中断源。当中断源的屏蔽位设置为1时,CPU不响应该中断源的中断请求,反之,等于0时CPU能响应该中断源的中断请求。中断屏蔽寄存器(INTMSK)中断屏蔽寄存器(INTMSK)中断优先权寄存器(PRIORITY)S3C2410X中的优先级产生模块,包含7个单元,1个主单元和6个从单元。两个从优先级产生单元管理4个中断源,四个从优先级产生单元管理6个中断源。主优先级产生单元管理6个从单元。每一个从单元有4个可编程优先级中断源和2个固定优先级中断源。这4个中断源的优先级是由ARB_SEL和ARM_MODE决定的。另外2个固定优先级中断源在6个中断源中的优先级最低。中断优先权寄存器(PRIORITY)中断优先权寄存器(PRIORITY)优先级生成模块中断未决(挂起)寄存器(INTPND)INTPND寄存器是32位寄存器,寄存器中的每一位对应一个中断源。只有未被屏蔽且具有最高优先级、在源未决寄存器中等待处理的中断请求可以把其对应的中断未决位置1。因此,INTPND寄存器中只有一位可以设置为1,同时,中断控制器产生IRQ信号给ARM920T核。在IRQ的中断服务例程里,设计者可以读取该寄存器,从而获知哪个中断源被处理。当INTPND寄存器的一个未决位被设置为1,只要ARM920T核内部的状态寄存器PSR中的I标志和F标志被清零,对应的中断服务例程就可以开始执行。INTPND寄存器是可读写的,在中断服务例程里面必须清除中断未决位。
在编程操作INTPND寄存器时,应注意以下两点:·如果发生了FIQ模式的中断,那么INTPND寄存器中相应的位将不会置1,因为INTPND寄存器只对IRQ模式下的中断有效。
·清除INTPND寄存器的中断未决位时要谨慎。因为,INTPND寄存器是通过写数据位1而对未决位清零的。如果INTPND寄存器为1的位试图通过写数据位0来清除,那么INTPND和INTOFFSET寄存器在某些情况下可能会具有不可预料的值。因此,切记不要往INTPND寄存器中为1的位写数据位0。清除INTPND寄存器的未决位最简捷的方法就是将INTPND寄存器的值写回到INTPND寄存器里。即:rINTPND=rINTPND;中断未决寄存器(INTPND)中断未决寄存器(INTPND)外部中断控制寄存器EXTINTEXTINT0外部中断控制寄存器EXTINT用来设置外部中断的触发模式,共有3个:EXTINT0(INT0—7),EXTINT1(INT8—15),EXTINT2(INT9—23).中断编程模式S3C2410芯片的I/O端口或部件若采用中断方式控制操作时,其编程的内容实际上涉及四部分,既:·建立系统中断向量表,并且设置ARM920T核的程序状态寄存器CPSR中的F位和I位。一般情况下中断均需使用数据栈,因此,还需建立用户数据栈。这一部分内容对应的程序指令,通常编写在系统引导程序中·设置S3C2410芯片中56个中断源的中断向量。通常需要利用未决寄存器或地址偏移寄存器来计算,若中断号还对应有子中断(如中断号为5时,对应EINT8_23),需求出子中断的地址偏移。
·中断控制初始化。主要是初始化S3C2410芯片内部的中断控制的寄存器。针对某个具体的中断源,设置其中断控制模式、中断是否屏蔽、中断优先级等。中断向量表:#definepISR_EINT0 (*(unsigned*)(_ISR_STARTADDRESS+0x20))#definepISR_EINT1 (*(unsigned*)(_ISR_STARTADDRESS+0x24))#definepISR_EINT2 (*(unsigned*)(_ISR_STARTADDRESS+0x28))#definepISR_EINT3 (*(unsigned*)(_ISR_STARTADDRESS+0x2c))#definepISR_EINT4_7 (*(unsigned*)(_ISR_STARTADDRESS+0x30))#definepISR_EINT8_23 (*(unsigned*)(_ISR_STARTADDRESS+0x34))#definepISR_BAT_FLT (*(unsigned*)(_ISR_STARTADDRESS+0x3c))#definepISR_TICK (*(unsigned*)(_ISR_STARTADDRESS+0x40))#definepISR_TIMER0 (*(unsigned*)(_ISR_STARTADDRESS+0x48))#definepISR_TIMER1 (*(unsigned*)(_ISR_STARTADDRESS+0x4c))#definepISR_TIMER2 (*(unsigned*)(_ISR_STARTADDRESS+0x50))#definepISR_TIMER3 (*(unsigned*)(_ISR_STARTADDRESS+0x54))
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初等教育的教育评价与质量评估考核试卷
- 2024年企业间股权收购合同
- (2024版)车辆挂靠学校校车运营合同
- 三方合作协议合同模板
- 2024年保健品电子商务合同
- 家用小电器租赁合同模板
- 2024年企业财务咨询与管理服务合同
- 2024年农产品交易双方协议
- 沟通与销售技巧如何提高销售业绩考核试卷
- 医药制造业中的质量损失分析与改进考核试卷
- 律师无业承诺书(共3篇)
- SWITCH 勇者斗恶龙11S 金手指 版本:v1.0.3 最大金币 最大迷你奖章 32倍经验 最大攻击 所有材料
- 论思维可视化视域下的初中英语以读促写教学 论文
- 重度子痫前期、胎盘早剥急救演练
- 招聘会主持词开场白-主持词
- 建筑消防工程施工操作规程
- 项目现场余料与废料处理的管理规定
- GB/T 42461-2023信息安全技术网络安全服务成本度量指南
- 乡村振兴专题知识考试题库(核心600题)
- 大学生劳动教育PPT新时代大学生劳动教育教程全套完整教学课件
- (完整word版)扣字词汇124
评论
0/150
提交评论