嵌入式电子系统电子课件教案-第4讲-ARM处理器综述、开发与仿真_第1页
嵌入式电子系统电子课件教案-第4讲-ARM处理器综述、开发与仿真_第2页
嵌入式电子系统电子课件教案-第4讲-ARM处理器综述、开发与仿真_第3页
嵌入式电子系统电子课件教案-第4讲-ARM处理器综述、开发与仿真_第4页
嵌入式电子系统电子课件教案-第4讲-ARM处理器综述、开发与仿真_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1ARM处理器综述、开发及仿真(二)嵌入式电子系统学术沙龙内容提要1.本次课目标内核分类程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结21.本次课目标了解ARM内核分类、ARM开发流程及开发环境基础知识。3学术沙龙内容提要1.本次课目标内核分类程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结42.

ARM内核分类2.1ARM内核的发展2.2ARM72.3ARM92.4ARM102.5ARM1152.1ARM内核的发展6性能ARM处理器的性能及工作速度发展概况72.2ARM7

ARM7处理器核采用了3级流水线结构,指令执行分为取指、译码和执行等3个阶段。8ARM7TDMI

ARM7TDMI-S

ARM7EJARM720TARM7核ARMv4TThumb指令集嵌入式ICE-RTETM7接口ARM7核ARMv4TThumb指令集嵌入式ICE-RTETM7接口ARM7核ARMv5TEJThumb指令集嵌入式ICE-RTETM9接口Jazelle扩充DSP扩充ARM7核ARMv4TThumb指令集嵌入式ICE-RTETM7接口MMU8KBCacheAHB接口T具有16位压缩指令集Thumb。在ARMv4中采用Thumbv1版,在ARMv5中采用Thumbv2版;D支持在片上调试(OnChipDebug);M增强型乘法器,可以执行32bit×32bit得到64bit乘积的乘法运算和32bit×32bit+64bit得到64bit结果的累加乘运算;S可综合的(Synthesizable)核;10

I嵌入式ICE(InCircuitEmulating)硬件逻辑,支持嵌入式软件调试时的软硬件断点的设置;E增强型DSP指令。在这类处理器的指令集中,扩展了典型的数字信号处理所需的DSP指令;JJazeller功能,增强了执行Java代码的功能。11片上调试片上调试,又称为OCD,是CPU芯片提供的程序调试功能,该方式的主要优点是不占用目标机的资源,调试环境和最终程序运行环境基本一致,支持软硬件断点和跟踪。目前常用的OCD有BDM(BackgroundDebuggingMode)方式,JTAG(JointTeseActionGroup)方式和OnCE(OnChipEmuiation,其实质是BDM和JTAG的一种融合方式),其中JTAG是主流的OCD方式,ARM、MIPS和PowerPC等嵌入式处理器都采用不同种类的增强JTAG方式。12 ARM720T是将ARM7TDMI与8KB混合数据指令Cache、写缓冲器和存储器管理单元MMU(MemoryManagementUnit)集成在一个单片上的32位通用处理器。13

ARM7T和ARM7EFamilyUnifiedCache内存管理流水线级别ThumbDSPJazelleARM7TDMI无无3有无无ARM7TDMI-S无无3有无无ARM710T/720T8kMMU3有无无ARM740T8k或4kProtectionUnit3有无无ARM7EJ-S无无3有有有2.3ARM9

