嵌入式系统讲义_第1页
嵌入式系统讲义_第2页
嵌入式系统讲义_第3页
嵌入式系统讲义_第4页
嵌入式系统讲义_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 嵌入式系统概述1嵌入式系统定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2嵌入式处理器分类:嵌入式微处理器;嵌入式微控制器;嵌入式DSP处理器;嵌入式片上系统(SOC)。3常见嵌入式操作系统嵌入式Linux、Win CE、VxWorks、Nucleus、eCos、C/OS-II、uITRON、QNX4嵌入式实时操作系统的特性:切换时间和中断延迟时间确定 优先级中断和调度 抢占式调度 同步 第3章 ARM7体系结构1ARM处理器为32位RISC芯片。 RISC处理器的特点:大的、统一的寄存器文件;装载/保存结

2、构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作简单的寻址模式统一和固定长度的指令域,简化了指令的译码2ARM7TDMI-S含义:T-支持高密度16位的Thumb指令集D-支持片上调试M-支持64位乘法I-支持EmbededICE观察硬件S-ARM7TDMI 的可综合(synthesizable)版本(软核)3ARM7TDMI的流水线分3级,分别为:取指à译码à执行流水线上各指令的地址流水线工位描述ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器,执行移位和ALU

3、操作,寄存器被写回到寄存器组中4计算机结构说明:“冯·诺依曼” 结构:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域是统一的;“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。5ARM7TDMI两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的Thumb指令。6处理器状态切换;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R07.处理器模式用户模式、快中断模式、中断模式、管理模式、中止模式、未

4、定义模式和系统模式处理器模式说明备注 用户(usr)正常程序工作模式不能直接切换到其它模式 系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断(irq)用于通用中断处理IRQ异常响应时进入此模式 管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式8. ARM状态各模式下的寄存器A. 其中R0R7为未分组的寄存器,也就

5、是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。B. 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。C. 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令D. R14为链接寄存器(LR),在结构上有两个特殊功能:l 在每种模式下,模式自身的R14版本用于保存子程序返回地址;l 当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固

6、定偏移量)。E. 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。9. R15的限制正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。10.程序状态寄存器(CPSR)M4:0模式M4:0模式10000用户10111中止10001快中断11011未定义10010中断11111系统10011管理11. 异常入口/出口汇总异常或入口返回指令之前的状态备注ARM R14_xThumb R1

7、4_xBLMOV PC,R14PC+4PC+2 此处PC为BL,SWI,为定义的指令取指或预取指中止指令的地址SWIMOVS PC,R14_svcPC+4PC+2未定义的指令MOVS PC,R14_undPC+4PC+2预取指中止SUBS PC,R14_abt,#4PC+4PC+4快中断SUBS PC,R14_fiq,#4PC+4PC+4此处PC为由于FIQ或IRQ占先而没有被执行的指令的地址中断SUBS PC,R14_irq,#4PC+4PC+4数据中止SUBS PC,R14_abt,#8PC+8PC+8此处PC为产生数据中止的装载或保存指令的地址。 复位无复位时保存在R14_svc中的值不

8、可预知。 中断处理代码的开始部分和退出部分SUB LR,LR,#4;计算返回地址STMFD SP!,R0-R3,LR;保存使用到的寄存器. . .LDMFD SP!,R0-R3,PC;中断返回12. 异常向量地址异常类型进入时的模式进入时I的状态进入时F的状态0x0000 0000复位管理禁止禁止0x0000 0004未定义指令未定义IF0x0000 0008软件中断管理禁止F0x0000 000C中止(预取)中止IF0x0000 0010中止(数据)中止IF0x0000 0014保留保留0x0000 0018IRQ中断禁止F0x0000 001CFIQ快中断禁止禁止13.复位流程:l 强制M

9、4:0变为b10011(管理模式);l 置位CPSR中的I和F位;l 清零CPSR中的T位;l 强制PC从地址0x00开始对下一条指令进行取指;l 返回到ARM状态并恢复执行 。14存储器格式小端存储器系统:在小端格式中,高位数字存放在高位字节中。因此存储器系统字节0连接到数据线70。 大端存储器系统:在大端格式中,高位数字存放在低位字节中。因此存储器系统字节0连接到数据线3124。 第4章 ARM7TDMI(-S)指令系统1堆栈寻址§ 满递增:堆栈向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA、STMFA等; § 空递增:堆栈向上增长,堆栈指针指向堆栈上

10、的第一个空位置。指令如LDMEA、STMEA等; § 满递减:堆栈向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD、STMFD等;§ 空递减:堆栈向下增长,堆栈指针向堆栈下的第一个空位置。指令如LDMED、STMED等。 2.书写格式AREAExample1,CODE,READONLY ;声明代码段Example1 ENTRY ;标识程序入口 CODE32 ;声明32位ARM指令START MOVR0,#0 ;设置参数 MOVR1,#10LOOPBLADD_SUB ;调用子程序ADD_SUB BLOOP ;跳转到LOOPADD_SUB ADDSR0,R0,R

11、1 ;R0 = R0 + R1 MOVPC,LR ;子程序返回 END3.指令格式<opcode> <cond> S <Rd> ,<Rn>,<operand2> opcode:指令助记符;cond:执行条件;S:是否影响CPSR寄存器的值;Rd:目标寄存器; Rn:第1个操作数的寄存器;operand2:第2个操作数;4.条件码CMPR0,R1 ;R0与R1比较ADDHIR0,R0,#1 ;若R0>R1,则R0=R0+1ADDLSR1,R1,#1 ;若R01,则R1=R1+15.指令LDR Rd,addressing STR R

12、d, addressing LDMmode Rn!,reglist STMmode Rn!,reglist MOV Rd,operand2 ADD Rd, Rn, operand2 SUB Rd, Rn, operand2RSB Rd, Rn, operand2ADC Rd, Rn, operand2AND Rd, Rn, operand2ORR Rd, Rn, operand2EOR Rd, Rn, operand2BIC Rd, Rn, operand2CMP Rn, operand2TST Rn, operand2MUL Rd,Rm,RsB labelBL label启动代码分析: SV

13、C_STACK_LEGTH EQU 0FIQ_STACK_LEGTH EQU 0IRQ_STACK_LEGTH EQU 256ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH EQU 0NoInt EQU 0x80NoFIQ EQU 0x40USR32Mode EQU 0x10SVC32Mode EQU 0x13SYS32Mode EQU 0x1fIRQ32Mode EQU 0x12FIQ32Mode EQU 0x11 IMPORT _use_no_semihosting_swi;The imported labels IMPORT FIQ_Exception IMPO

14、RT _main IMPORT TargetResetInit ;The emported labels EXPORT bottom_of_heap EXPORT StackUsr EXPORT Reset EXPORT _user_initial_stackheap CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0xb9205f80 LDR P

15、C, PC, #-0xff0 LDR PC, FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_HandlerUndefined B UndefinedSoftwareInterrupt CMP R0, #4 LDRLO PC, PC, R0, LSL #2 MOVS PC,

16、 LRSwiFunction DCD IRQDisable ;0 DCD IRQEnable ;1 DCD FIQDisable ;2 DCD FIQEnable ;3IRQDisable MRS R0, SPSR ORR R0, R0, #NoInt MSR SPSR_c, R0 MOVS PC, LRIRQEnable MRS R0, SPSR BIC R0, R0, #NoInt MSR SPSR_c, R0 MOVS PC, LRFIQDisable MRS R0, SPSR ORR R0, R0, #NoFIQ MSR SPSR_c, R0 MOVS PC, LRFIQEnable