ARM9内核采用了五级流水线、提供的哈佛结构、全性能的MMU单元、可配置的数据Cache和可分立和指令和数据高速AHB接口。1617五级流水线 ARM920T处理器使用流水线来增加处理器指令流的速度。这样可以使几个操作同时进行,并使处理和存储器系统连续操作,能提供的指令执行速度。流水线使用5个阶段,因此指令分5个阶段执行:取址→译码→执行→存储→写。1819下一个pc指令Cache+4指令译码寄存器堆乘+1ALUMUX字节复制数据Cache移位/符号扩展寄存器写移位pc+4pc+8后变址前变址Load/Store取指译码寄存器移位执行缓冲数据回写ARM9FamilyCache内存管理流水线级别ThumbDSPJazelleARM9TDMI无无5有无无ARM920T16K/16kMMU5有无无ARM922T8k/8kMMU5有无无ARM940T4k/4kProtectionUnit5有无无 ARM10处理器核采用哈佛结构和六级流水线,处理器核内部数据总线为64位,以及双64位的AHB总线接口、并行的Load/Store单元,极大地提高了ARM10数据处理能力和工作速度。ARM10的指令执行速度为。21ARM10Family22Cache内存管理流水线级别ThumbDSPJazelleARM10E无无6有有无ARM1020E32k/32kMMU6有有无ARM1022E16k/16kMMU6有有无ARM10EJ-S无无6有有有ARM1026EJ-S0,4-128k/0,4-128kMMU6有有有ARM10TDMI无无6有无无ARM1020T32k/32kMMU6有无无

ARM11系列采用8级流水线操作,个别处理器采用9级流水线(例如ARM1156T2(F)-S),Load-Store单元和算术运算单元分别具有独立的流水线,并具有转移预测和前向数据通道,可以有效地提高流水线操作的效率。23ARM11支持多处理器系统,个别产品还集成了浮点处理器(以后缀F表示)。ARM11系列包括ARM1136J(F)-S、ARM1156T2(F)-S和ARM1176JZ(F)-S。后缀T2表示Thumb-2指令集。24ARM11Family25Cache内存管理流水线级别ThumbDSPJazelle浮点运算ARM1136J-S4-64kMMU8有有有无ARM1136JF-S4-64kMMU8有有有有ARM1156T2-S可配置9Thumb-2有无无ARM1156T2F-S可配置9Thumb-2有无有学术沙龙内容提要1.本次课目标2.

ARM内核分类3.ARM程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结263.ARM程序设计基础ARM体系结构支持C/C++及其与汇编语言的混合编程。初始化部分用汇编语言完成;主要编程任务一般用C/C++完成。程序执行时首先完成初始化过程再跳转到C/C++程序代码中两者一般没有参数的传递,也没有频繁的相互调用27系统的初始化过程定义程序入口点设置异常向量初始化存储器系统初始化堆栈指针寄存器28初始化临界IO设备初始化C代码的运行环境改变处理器的运行模式和状态使能中断进入C代码运行29系统的初始化过程基于ARM微处理器的系统一般比较复杂,多数硬件模块是可以配置的(Configurable),需要明确设置为特定的工作状态。在用户主程序运行之前,需要一段专门的代码来完成对系统的初始化工作,这段代码一般称为Bootloader。30初始化代码直接对ARM微处理器内核及硬件控制器编程,多采用汇编语言,初始化代码一般包含如下典型任务:定义程序入口点设置异常向量31初始化存储器系统初始化堆栈指针寄存器初始化临界IO设备初始化C代码的运行环境改变处理器的运行模式和状态使能中断进入C代码运行32定义程序入口点初始化代码必须定义整个程序的入口点(EntryPoint)采用汇编伪指令Entry指定33设置异常向量ARM微处理器架构要求异常向量表必须位于从0X0地址开始的连续32(8×4)个字节的空间内。34异常向量表35地址异常类型进入时的模式进入时I的状态进入时F的状态0x00000000复位管理禁止禁止0x00000004未定义指令未定义IF0x00000008软件中断管理禁止F0x0000000C中止(预取)中止IF0x00000010中止(数据)中止IF0x00000014保留保留——0x00000018IRQ中断禁止F0x0000001CFIQ快中断禁止禁止注:表中的I和F表示不对该位有影响,保留原来的值