17、MRS R0, SPSR BIC R0, R0, #NoFIQ MSR SPSR_c, R0 MOVS PC, LRPrefetchAbort B PrefetchAbortDataAbort B DataAbortFIQ_Handler STMFD SP!, R0-R3, LR BL FIQ_Exception LDMFD SP!, R0-R3, LR SUBS PC, LR, #4InitStack MOV R0, LR MSR CPSR_c, #0xd3 LDR SP, StackSvc MSR CPSR_c, #0xd2 LDR SP, StackIrq MSR CPSR_c, #0x

18、d1 LDR SP, StackFiq MSR CPSR_c, #0xd7 LDR SP, StackAbt MSR CPSR_c, #0xdb LDR SP, StackUnd MSR CPSR_c, #0xdf LDR SP, =StackUsr MOV PC, R0ResetInit BL InitStack BL TargetResetInit B _main_user_initial_stackheap LDR r0,=bottom_of_heap MOV pc,lrStackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4StackI

19、rq DCD IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4StackFiq DCD FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4StackAbt DCD AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4StackUnd DCD UndtStackSpace + (UND_STACK_LEGTH - 1)* 4 AREA MyStacks, DATA, NOINIT, ALIGN=2SvcStackSpace SPACE SVC_STACK_LEGTH * 4 IrqStackSpace SP

20、ACE IRQ_STACK_LEGTH * 4 FiqStackSpace SPACE FIQ_STACK_LEGTH * 4 AbtStackSpace SPACE ABT_STACK_LEGTH * 4 UndtStackSpace SPACE UND_STACK_LEGTH * 4 AREA Heap, DATA, NOINITbottom_of_heap SPACE 1 AREA Stacks, DATA, NOINITStackUsr要点:1. 总体结构与符号定义2. 异常向量表3. B与LDR指令的区别问题4. 为什么要使用地址转义符5. 堆栈初始化6. 中断处理程序的预处理7.

21、程序出口第5章 LPC2000系列ARM硬件结构1存储器寻址3PLL时钟相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKFCCO / 2PFCCO / (2P*M)PLL控制寄存器(PLLCON):PLL配置寄存器(PLLCFG)PLL状态寄存器(PLLSETA):PLL馈送寄存器(PLLFEED):回路锁定后:FOSC = FCCO / (2P × M) FCLK = FOSC × M必须满足的条件:FOSC范围:10MHz25MHz; FCCLK范围:10MHz60MHz; FCCO范围:156MHz320MHz;4VPB分频器VPB分频寄存器(VP

22、BDIV):示例:PLLCON = 1;VPBDIV = 2;PLLCFG=(Fcclk/Fosc)-1)|(0<<5);PLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 << 10) = 0);PLLCON = 3;PLLFEED = 0xaa;PLLFEED = 0x55;6存储器映射存储器映射控制寄存器描述存储器映射控制重新映射前后地址转换前内核地址总线值MEMMAP值转换后存储器地址总线值0x000000000x0000003F000x7FFFE0000x7FFFE03F010x000000000x0000

23、003F100x400000000x4000003F110x800000000x8000003F0x000000400xFFFFFFFF任意对应不变7存储器加速模块MAM控制寄存器(MAMCR)MAM定时寄存器(MAMTIM)Ø 当改变MAM定时值时,必须先将MAMCR设置为0关闭MAM,然后将新值写入MAMTIM。最后将需要的操作模式的对应值(1或2)写入MAMCR,再次打开MAM;Ø 对于低于20MHz的系统时钟,MAMTIM设定为001,将Flash访问时间设定为1CCLK ;对于20MHz到40MHz之间的系统时钟,建议将Flash访问时间设定为2CCLK;高于40

24、MHz的系统时钟,建议使用3CCLK。MAMCR = 0;MAMTIM = 2;MAMCR = 2;8外部存储器控制器l EMC模块支持4个独立配置的存储器组,每个存储器组的总线宽度可设置为8、16或者32位,但是同一个存储器组的器件必须宽度相同。l 每个存储器组最大支持16MB寻址空间。l 支持字节定位读取。l 地址输出线是A23:0,其中地址位A25:24用于4个存储器组的译码(CS3:0)。Bank地址范围配置寄存器00x8000 00000x80FF FFFFBCFG010x8100 00000x81FF FFFFBCFG120x8200 00000x82FF FFFFBCFG230x

25、8300 00000x83FF FFFFBCFG3接口引脚描述引脚名类型引脚描述D31:0输入/输出外部存储器数据线A23:0输出外部存储器地址线OE输出输出使能信号,低有效BLS输出字节定位选择信号,低有效WE输出写使能信号,低有效CS3:0输出芯片选择信号,低有效存储器组配置寄存器03(BCFG03):位23:1615:11109:543:0功能保留WST2RBLEWST1保留IDCY位31:3029:2827262524功能ATMWBMWPWPERRBUSERR² IDCY:在两个存储器组之间切换访问时,为了避免器件间的总线竞争,需要插入空闲的CCLK周期,该域控制着这个周期数

26、。计算公式为:空闲CCLK周期数 IDCY +1;(IDCY的复位值为15)² WST1:一些慢速的外部存储器可能不能适应EMC最高速度的读操作,所以需要在读周期中插入若干个空闲等待周期,以降低读操作的速度。该域控制着读周期中插入的空闲CCLK周期数。计算公式为:读操作周期长度 WST1 + 3;(WST1的复位值为15)² RBLE:如果外部存储器的总线宽度为16或32位,那么读写操作是对总线上的2个或4个字节的数据同时进行的。某些存储器允许对总线上的某几个字节进行独立的读写操作,而不影响其它字节,这通过芯片的字节定位引脚实现。当RBLE位为1时使能字节定位功能,BLS3

27、:0在读写操作时输出低电平。当RBLE位为0时,禁止该功能。² WST2:和读操作类似,一些慢速的外部存储器可能不能适应EMC最高速度的写操作,所以需要在写周期中插入若干个空闲等待周期,以降低写操作的速度。该域控制着写周期中插入的空闲CCLK周期数。计算公式为:写操作周期长度 WST2 + 3;(WST2的复位值为15)² MW:该位控制相应存储器组的数据总线宽度, 定义如下:00 8位 01 16位 10 32位 11 保留Ø 如果存储器组配置成32位宽度,地址线A0和A1无用,可作为GPIO使用(由PINSEL2设置);Ø 如果存储器组配置成16位宽

28、度,地址线A0无用,可作为GPIO使用(由PINSEL2设置);Ø 如果存储器组配置成8位宽度,并且使能字节定位功能(RBLE=1),存储器的写信号由BLS0提供,否则由WE信号提供;Ø 同一寄存器组的器件宽度必须一致。XCLKCSOEWE/BLSAddrData有效数据有效地址写操作,共需3个周期9引脚连接模块LPC2000系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。PINSEL0 = (PINSEL0 & 0xFFF0FFFF) | (0x05 <<

29、; 16);12GPIO相关寄存器描述IOxPIN该寄存器反映了当前引脚的状态。IOxPIN中的x对应于某一个端口,如P1口对应于IO1PIN。所以芯片存在多少个端口,就有多少个IOxPIN分别与之对应。相关寄存器描述IOxDIR当引脚设置为GPIO输出模式时,可使用该寄存器控制引脚的方向。向某位写入1使对应引脚作为输出功能,写入0时作为输入功能。作为输入功能时,引脚处于高阻态。相关寄存器描述IOxSET IOxCLR当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出高/低电平。向某位写入1使对应引脚输出高/低电平。写入0无效。13UART0接收/发送器保持寄存器通过读取U0RBR寄存器

30、可以将接收FIFO中最早接收到的字节读出,当FIFO中不再包含有效数据时,该寄存器反映接收到的最后一个有效字节数据。接收的数据不足8位时,高位用0填充。写入U0THR寄存器的值将是发送FIFO中的最高字节。访问该寄存器时,U0LCR的除数锁存访问位(DLAB)必须为0。ü 注意: U0RBR只读。访问该寄存器时,U0LCR的除数锁存访问位(DLAB)必须为0。ü 注意: U0THR只写。它的地址与U0RBR相同,通过读/写操作予以区分。除数锁存寄存器这两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:BaudRate = FPCLK /