当一个异常发生时,ARM微处理器强制把PC指针置为异常向量表中相应的位置。异常向量表中每个异常只占用一个字的存储空间,刚好放一条ARM指令,这条指令通常是跳转指令,使程序从异常向量表中跳转到真正的异常处理程序。36AREAInit,CODE,READONLYENTRYBReset_HandlerBUndef_HandlerBSWI_HandlerBPreAbort_HandlerBDataAbort_HandlerB.BIRQ_HandlerBFIQ_HandlerReset_Handler …37初始化存储器系统初始化存储器系统主要包括对系统存储控制器的初始化MMU初始化ARM微处理器的理论寻址能力位4GB,一般需要外接大容量存储器,需要采用专门的存储控制器来控制其读写操作。38存储器控制器不是ARM微处理器架构的一部分,不同的ARM芯片其设计各不相同,初始化代码也存在差异。但一般都包含两个方面:存储器类型时序的配置基于ARM的微处理器系统常采用的存储器FlashSRAMDRAM39Flash、SRAM均为静态存储器,可以共用存储器控制器端口;DRAM需要动态刷新、地址复用等,需要专门的存储器控制器端口。(某些ARM芯片内部没有DRAM控制逻辑,不能直接与DRAM接口,如AT9140800系列);一般采用片内特殊功能寄存器控制。40存储器的地址分配地址分配:将物理存储器定位在4GB寻址空间的哪个具体位置;ARM微处理器系统采用两种方式来完成地址分配:固定方式,如S3C2410,相对简单;重映射(Remap),物理存储器的地址不固定,如S3C4510B,较复杂。41重映射(Remap)

系统复位后,PC指针初始化为0x0,因此要求Flash(或其他类型ROM)起始地址为0x0,但由于Flash的访问速度大大低于RAM,每次产生异常后,都要从Flash的异常向量表跳转到响应的处理程序,会影响异常的响应速度,因此,系统采用重映射方法,在系统完成初始化后,将RAM地址置为0x0,而将ROM置为其他地址。42初始化堆栈指针寄存器由于ARM微处理器支持7种处理器模式,每种模式下的堆栈指针寄存器都是独立的(System和User模式使用同一个SP),根据系统使用的中断和异常的情况,需要初始化需要的堆栈指针寄存器SP。由于上电复位后,系统进入管理模式,因此管理模式下的SP必须初始化。4344寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断ARM状态各模式下可以访问的寄存器sp_IRQ,sp_FIQ,sp_ABT,sp_UND,根据系统需要进行初始化;sp_USR可以在进入用户模式后,准备开始执行应用程序时对其初始化。45初始化即给SP寄存器定义一个堆栈地址方法:改变CPSR的状态位,使处理器进入不同的运行模式,然后给SP赋值;sp_USR最后初始化,因为进入用户模式后,不能通过改变CPSR的状态位进入其他模式。4647NZCV——IM0M1M2M3M4TF—...313029282726876543210条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVIM0M1M2M3M4TF48M[4:0]模式可见的Thumb状态寄存器可见的ARM状态寄存器10000用户R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR10001快中断R0~R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiqR0~R7,R8_fiq~R14_fiq,PC,CPSR,SPSR_fiq10010中断R0~R7,SP_irq,LR_irq,PC,CPSR,SPSR_fiqR0~R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq10011管理R0~R7,SP_svc,LR_svc,PC,CPSR,SPSR_svcR0~R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc10111中止R0~R7,SP_abt,LR_abt,PC,CPSR,SPSR_abtR0~R12,R13_abt,R14_abt,PC,CPSR,SPSR_abt11011未定义R0~R7,SP_und,LR_und,PC,CPSR,SPSR_undR0~R12,R13_und,R14_und,PC,CPSR,SPSR_und11111系统R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSRCPSR模式位设置表MODEMASKEQU0x1FSVCMODEEQU0x13IRQMODEEQU0x12…MRS

R0,CPSR ;将CPSR读到R0中BICR0,R0,#MODEMASK;将CPSR中的模式位清零ORRR1,R0,#SVCMODE;设置R0到管理模式MSRCPSR_cxsf,R1;切换到管理模式LDRSP,=SVCStack;设置该模式下的堆栈49初始化临界IO设备临界(Critical)IO设备是指那些在使能中断前必须进行初始化的设备。如果不对其进行初始化,它们可能在中断使能后产生一些没有意义的中断请求。50初始化C代码的运行环境程序代码通过编译、链接后生成可执行映像文件映像文件通常包括三部分:RO、RW、ZIRO:包含程序代码和只读数据RW:包含定义并初始化的全局变量ZI:包含定义但未初始化的全局变量51可执行映像文件最初总是放在Flash或其他类型的ROM中RO部分既可以在Flash中运行,也可以在高速RAM中运行;RW和ZI部分必须复制到RAM中。初始化C代码的运行环境,就是将以上部分从Flash中复制到RAM的过程。52改变处理器的运行模式和状态ARM微处理器上电复位后,默认模式为管理模式(SupervisorMode),而在初始化代码中需要切换到其他模式进行诸如堆栈设置之类的操作。53系统初始化过程中处理器模式的变化如下:54管理模式多种特权模式切换应用程序运行模式由于ARM微处理器复位后总是处于ARM状态,如果应用程序为Thumb指令,必须将微处理器切换到Thumb状态。55使能中断如果系统需要使用中断,初始化代码应该使能中断。可通过清除CPSR中的中断禁止位来完成。56进入C代码运行系统初始化后,就可以进入C代码运行。方法一:IMPORTC_Entry;定义一个外部标号,一般不用mainBC_Entry;跳转到C代码另一种方法IMPORT_mainB_main57_main是编译器提供的一个函数,完成库函数的初始化和对C代码运行环境的初始化,最后自动跳转到main()函数执行,此时,应用程序的主函数名必须是main()。可以根据需要选择两种之一,如果想让系统自动完成初始化过程,可以使用main()函数,如果所有初始化都由自己编写程序完成,可以自定义主函数名。58学术沙龙内容提要1.本次课目标2.

ARM内核分类3.ARM程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结594RealViewMDK简介4.1RealViewMDK概述4.2RealViewMDK特性产品模块介绍仿真器60注意:进行ARM开发的Keil(RealViewMDK)与进行单片机开发的Keil(KeilC)有不同的安装程序。614.1RealViewMDK概述

RealViewMDK开发套件源自德国Keil公司,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealViewMDK集成了业内最领先的技术,包括μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能。624.2RealViewMDK特性启动代码生成向导,自动引导启动代码和系统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越的门槛。RealViewMDK的μVision3工具可以自动生成完善的启动代码,并提供图形化的窗口,可以轻松修改。能大大节省时间,提高开发效率。63软件模拟器,完全脱离硬件的软件开发过程RealViewMDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程仿真、片内所有外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。64

性能分析器看得更远、看得更细、看得更清RealViewMDK的性能分析器用于辅助查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导进行代码优化。通常这些功能只有价值数千美元的昂贵的Trace工具才能提供。65