31、(U0DLM,U0DLL×16)ü 注意:由于U0DLL、U0DLM寄存器与其它寄存器的地址重叠,所以在访问它们时,U0LCR的除数锁存访问位(DLAB)必须为1。线状态控制寄存器(U0LCR)线状态寄存器(U0LSR)PINSEL0 = 0x00000005;U0LCR = 0x83;Fdiv = (Fpclk / 16) / UART_BPS;U0DLM = Fdiv / 256;U0LLM = Fdiv % 256;U0LCR = 0x03;U0THR = data;while(U0LSR & 0x40) = 0);while(U0LSR & 0x01

32、) = 0);rcv_data = U0RBR;14I2C接口I2C接口是Philips推出的一种串行总线方式,用于IC器件之间的通信。它通过SDA和SCL两根线在连到总线上的器件之间传送信息,并通过软件寻址识别每个器件,而不需要片选线。 I2C接口的标准传输速率为100Kbit/s,最高传输速率可达400Kbit/s。起始信号结束信号SDASCLSP发送起始信号后传送的第一字节数据具有特别的意义,其中前七位为从机地址,最后一位为读写方向位(0表示写,1表示读)SDASCL应答信号非应答信号AALPC2000在I2C通信中可以配置为主控器也可以作为被控器,那么它就具有4种操作模式:主发送模式、

33、主接收模式、从发送模式和从接收模式。S从器件地址WA数据A数据A/ APS从器件地址RA数据A数据AP15. SPI接口SPI是一种全双工的同步串行接口,一个SPI总线可以连接多个主机和多个从机。在同一时刻只允许一个主机操作总线,并且同时只能和一个从机通信。引脚名称类型描述SCK输入/输出串行时钟,用于同步SPI接口间数据传输的时钟信号。该时钟信号总是由主机输出。SSEL输入从机选择,SPI从机选择信号是一个低有效信号,用于指示被选择参与数据传输的从机。每个从机都有各自特定的从机选择输入信号。MISO输入/输出主入从出,MISO信号是一个单向的信号,它将数据由从机传输到主机。MOSI输入/输出

34、主出从入,MOSI信号是一个单向的信号,它将数据从主机传输到从机。SPI传输方式:四种时钟信号极性0 极性1时钟相位为0 时钟前沿数据采样 时钟后沿数据输出时钟相位为1 时钟前沿数据输出 时钟后沿数据采样15定时器0预分频计数器TxPC定时器计数器TxTC预分频寄存器TxPR定时器控制TxTCR中断标志寄存器TxIRFpclkTxPR寄存器为32为寄存器,该寄存器指定了预分频计数器的最大值。TxPC寄存器为32为寄存器。预分频计数器每个pclk周期加1。当其到达预分频寄存器中保存的值时,定时器计数器加1,预分频计数器在下个pclk周期复位。当预分频计数器到达计数的上限时,定时器计数器寄存器(T

35、xTC)加1。TC从0x00000000计数一直到0xFFFFFFFF,然后翻转至0,除非中途被复位。计数值翻转不会引起中断。定时器控制寄存器TxTCR匹配控制MCR匹配值MR0MR3匹配输出EMR定时器计数器TC匹配功能寄存器(MCR)匹配寄存器(MR0MR3)值与定时器计数值相比较,当两个值相等时自动触发在MCR寄存器中设置的动作。匹配功能寄存器(EMR)捕获控制CCR捕获寄存器CR0CR3定时器计数器TC捕获功能寄存器(CCR)每个捕获寄存器(CRx)都与一个或几个器件管脚相关联。当管脚发生特定的事件时,可将定时器计数值装入该寄存器。捕获控制寄存器的设定决定捕获功能是否使能,以及捕获事件