Cortex-M3支持RealViewMDK支持的Cortex-M3核是ARM公司最新推出的针对微控制器应用的内核,它提供业界领先的高性能和低成本的解决方案,未来几年将成为嵌入式系统应用的热点和主流。66业界优秀的ARM编译器RealView编译器,代码更小,性能更高RealViewMDK的RealView编译器与比较:代码密度:比编译的代码尺寸小10%;代码性能:比编译的代码性能高20%。67配备ULINK2仿真器+Flash编程模块,轻松实现Flash烧写RealViewMDK无需寻求第三方编程软件与硬件支持,通过配套的ULINK2仿真器与Flash编程工具,轻松实现CPU片内Flash、外扩Flash烧写,并支持用户自行添加Flash编程算法;而且能支持Flash整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能,轻松方便。68高性价比RealViewMDK保留了RealViewMDK国际版的所有卓越性能,而产品价格和国内普通开发工具的价格相差无几。更贴身的服务RealViewMDK用户将享受到专业的本地化的技术支持和服务,包括、Email、论坛、中文技术文档等,这将为国内工程师们开发出更有竞争力的产品提供更多的助力。69产品模块介绍μVision3IDEμVisionIDE在全球拥有庞大的用户群,超过10万开发工程师在使用Keil开发工具。不管以前是用8位、16位MCU,还是现在改用ARM32位处理器,μVisionIDE简单易用,容易立马上手。7071μVision3IDE主要特性:功能强大的源代码编辑器;可根据开发工具配置的设备数据库;用于创建和维护工程的工程管理器;集汇编、编译和链接过程于一体的编译工具;用于设置开发工具配置的对话框;72真正集成高速CPU及片上外设模拟器的源码级调试器;高级GDI接口,可用于目标硬件的软件调试和ULINK2仿真器的连接;用于下载应用程序到FlashROM中的Flash编程器;完善的开发工具手册、设备数据手册和用户向导。73启动代码配置向导μVision3IDE的启动代码配置向导将各个所需配置的功能模块以对话框方式展示,附加的提示说明,可以快速轻松地做出选择,生成完善的启动代码,免除手工写几百行汇编程序的痛苦。7475μVision3设备模拟器μVision3设备模拟器的功能强大,能模拟整个MCU的行为。在没有硬件或对目标MCU没有更深的了解的情况下,仍然可以立即开始开发软件。高效指令集仿真中断仿真片内外围设备仿真

ADC,DAC,TimersUART,CAN,I2C…

外部信号和I/O仿真76性能分析器性能分析器可给所有的MCU实现如程序运行时间统计、被调用次数统计、代码覆盖率统计等高端功能,而这些功能对于快速定位死区代码,帮助优化分析等起了关键的作用。7778RealView编译器(RVCT)

RealViewMDK集成的RealView编译器(跟RVDS使用一样的编译器),是业界最优秀的编译器,它能使代码容量更小、执行效率更高;使应用程序运行更快、系统成本更低。7980MicroLib为进一步改进基于ARM处理器的应用代码密度,RealViewMDK采用了新型microlibC库(用于C的ISO标准运行时库的一个子集),并将其代码映像降低最小以满足嵌入式系统应用的需求。MicrolibC库可将运行时库代码大大降低。8182仿真器ULINK2是ARM公司最新推出的配套RealViewMDK使用的仿真器,是ULink仿真器的升级版本。ULINK2不仅具有ULINK仿真器的所有功能,还增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealViewMDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chipJTAG,SWD和OCDS)、Flash编程…8384ULINK2新特点标准WindowsUSB驱动支持ULINK2即插即用;支持基于ARMCortex-M3的串行调试;支持程序运行期间的存储器读写、终端仿真和串行调试输出;支持10-pin连接线(也支持20-pin连接线)。85ULINK2主要功能:

USB通讯接口高速下载用户代码存储区域/寄存器查看快速单步程序运行多种程序断点片内Flash编程86ULINK2技术参数87特性

RAM断点

UnlimitedROM断点(ARM7/9)2maxROM断点(Cortex-M3)6maxExecution断点(SetWhileExecuting)√Access断点(ARM7/9)2max(R/WOnly,WithValue)Access断点(Cortex-M3)4max(WithValue)TraceHistory×Real-TimeAgent√JTAG时钟

<=10MHzJTAGRTCK支持(ReturnClock)√MemoryR/W(Bytes/sec)≈28KFlashR/W(Bytes/sec)≈25KSingle-Step(Fast)(Instructions/sec)≈50ULINK2支持的处理器88ARM7/ARM9/Cortex-M3学术沙龙内容提要1.本次课目标2.

ARM内核分类3.ARM程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结89系列ARM芯片GPIO简介5.1GPIO(通用I/O口)简介5.2IO口连接模块简介5.3GPIO基本控制寄存器原理图如何控制LED?如何编程?905.1GPIO(通用I/O口)简介LPC2000有多个通用I/O口,分别为P0[31:0]和P1[31:16]。由于IO口和其他功能复用,需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。当管脚选择GPIO功能时,有三个寄存器用于控制GPIO的使用,IOSET、IOCLR和IOPIN。915.2IO口连接模块简介有些管口除了作为普通IO口以外,还具有复用功能。比如串行口功能、PWM功能等等。要使用这些功能必须正确的设置IO连接模块PINSEL0、PINSEL1、PINSEL2。92PINSEL0、PINSEL1、PINSEL2选择引脚功能PINSEL0寄存器(位0—位31),分别对应于引脚引脚PINSEL1寄存器(位0—位31),分别对应于引脚引脚每两位对应一个引脚,因为一个引脚有4种功能,所以要两位对应一个引脚。9394PINSEL0中所有的位与PINSEL1其它位的复位值均为00,它们均默认为首选功能,即就是通常的GPIO。所有I/O口在复位后均默认为输入状态,IODIR寄存器中的方向控制位只有在引脚选择为GPIO功能时才有效。对于其它功能,方向是自动控制的。955.3GPIO基本控制寄存器LPC2100系列的ARM用四个寄存器控制IO口。引脚值寄存器IO0PIN和IO1PIN方向寄存器IO0DIR和IO1DIR输出置位寄存器IO0SET和IO1SET输出清零寄存器IO0CLR和IO1CLR96引脚值寄存器(输入寄存器)IO0PIN(32位)对应~(32个IO口)的引脚状态。无论IO口处于输入、输出或特殊功能状态,IO0PIN都能读回IO口引脚上的电平。IO1PIN[31:0]:存储的当前值(forread)97方向寄存器IO0DIR(IO1DIR)32位设置IO口方向的寄存器对应~(32个IO口)0:输入1:输出98输出置位寄存器(输出1)IO0SET(IO1SET)32位输出状态时,置1可输出高电平。置0无效。对应~(32个IO口)99输出清零寄存器(输出0)IO0CLR(IO1CLR)

32位输出状态时,置1可输出低电平。置0无效。对应~(32个IO口)

100原理图101如何控制LED?102PINSEL0=0; /*设置引脚为GPIO*/IO0DIR=0x00000001; /*将设置为输出*/IO0SET=0x00000001; /*将置1,也就是让led灭*/IO0CLR=0x00000001;/*将清0,也就是让led亮*/103如何编程intmain(void){PINSEL0=0; /*设置引脚为GPIO*/IO0DIR=0x00000001; /*将设置为输出*/IO0SET=0x00000001; /*将置1,也就是让led灭*/while(1){ IO0CLR=0x00000001; delay(); IO0SET=0x00000001; delay();}}104voiddelay(void){unsignedvolatilelongi,j;for(i=0;i<60000;i++)for(j=0;j<5;j++);}105学术沙龙内容提要1.本次课目标2.

ARM内核分类3.ARM程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结1066RealViewMDK开发流程Step1.新建工程Step2.选择ARM芯片型号Step3.为工程添加文件Step4.新建main函数文件Step5.添加C文件到工程Step6.设置工程选项Step7.编译生成Hex文件Step8.修改生成的Hex文件Step9.验证Proteus的仿真效果107Step1.新建工程108Step2.选择ARM芯片型号109Step3.为工程添加文件110Step4.新建main函数文件111Step5.添加C文件到工程112Step6.设置工程选项113Step7.编译生成Hex文件114Step8.修改生成的Hex文件115Step9.验证Proteus的仿真效果116学术沙龙内容提要1.本次课目标2.

ARM内核分类3.ARM程序设计基础4.RealViewMDK简介系列ARM芯片GPIO简介6.RealViewMDK开发流程7.其他常见ARM开发环境及工具8.小结1177.其他常见ARM开发环境及工具7.2ARMREALVIEWDEVELOPERSUITE7.3IAREWARM7.4WINARM

7.5H-JTAG调试代理7.6J-LINK7.7U-LINK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论