36、在管脚的上升沿、下降沿或是双边沿发生。 T0TC = 0;T0PR = 0;while(IO0PIN & 0x01) != 0);T0TCR = 0x01;while(IO0PIN & 0x01) = 0);T0TCR = 0x00;time = T0TC;PINSEL0 = 0x00000800;T0TC = 0;T0PR = 0;T0MCR = 0x01;T0EMR = 0xC0;T0MR1 = 5000;T0TCR = 0x01;16. AD转换器ADDRA/D转换控制A/D数据寄存器ADCRA/D控制寄存器FpclkAD转换时钟VICAIN0AIN1AIN7引脚名称类型

37、引脚描述AIN7AIN0输入模拟输入。A/D转换器单元可分时测量这8个引脚上的输入信号电压。即使这些引脚设置为GPIO功能,仍可以使用A/D转换器部件。V3A,VSSA电源模拟电源和地。它们分别与标称的V3和VSSD的电压相同,但为了降低噪声和出错几率,两者应当隔离。转换器的VrefP和VrefN信号在内部与这两个电源信号相连。CLKDIV:将VPB时钟(PCLK)进行分频,得到AD转换时钟。分频后的时钟必须小于或等于4.5MHz。通常将CLKDIV编程为允许的最小值,以获得4.5MHz或稍低于4.5MHz的时钟。A/D转换器时钟 PCLK / ( CLKDIV + 1)V/VddA:当DON

38、E位为1时,该字段包含对SEL字段选中的Ain脚的转换结果,为一个二进制数。 转换结果为0时,表示Ain引脚电平小于、等于或接近于VSSA。为0x3FF时,表示Ain引脚电平等于、大于或接近于VddA。输入电压计算公式为:Vin = 结果×(VSSA / 0x3FF)PINSEL1 = (PINSEL1 & 0xFC3FFFFF) | 0x00400000; ADCR = (0x00 << 22) | / TEST1:0 (0x01 << 21) | / PDN (0x00 << 16) | / BUREST (Fpclk/ADCLK +

39、1) << 8) | / CLKDIV (0x01 << 0); / SELADCR |= (1 << 24);While(ADDR & 0x80000000) != 0);ADCData = (ADDR >> 6) & 0x3FF; 16看门狗看门狗模式寄存器WDMODWDEN:看门狗中断使能位,该位只能置位。该位置位后,将使能看门狗。一旦该位置位,软件无法将其清零。只有外部复位或看门狗定时器溢出能将其清零。WDRESET:看门狗复位使能位,该位只能软件清除。该位置位后,看门狗溢出将引起复位。一旦该位置位,软件无法将其清零。只有

40、外部复位或看门狗定时器溢出能将其清零。WDTOF:看门狗超时标志WDINT:看门狗中断标志。当看门狗发生超时,该位置位。该标志不能由软件清零,只能通过外部复位或者看门狗复位清零。ü 注意:将WDEN置位后只是使能WDT,但没有启动WDT,当第一次喂狗操作时才启动WDT。WDTC决定看门狗超时值,当喂狗时序产生时,该寄存器的内容重新装入看门狗定时器。该寄存器的复位值为0xFF,即使写入更小的值,也会装入0xFF。溢出最小时间:tpclk×0xFF×4溢出最大时间:tpclk×0xFFFFFFFF×4WDFEED:向该寄存器写入0xAA,然后写入0x55会使WDTC的值重新装入看门狗定时器。在看门狗能够产生中断/复位之前,即看门狗溢出之前,必须完成一次有效的喂狗时序。ü 注意:如果喂狗时序不正确,将在喂狗之后的第二个PCLK周期产生看门狗复位。WDTC = 0x10000;WDMOD = 0x03;WDFEED = 0xAA;WDFEED = 0x55;嵌入式实时操作系统uc/os-II1. 概念实时操作系统(RTOS)是指当外界

温馨提示

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

评论

0/150

提交评论