版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于本手 第1章概 Cortex-M3的层次的选 中 第2章编程模型(programmer's 和用户 寄存 数据类 指令 第3章系统控 第4章器映 直接bit-band ROM器 第5章异 异常类 优先 堆 占 堆 迟 退 复 预期的启动顺序(bootup 激活等级(activation 流程 占 返 第6章时钟和复 Cortex-M3时 Cortex-M3复 第7章电源管 第8章嵌套向量中断控制 第9章器保护单 MPU概 MPU编程器模 MPU寄存器纵 使用寄存器 子区 MPU权 MPU异常中 使用CP15等效代码更新MPU区 第10章内核调 第11章系统调 系统调试 DWT寄存器总结及描 ITM寄存器总结和描 AHB端 第12章调试端 扫描 IR扫描链和IR指 DR扫描链和DR寄存 时 Sticky标志和DP错误响 第13章端口的接口单 TPIU方框 TPIU组 TPIU输入和输 TPIU寄存器汇 TPIU寄存器描 第14章总线接 ICode总线接 DCode总线接 14.3.114.3.2器属 不对齐Bit-bandFlash修补重新映 独占(exclusive Bit-band 第15章嵌入式宏单 ETM概 ETM框 ETM资 数据ETM资 周期性同步(periodic ETM结 异常ETM编程器模 APB接 ETM寄存器列 描述ETM寄存 第16章嵌入式宏单元的接 ETM接口概 CPUETM接口端口描 第17章指令周期定 附录A信号描 时 复 杂 ICode接 DCode接 ITM接 ETM接 附录B术语 附录C周立功公司相关信 pn第1章概述第2章编程模型(programmer’smodel)3章第4章器映射第5章异常第6章时钟与复位第7章功率管理第8章嵌套向量中断控制器第9章器保护单第10章内核调试第11章系统调试第12章调试端口第13章端口接口单元(TPIU第14章总线接口第15章嵌入式宏单元第16章嵌入式宏单元接口第17章指令时序附录A 第1章概述用于多,SIMD,E(DSP)和ARM系统的模块除外。处理模式(handlermode)和线程模式(thread(ISR(NVIC支持末尾连锁(tail-chaining)和迟来(latearrival)中断。这样,在两个中断之间没有多余的状态保存和状态恢复指令的情况下,使能背对背中断(MPU8个器AHBLiteICode、DCodeBitband支持,bit-band的原子写和读器对(FPB(DWT(ITM端口的接口单元(TPIU,用来连接端口分析仪(ETM
NVIC
Cortex-
1-1所示,Cortex-M3处理器的组件存在于两个层次等级中。它向我们展示了设计实现和使用具有灵活性(或者执行和使用它们的方式非常灵活),因此这4个组件位于Cortex-M31-1中显示的有所不同。可能的系统实现的选项见下面的3个部分。中取出异常向量,实现更加快速地进入ISR。和恢复指令的情况下,处理背对背中断(back-to-backinterrupt。ARMv6类型BE8/LE寄存器程序计数器(LSUunit有第一个被取出的半字的thumb-2指令才需要一个暂停周期(stallcycle。ICode32位AHBLiteDCode总线,该总线用于对代码空间进行数据加载/以及调试,是32问,是32位AHBLite总线。AP(v2.0FPB单元实现硬件断点以及从代码空间到系统空间的修补,FPB有8个比较器 l重新映射到系统空间DWT4个比较器,其中的任一个都可配置为硬件观察点、ETM触发、PC采ITM是一个应用导向(applicationdriven)的源,支持对应用的和register如果希望向处理器提供器保护,则可以使用可选的MPU。MPU对允许和器属性进行检验。它包含8个区和一个可选的执行默认器映射属性的背景区。之间的桥接。TPIU可配置为支持低成本调试的串行管脚,或用于更高带宽的多管脚。TPIU与CoreSight是兼容的。Cortex-M3系统可配置为包含一个MPU。寄存器值与寄存器值及CADC<Rd>,ADD<Rd>,<Rn>,ADD<Rd>,ADD<Rd>,<Rn>,ADD<Rd>,PC4(8位立即数ADD<Rd>,PC,SP4(8位立即数SP4(7位立即数ADD<Rd>,SP#<immed_7>*4AND<Rd>,ASR<Rd>,<Rm>,ASR<Rd>,B<cond><targetB<tartet位BIC<Rd>,BLCBZ<Rn>,CMN<Rn>,CMP<Rn>,CMP<Rn>,CMP<Rn>,CPS<effect>,CPY<Rd>,EOR<Rd>,IT<x><y><cond>LDR<Rd>,[PC,5位立即数偏移的和的地址处的半字[15:0]LDRH<Rd>,[<Rn>,LDRH<Rd>,[<Rn>,LDRSB<Rd>,[<Rn>,LDRSH<Rd>,[<Rn>,LSL<Rd>,LSR<Rd>,<Rm>,LSR<Rd>,MOV<Rd>,MOV<Rd>,MOV<Rd>,MUL<Rd>,MVN<Rd>,NEG<Rd>,ORR<Rd>,<寄存器和LRREV<Rd>,SBC<Rd>,SEVSTMIA<Rn>!,STR<Rd>,[<Rn>,STR<Rd>,[<Rn>,STR<Rd>,[SP,#<immed_8>*中STRB<Rd>,[<Rn>,STRH<Rd>,[<Rn>,#<immed_5>*STRH<Rd>,[<Rn>,#<immed_5>*STRH<Rd>,[<Rn>,#<immed_5>*SUB<Rd>,SUB<Rd>,<Rn>,SUBSP,#<immed_7>*到32SXTB<Rd>,展到32SXTH<Rd>,TST<Rn>,32UXTB<Rd>,到32UXTH<Rd>,WFEWFIADC{S}.W<Rd>,<Rn>,ADC{S}.W<Rd>,<Rn>,<Rm>{,ADD{S}.W<Rd>,<Rm>{,ADDW.W<Rd>,<Rn>,AND{S}.W<Rd>,<Rn>,AND{S}.W<Rd>,<Rn>,Rm>{,B{cond}.WBL带的分支(立即数BL<c>B.WCLZ.W<Rd>,CMN.W<Rn>,CMN.W<Rn>,<Rm>{,CMP.W<Rn>,CMP.W<Rn>,<Rm>{,数据器排序DMB数据同步排序DSBEOR{S}.W<Rd>,<Rn>,<Rm>{,指令同步排序ISB1LDR.WPC,[<Rn>,LDR.WPC,[<Rn>,LDR.WPC,[<Rn>,<Rm>{,LSLLDR.W<Rxf>,[PC,LDR.WPC,[PC,的地址处的字节地址处的字节LDRB.W<Rxf>,[PC,LDRD.W<Rxf>,<Rxf2>,[<Rn>,#+/–<offset_8>*的地址处的半字LDRH.W<Rxf>,[<Rn>,后的地址处的半字的地址处的带符号字节LDRSB.W<Rxf>,[<Rn>,LDRSB.W<Rxf>,[<Rn>,地址处的带符号字节LDRSB.W<Rxf>,[<Rn>,<Rm>{,LSLLDRSB.W<Rxf>,[PC,的地址处的带符号半字LDRSH.W<Rxf>,[<Rn>,LDRSH.W<Rxf>.[<Rn>],#+/-LDRSH.W<Rxf>,[<Rn>,地址处的带符号半字LDRSH.W<Rxf>,[<Rn>,<Rm>{,LSLLDRSH.W<Rxf>,[PC,LSR{S}.W<Rd>,<Rn>,MLA.W<Rd>,<Rn>,<Rm>,MLS.W<Rd>,<Rn>,<Rm>,MOV{S}.W<Rd>,MOV{S}.W<Rd>,<Rm>{,将16位立即数传送到寄存器的高半字中将16位立即数传送到寄存器的低半字MRS<c><Rd>,MSR<c>MUL.W<Rd>,<Rn>,作ORN{S}.W<Rd>,<Rn>,ORN[S}.W<Rd>,<Rn>,<Rm>{,ORR{S}.W<Rd>,<Rn>,ORR{S}.W<Rd>,<Rn>,<Rm>{,RBIT.W<Rd>,REVSH.W<Rd>,ROR{S}.W<Rd>,<Rn>,RSB{S}.W<Rd>,<Rn>,RSB{S}.W<Rd>,<Rn>,<Rm>{,SBC{S}.W<Rd>,<Rn>,SBFX.W<Rd>,<Rn>,#<lsb>,SSAT<c><Rd>,#<imm>,<Rn>{,寄存器字保存到寄存器地址移位0,1,2或STRB.W<Rxf>,[<Rn>],寄存器字节保存到寄存器地址移位寄存器半字保存到寄存器地址移位SUB{S}.W<Rd>,<Rn>,将字节符号扩展到32SXTB.W<Rd>,<Rm>{,将半字符号扩展到32SXTH.W<Rd>,<Rm>{,TBB[<Rn>,TEQ.W<Rn>,TEQ.W<Rn>,<Rm>{,TST.W<Rn>,<Rm>{,展到32UBFX.W<Rd>,<Rn>,#<lsb>,USAT<c><Rd>,#<imm>,<Rn>{,3232UXTH.W<Rd>,<Rm>{,第2章编程模型(programmer'sThumbARM16位。它支持较高的代码密度以及16位或小于16位的器数据总线系统。度更高,并且通过使用16/32位指令,提供更高的性能。代码可以是执行或非执行。非执行时对有些资源的受到限制或不允许。执行可以所有资源。处理模式始终是,线程模式可以是或非特用户(非)。用户:结束复位后,所有代码都使用主堆栈。异常处理程序(例如SVC)可以通过改变其在堆栈中只有一个是可见的,由r13指示。CONTROL[1]执行写操作也可以从主堆栈切换到进程堆栈。分组的堆栈指针别名,SP_process
使用r0-r12。 寄存器r0-r7可以被指定通用寄存器的所有指令 寄存器r8-r12可以被指定通用寄存器的所有32位指令寄存器r13、r14、r15具有以下特殊功能: 自动与字,即4字节边界对齐。寄存器寄存器r14是子程序的寄存器(LR。时,LRPC程序计数器寄存器r15为程序计数器(PC)或3个组合。这3个寄存器为:志保存在堆栈内。您可以使用MSR(2)和MRS(2)指令来APSR。位NZ位CVQ-位-ISR基础级别ICI区和IT区是的,因此,If-Then模块内的多寄存器加载或操作不具有可中位-可中断-LDMSTM操作时产生一次中断,LDMSTM操作暂停。EPSR使用位[15:12]来保存该操作中下一个寄存ICI区指向的寄存器不在指令的寄存器列表中,则处理器对列表中的下一个寄存器(如果有)继续执行LDM/STMT使用异常出栈操作来,被压栈的T位为0。当T位为零时执行指令会引起INVSTATE--3216下支持小于1个字(subword)的写操作。高有效字节。器系统地址0的字节与数据线7-0相连。最低有效字节。器系统地址0的字节与数据线31-24相连。SETEND设置器格单寄存器加载多寄存器加载的lil加载。储器的lil加载还都支持C/C++位区(在structs中。3个寄存器的数据操}与对应的v616在模式下使用的T变量单寄存器加载多寄存器加载专用的加载-(exclusiveload-如果没有局部程序时,将出现故障,这是IMPDEF。这里不包括DREXD和STREXD。B,BL,B<cond>。状态一直改变,因此无BLX(1)BXJ不支持CPSIE/CPSID的32位格式。(PC返回排序饱和如果溢出,则置位xPSRQ位,在检测到溢出时使该值达到饱和。第3章系统控制a读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/读/-外设标识寄存器外设标识寄存器外设标识寄存器外设标识寄存器a3-2读/ -读/-读/ 读/读/-读/读/读/读/读/读/读/读/读/T读/T读/-T读/-T读/-T读/-DWT当前LSUT读/-器读/-读/-读/读/-读/-读/读/-读/-读/读/-读/-读/读/ --读/读/读/读/ 详细描述请参考第11章系统调试。控制和状态字读/读/数据读/读/-读/-读/-读/-读/-调试ROM标识寄存器3-7是是是是是是是是是是否是否是第9章器保护单元。读/读/-读/-读/-------考第13章端口接口单元。读/读/读/0x00考第15章嵌入式宏单元。3-10ETM读/是是是否只读或读/是是否是是否只写或读/是否否否定序器读/ 否否否否否ETM是是否使能开始/停止嵌入式读/是嵌入式ICE否读/是否是是是是读/是(claim读/是是是是是是是是是是是是是是是是第4章器映ROM器32MBBit32MBBitband1MBbitband32MBBit32MBBitband1MBbitband
图4-1Cortex-M3器映表4-1器接指令取指在ICode总线上执行,数据在DCode总线上执行外设对ITM、NVIC、FPB、DWT、MPU的在处理器外设总线上执行。对TPIU、ETM和PPB器映射的系统区域通过MPU(如果有)修改。外设位于0xE 最低的1MB。这些bit-band区域将器别名区的一个字映射为bit-band区的一个位。对32MB外设别名区的映射为对1MB外设bit-band区的Bit_word_offset为bit-band区中的目标位的位置Bit_offset为bit-bandBit_number为目标位的位位置(0-7地址0x23FFFFE0的别名字映射为0x200FFFFC的bit-band字节的位0: 地址0x 的别名字映射为0x 的bit-band字节的位0: 地址0x220001C的别名字映射为0x 的bit-band字节的位0:
向别名区写入一个字与在bit-band区的目标位执行读-修改-写操作具有相同的作用。目标位。位[31:1]将为0。直接bit-band4-3Cortex-M3ROM值0xE000E000的 指向TPIU。如果有TPIU00第5章异常激活级别(activationCortex-M3处理器和嵌套向量中断控制器(NVIC)对所有异常按优先级进行排序并处interrupt自动代码器或SRAM中包含ISR地址的向量表。该操作与状态保存chaining中,处理器在两个Cortex-M3处理器中存在多种异常类型。异常是指由于执行指令时的一个错误条件而产ARMv7-M性能分析(performanceprofiling)支持的一种不同步故障。同步-0-1在上电和热复位(warmreset)234可调整MPU不匹配,包括规范以及不匹配。是同步的。即使MPU被或不存在,也可以用它来支持默认的器映射的XN5可调整预取故障,器故障,以及其它相关的地址/6-7----16 断(pendedinterrupt)ISR或线程的移寄存器出栈操作,转而将控制权让给新的ISR)处理器执行出栈操作,并返回到被压栈的ISR或线程模式。返回的ISR或线程更高,则处理器放弃状态恢复操作并将新的中断作为到ISR的第一条指令进入处理器流水线的执行阶段。返回时,采用常规的降低。0优先级最高,255优先级最低。指定软件优先级后,硬件优先级无效。例如,如果INTISR[0]1,INTISR[31]0INTISR[31]的优先级比优先级比INTISR[1]要高。为了对具有大量中断的系统加强优先级控制,NVIC支持优先级分组机制。您可以使用5-3248842无0来配置优先级,则PRI_N[7:4]用来配置优先级,而PRI_N[3:0]为4`b0000。堆栈的SP寄存器。用主堆栈,并且后面所有的抢断都使用主堆栈。状态保存时的堆栈使用规则如下:核只需要保存没有被硬件压栈的8个寄存器r4~r11,并将SP_process到线程控制模块全权利的,或权利受到限制的非/用户。权利对以下功能产基于MPU的单元的规则。当配置了MPU时,限制能够控制哪些存在完成压栈之后,SP85-1显示了异常抢占当前的程序流程之后堆栈中函数可以是常规的C/C++函数,不需要胶合(veneer。8个寄存器压栈否读器中的向量表,地址为向量表基址+(异常号4)ICodeDCode总线上的寄存器压从向量表中读否栈,压栈和出栈之外的其它异常不能修改SP否利用向量表读出的位置更新PC出的新位置重新加载更新否LR设置为EXC_RETURN,以便从异常中退出。 5-2INTISR[2]之后的周期中,NVIC向处理器内核指示已经接收到中断,处理器CURRPRI[7:0]表示激活中断的优先级。CURRPRI在整个ISR示正在取出的是哪一个ISR。g5-3显示了一个末尾连锁(Tail-chaining)的实例。如果挂起中断的优先级比被压栈出前一个ISR之后六个周期,开始执行被末尾连锁(tail-chained)的ISR。CURRPRI[7:0]表示激活中断的优先级。CURRPRI在整个ISR期间保持有效。5-4的最迟的点。INTISR[8]的ISR取指操作在接收到INTISR[9]时被中止,然后处理器开始CURRPRI[7:0]表示激活中断的优先级。CURRPRI在整个ISR期间保持有效。器从ISR返回。高,则处理器返回到上一个被压栈的ISR。表5-5描述了后同步序列。5-5返回到哪个异常以及返回时清除激活位。当位[8:0]0时,处理器返回线程如果返回到异常,SPSP_mainSP5-5如果正在返回前一个被压栈的ISR,则中断退出之后的周期中ETMINSTAT去,并将该异常看作tail-chain的情况来响应。当以上述方式返回时,写入PC的值被截取,作为EXC_RETURN的值。5-6如果EXC_RETURN[3:0]PC时,该值看作一个地址,而不是特殊的值。这个地址范围被定义为具有永不执行是可预测的。表5-7显示了复位的行为。内核从向量表偏移中最初的PC。LR设置为voidResetISR(void);void…voidResetISR(void);void…{0,如果使用MemManageMPU)0,//0,0,0,0,0,0,//0,//如果使用调 ,在此添加它的0,////一个正常的复位程序遵循表5-8中的步骤。C/C++初值从ROM中到RAM中初始化所有的运行可选择调用C/C++运行时间的码,以允许使用堆(heap),浮点运算或其它能。这通常可通过main调用C/C++“循环(现在睡眠用复位ISR。这称作复位ISR的“主循环”部分,这3种方法如下所示:voidvoid{(初始化变量,初始化运行时间(根据需要),设置外设等)nvic[INT_ENA]=1;//使能中断=//}voidvoid{externvolatileunsigned(初始化变量,初始化运行时间(如果需要),设置外设等)nvic[INT_ENA]=1;//使能中断while{//完成(exc_reqFALSE;exc_reqFALSE;的部分工作wfi();//现在进入睡眠状态,等待中断//完成部分上电自检异常的检验/}}voidvoid{(初始化变量,初始化运行时间(如果需要),设置外设等)nvic[INT_ENA]=1;//使能中断while{//sleeponreset状态,这样能够处理上电自检/wfi();//现在进入睡眠状态,等待中断来清除//完成部分上电自检异常的检验/}}加载量的改变作出快速响应,以及使用优先级提升(priorityboosting)机制,来解决优先级倒置(priorityinversion)和确细的微量支持。对于使用线程和的RTOS模型,用单寄存器加载多寄存器加载策改变(向量表ISR异常后同步是一个引导序列(bootsequence)的实例:调用所有的引导程序(boot(kernel5-4ISRLDRr0,PSPValue;MSRPSPr0;ORRlr,lr#4改变EXC_RETURNPSPBXlr;;;上下文切换举例(假设线程已经在PSP上)MRSr12,PSP;将PSP 到R12中{;LDRr0,OldPSPValue;STRr12,[r0];SP保 ;LDMIAr12!,r4-r11};MSRPSPr12;R12写入BXlr;移到5-10—MPU规—MPU规DSVC,BKPT和其它类型试图在无效的ISA状thumbEPSR状态中退出,由的(EXC_RETURN与压栈的EPSR不匹配),或当前的EPSR不包含在当前有效的的未对齐加载或在执行SDIV或UDIV时除数障-系统请求(服务调用-5-11---当使能以用于trap-当使能以用于trap--有2个故障地址寄存器(FAR):总线故障地址寄存器器故障地址寄存器理模式。表5-13列出了激活等级的模式和堆栈。无5-14或试5-15占先或tail-chain调试连锁占先或tail-chain连锁0 SP
5-6
第6章时钟和复位6-1Cortex-M3域FCLK和HCLK互相同步。FCLK是一个自由振荡的HCLK。要了解信息,请查6-2Cortex-M3域用于为TPIUD参考输入,其频率必须小于FCLK/2。处理器将STCLK变成与FCLK内部同步。6-3复位整个处理器系统,NVIC中的调试逻辑、FPB、DWT、ITM以及AHB-AP6-4x000x1101(superset6-1同步。图6-2显示了上电复位的应用情况。图6-3显示了处理器内的复位同步器。6-23HCLK6-3显示了内在没有连接外部调试器时,所有外部看门狗电路都应该考虑使用Cortex- DDQ
6-3系统复位或热复位对宏单元中的大部分元件进行初始化,NVIC调试逻辑、Flash修补(FPBCortex-M3SYSRESETREQ信号,该信号在“应用中断与复位控制寄存器”由于nTRST在处理器内已经被同步了,所以不必使之再同步。第7章电源管理)的状态,表7-1列出了支持的睡眠模式。7-1SLEEPONEXITISR,它一个自动的WFI模式。闲循环(idleloop)或空闲线程。程模式下的空闲循环中。要了解有关WFI、WFE、BASEPRI以及PRIMASK的信息,请参SLEE该信号在立即睡眠或“退出时睡眠”模式下有效,表示处理器时钟可以停止运行。在接收到一个新的中断后,NVIC会使该信号变无效,使内核退出睡眠。有关SLEE的用法实例见“SLEE。SLEEPDEEPSLEEPDEEP位置位时,该信号在立即睡眠或“退SLEEPDEEP信号变无效,并在时钟管理器显示时钟稳定时让内核退出睡眠。有关SLEEPDEEP的用法实例见“SLEEPDEEP图7-1给出了如何在低功耗状态利用SLEE 耗的实例。必要,还可以使用SLEE来门控其他系统元件。图7-1 SLEEFCLK7-2SLEEPDEEP间可以降低FCLK频率。第8本章介绍了嵌套向量中断控制器(NVIC的处理。NVI通过时刻关注压栈(嵌套)中断来实现中断的末尾连锁(tail-chaining。用户只能在模式下完全NVIC,但是如果使能了配置控制寄存器(见“配置控不管处理器字节的顺序如何,所有NVIC寄存器和系统调试寄存器都是采用小(littleendian)字节排列顺序,即低位字节在低地址。8-1NVIC寄存器。NVIC空间还用来实现系统控制寄存器。NVIC空间分成0xE000E000 0xE000E010 0xE000E100- 0xE000ED000xE000ED8F.0xE000EF00 0xE000EFD00xE000EFFF.ID8-1NVICa-a 只 中断控制器类型寄存器的位分配如图8-1所示。8-18-2域-中断线总数(32条一组b00000=b00001=b00010=b00011=b00100=b00101=b00110= 读/ 8-2SysTick8-3SysTick域0=1=1=计数器工作在连拍模式(multi-shot)。即计数器装载重装值后接着开始往0COUNTFLAG1TICKINT的值可0=会将SysTick中断和COUNTFLAG激活,所以没有什么用处。因此,作为拍式(multi-shot)定时器,它每N+1个时钟脉冲就触发一次,周而interrupt那么可以看作单拍(singleshot)400个时钟脉冲后想请求一个时钟中断(tickRELOAD写入400。 8-3SysTick8-4SysTick域 8-4SysTick8-5SysTick域 8-5SysTick8-6SysTick域1=1=10ms可以是最接近10ms的值。如果为当挂起(pdig)的PO和通过写1到中断使能清除寄存器(见“中断使能清除寄存器)的相应位可以中断使 8-7域1=0=。 8-8域1=0=) 8-9域1=0= 8-10域1=0=通过激活位寄存器来判断激活哪个中断。寄存器的一个标志对应一个中断(共个中断 8-11域(MSB 8-60-31表8-12描述了中断优先级寄存器的各个位。8-120-31域 只 8-7CPUID8-13CPUID域[9:8]b00=版本[7:6]b00=[3:0]X系列成员。Cortex-M3为b0011设置一个挂起 8-88-88-14域1=0=--1=0=1=0=1=0=域1=0=1=0=--至激活的基本级(baselevel)1。如果处于线程状使用VECTACTIVE来判断自己被哪个中断调用。可以用 8-978-98-15域--乘幂(2(5+1))为64,因此必须在64字边界上实现对齐。 8-108-108-16域1=大端(0=小端(低位ENDIANESS-PRIGROUP0.8表示0位抢占式优先级,8位子优先级PRIGROUP值代表一个从LSB左边开始的小数值。这是7:0的位0。-0=重新初始化堆栈是应用程序的职责。VECTCLRACTIVE位供调试1=0= 8-118-17域-即使在不等待时也会被记录,同样也会影响下一个WFE。1=Cortex-M30=1=ISR0=- 8-12 98 54 218-128-18域使能时,使得以优先级-1和-2(硬故障,NMIFAULTMASK升级处如果写成 8-138-138-19域 8-148-148-20域-如果在开始调用BusFault时被一个更高优先级的中断取代而导致MemManage-续上表域---(contextswitcher)用来保存线程的上下文。最普遍的做法是保存位于SVCall处理器或IPSR没有改变,没有反映这些情况,所以当前处理器的 0xE000ED28器管理故障状态寄存0xE000ED290xE000ED28 8-158-15 图8-16器管理故障寄存器的位分表8-21器管理故障状态寄存器的位分域MemManage故障,并由于优先级的原因升级成一个硬故障,那么硬栈的活动MemManage处理器时出现问题。域指令违犯标志。试图在不允许执行取指操作的的单元上取指将导致 7 54 218-178-22域MemManage故障。如果发生总线故障,并升级成一个硬故障,那么硬故障处理器必须清除BFAR值已被覆写的被压栈的活动总线故障处理器时,这样-11存操作。没有写BFAR。域返回至一个更低优先级的异常前发确的故障,那么处理器同时对IMPRECISERR和其中的一个精确故障状态位进行探测,判断它们是否置位。1=0=果在分支指令后发生总线错误,则不会发生故障。没有写BFAR。EPSR和指令的组PC 8-188-23域PCDIV_0_TRP-EPSR和指令的组合,由未定义指令的除外。返回PC指向出错指令( 硬件故障状态寄存器的位分配如图8-19所示。8-198-24域试,在当前优先级高于程序时只有BKPT会发生;当停止调试和调试D-写清除。即可以正常地对它进行读操作。向该位写1可以将其清除。故障,且DBGEVT位在硬故障状态寄存器中置位,而有些没有什么用处。 8-208-208-25域-1=EDBGRQ0=EDBGRQ1=0=1=DWT0=DWT1=BKPT回PC指向包含指令的断点。0= 表8-26器管理故障地址寄存器的位功域MemManage故障的地址域。ADDRESS是错误的加载或操作的数据地址。 8-27域 只 8-218-218-28域-ISR激活时将挂起位。如果在激活的同时中断再次被确定,它可以再次锁存挂起位。第9章器保护单本章介绍了处理器“器保护单元”(MPU。包括以下内容保护的器系统结构(PMSA)模型。MPU为以下操作提供完整的支持:MPU不匹配和违犯调用优先级可设定的MemManage故障处理器。要了解信9-1MPU-续上表--D9C-DA0-D9C-DA0-D9C-DA0-使用MPU类型寄存器查看MPU支持的区域数。位[15:8]的内容以判断是否存 只 MPU9-8 19-1MPU9-2MPU域-MPU8MPUMPU-使能缺省的器映射(背景区域器映射区。如果PRIVDEFENA位置位而没有区域被使能,那么只能运行代码。MPU使能时,只有系统分区和向量表装载总是可。其他区必须根据区域以HFNMIENAMPU在异常优先级为-1或-2时不能被使能。这些优先级级一起工作时,它用于使能MPU。 MPU9-2 329-2MPU9-3MPU域-当使能MPU时,该位使能供使用的缺省器映射,将其作为背景区域。背景区域在任意可设置区域前都表现得像区号为1。设置的任意区域与所述。这适用于器类型、XN、高速缓存和可共享原则。但也仅适用于禁能MPU时,缺省的映射对模式和用户模式的代码都起作用。不管该使能位是否置位,SNSOMPU被禁能,那么在处于硬故障、NMIFAULTMASKMPU。如果HFNMIENA=1ENABLE=1MPU被使能。如果如何,只要HFNMIENA=1且ENABLE=0,那么行为将变得不可预测。1=0= MPU9-39-3MPU9-4MPU域-MPUREGION64KB64KB的倍数对齐,例如 MPU9-49-4MPU9-5MPU域MPU区域属性与大小寄存器用于控制MPU的权限。寄存器由两个局部寄存器组 MPU9-59-5MPU区域属性与大小寄存器的位分配9-6MPU域-1=取0=-值-S1=0=续上表域C1=0=B1=0=-9-7MPU续上表器。这些寄存器在“NVIC寄存器描述”中作了介绍。(STM;R1=4region;R1=4regionpairsfromprocesscontrolblock(8words)MOVR0,#NVIC_BASEADDR0,LDMR1[R2-R9];4STMR0,[R2-R9];41/81/8子区域,3个小长度(32,64128)的区域共用。如果使用了这些子区域,结果将不可预测。设置成b 区域属性与大小寄存器的TEX、C、B、AP和XN位,控制对相应区的。如果未9-8TEX,C,BCB000110S11S00S011011S1X011XAABB=外部政策。AA=S表9-9描述了器属性编码的高速缓存政策。表9-9器属性编码的高速缓存政9-10AP01操作替代MRC和MCR。;;R1=region;R2=;R3=;R4=MOVR0,#NVIC_BASESTRR1,[R0,#0];区号STRHR3,[R0,#10];属性;R1;R1=region;R2=;R3=;R4=MOVR0,#NVIC_BASESTRR1,[R0,#0];区号BICR2,R2,#1STRR4,[R0,#4];地址ORRR2,#1;使能;果使用一个从异常返回或通过异常来进入代码,那就不需要ISB了。;;R1=region;R2=;R3=size,attributesinoneMOVR0,#NVIC_BASESTRR1,[R0,#0];区号;;R1=region;R2=;R3=size,attributesinoneMOVR0,#NVIC_BASE;R1=address;R1=addressandregionnumberin;R2=sizeandattributesinoneMOVR0,#NVIC_BASE;;R1=addressandregionnumberin;R2=sizeandattributesinoneMOVR0,#NVIC_BASEMPU12域被更新。如果新的大小域发生了改变,但是基址没有变,那么基址+new_size可第10章内核调试内核调试通过内核调试寄存器进行。而调试这些寄存器时需通过AHB-AP端10-1 -- 存器的VECTRESET位写入1来复位。写入1来复位。C_DEBUGENC_HALT位来将内S_HALT位置位使内核停止时,内核将立即通过将内核停止,置位C_STEP,然后C_HALT位可单步调试内核。通过置位调试停止控制和状态寄存器中的S_HALT位,内核将确认单步操作完成并重新停止内核。调试异常和控制寄存76543210写读W调试按键。任何时候在对该寄存器执行写操作时必须向位--RR--RR须使用C_HALT来获得控制或等待中断来唤醒内核。R----不影响NMI,因为它是不可的。当处理器停止时AHP-AP写入,不能由内核写入。当一直为0。的,这可用来避免或故意修改sticky位。--WW一直为0。位读作0。值会引起故障。将ICI的值变为0可启动下面的LDM/STM操作,不继续。停止的调试状态中进行通信。例如,OSRSD和RealView程序。这样,能够使用标志调试控25240 位--用程序或调试器使能,供ITM使用。--位通过AHB-AP端口唤醒程序。在调试时它等同于控制和状态寄存器中的C_DEBUGEN覆盖了该位。则由于向量错误或压栈,对应的故障处理程序停支持迟来中断优化的实现在此情况下必须能够抑--中断/异常程序错误上的调试陷阱(见8.3)它们是--程序中或随后由软件使能,或由AHB-AP端口使能。PENDSETPENDCLR这样的写寄存器,它们不能先读,因此也存在读-修10-5显示了在内核调试中非常有用的应用寄存器和寄存器位。应用寄存器的完整列表见ARMv7-M架构参考手册。第11章系统调试AHB端(ITM所有调试组件都在外设总线(PPB)上,能够使用代码来。(PPB(NVIC信息见第10章内核调试。数据观察点和指令宏单元器保护单元(ETM详细信息见第15章嵌入式宏单元。(TPIU片外端口分析仪之间的桥接。详细信息见13章端口接口单元(TPIUROM 图11-1系统调试模块框AHB端口Flash修补和断点单元(FPB:(BKPT,FPB包含一个全局使能,还包含8个比较器的单独使能。如果的比较匹配时,地址BKPT指令(如果该特性使能。比较操作在空闲时发生,但比较结果太晚而不能停止原来 读/写 位[0](ENABLE)复位值为1’b0。位- 有2个 l插槽-位1:Flash修补单元使能0:Flash修补单元复位时将ENABLE 读/写 该寄存器不复 29 5 位--读/写 ,0xE000200C,0xE ,0xE ,0xE 位 b00:重映射到重映射地址。见FP_REMAPb11:在高低半字上设置BKPT。b00之外的设置只在用于指令比较器时是有效的。li --FP_CTRL的ENABLE位也必须置位来使能比较。复位时ENABLE位。DWT包含4个比较器,每个比较器都可配置为硬件观察点,ETM触发,PC采样 P0还可与时钟周期计数器(T)进行比较。时钟周期(中断开销(interrupt见DWTTT-T-见DWTT-见DWTT-T-DWT折迭(folded)器-见DWT-见DWT寄存器0-见DWT0--见DWT-见DWT寄存器0-见DWT0--见DWT-见DWT寄存器0-见DWT0--见DWT-见DWT寄存器0-见DWT0-DWTDWT模块。寄存器的地址,类型和复位状态:地址0xE读/写 2822211P CP个个位P- T计数器触发周期计数时,发出一个,详细信息见CYCTAP(位[9])和POSTPRESET( 指令在执行时甚至不需要一个周期(例如IT指令,它属于折使能LSU计数。当 后的所有LSU开销。 -位使能PC采样计数。当T计数器触发PC采样时,发出一个PC采样。详细信息见CYCTAP(位[9])和用来向ITMSYNCEN控制输入一个同步脉冲。这里所选的值通 值中的一个,SYNCEN必须设为1。0b00。无同步计0b01 T位24的节0b10 T位26的节0b11 T位28的节 T寄存器上选择一个节拍。可以是位[6]和位[10]。CYCTAP=0时选择位[6]作为节拍,CYCTAP=1时选择位[10]作为节拍。当T寄存器中所选的位从0变为1或从1变为0时,它向T(位[8:5])后标量计数器发出信息。 TT发PCSAMPLENA或CYCEVTENA事件。它还重装来自区域的值非零,则将形成一个递减的值(0时该值重装入T)1表示每隔 只读 位TPC采样器周期计数器的计数值。使能时,该计数器对内核周计作0时,对PC进行采样并发出采样。1或1到0)并且后标量值计作0时,发出一个232内核时钟周期是有效的(例如,在50MHz时大约为82s。 读/写 81T位-T当前CPI计数器的值。在执行除 T记录的指令之外 读/ 81T位-T(例如,堆栈,出栈返回,占先。当计数器溢出(每256个周期)时,发出一个。该计数器在使能时初始化为零。 读/ TT位-T 读/ 80T位-TLSULSU操作时需要的总周任何周期时该计数器计作1。 读/ 8T位-T 读/ 位 读/ 40位-在与COMP相比时,对数据地址进行。[3:0]的值为忽略配按下面的等式执行:(ADDR&(~0<<MASK))PPCCYCMATCH P0 读/写 87654321 留留位--EMITRANGEEMITRANGEPC采样。EMITRANGE只适用于:-值数据采样只针对不产生故障(MPU或总线故障)的。而PC采样不考虑任何故障。PC采样只针对突发操作的第一个地址。用并发出诊断系统信息。信息作为信息包从ITM发出,信息包能够由3个源产生。如果多个源同时产生信息包,则ITM对信息包输出的顺序进行仲裁,以下便是这3个源,其优先级按递减顺序排列:register(timestamp用来产生时间戳。该计数器使用Cortex-M3时钟或SWV输出的位时钟率。在对ITM进行编程或使用ITM之前,调试异常和控制寄存器的TRCENA位必须 -见ITM0-见ITM使能寄存见ITM寄存见ITM见ITM见ITM见ITM见ITM锁定寄存见ITM 用户模式下无效的ITM寄存器写操作将被放弃。32个激励端口中每一个都有自己的地址。如果使能寄存器中对应的位置位,则对为满,1未满。;R0=FIFO满 ;R1=ITM激励端口 ;R0=FIFO满 ;R1=ITM激励端口 R2=LDREXR0,[R1,;读FIFO状态并请 锁定(exclCBZEQR0,STREXR0,R2,[R1, ;如果FIFO满并 CZBNER0,;读/写 位如果ITMEN位置位,该寄存器可接受写。如果ITMEN置位并且适当的ITM寄存器使操作系统能够控制哪些激励端口是用户代码可以的。 读/ 4位-:读/写 位--0b01:40b10:16-AFIFO写入信息包,1位-0:ATVALIDM1位-1位-该寄存器用来对控制寄存器的写位Lock在模式下对该寄存器写入0xC5ACCE55可使能对控制寄存321位-AHB端先进的高性能总线端口(AHB-AP)是进入Cortex-M3的调试端口,并提供对系统中的所有器和包括处理器寄存器(通过NVIC)在内的寄存器进行。系统独立于处理器的状态。AHB-AP通过SW-DP或JTAG-DP来。AHB-AP是进入总线矩阵的主机。使用AHB-AP的编程模型可以进行事务处理。详细bit-band处理,它们都由总线矩阵来操作。AHB-APMPU锁定的影响。AHB-AP处理将旁路FPB,因此由FPB实现AHB-AP处理的重映射是不可能的。AHB-APJTAG/SW-DP启动的处理中止来驱动边带信号,HABORT。HABORTditch止/复位内核,外设总线能够通过AHB-AP来。-31313029262512876543 位-果处理还未完成,该位不能改变(调试器必须先检验TransinProg)。b0001-b1111保留在4KB地址边界内递增并在该范围内操作,例如以字方式从0x1000增加到0x1FFC时,如果开始地址为0x14A0,计数器增加到0x1FFC,回到0x1000,然后继续增加到0x149C。-b000:8位b001:16位b010:32位位位存器(TAR。位BD0-BD3提供一个直接将DAP映射为AHB传输的机制,无行读/写操作,BD1对TAR+4执行读/写操作,等等。如果DAPADDR[7:4]==0x0001,则0x10-0x1C范围内的 位2824171684APAP位continuationJEP-106 -第12章调试端口件从外部处理器。Cortex-M3支持两种可能的DP实现:息见JTAG-DP。据。详细信息见AHB端口。细信息见您的implementor。DP和AP一起称作调试端口(DAP(JAG的,详细信息见IEEEStd1149.1-1990。本节将描述JTAG-DP及其扫描口。扫描DP状态机JTAG的nTRST输入能够通过上电复位驱动,并且不需要与管脚进行连接。建议采用的JTAG-DP物理连接如图12-1所示。捕获捕获移位移位 退出1-退出1-暂停暂停-推出2-退出2-更新更新-JTAG-DP中移除。如果移除了电源,DAPJTAG-DP有电时,DAP能够使能DAP余下的部分并让内核掉电进入调试状态。DAPTDI信号表示扫描链开始,TDO信号输出表示扫描链结束。参考图12-2DAP状态机(JTAG。IR扫描链就前进一位。这意味着在第一个时钟上,IRLSBTDO上输出,IR的位[1]传输到位[0],位[2]传输到位[1],等等。IR的MSR用TDI的值取代。条数据寄存器扫描链,该扫描链位于TDI和TDO之间。nTRSTJTAGJTAG状态机(IR4式将移位区域中的值移出去。同时,以先移最低位的方式将新的指令移入。在更新IR状态时,移位区域的值装入IR,因此变为当前指令。在调试逻辑复位时,IDCODE变成当前指令,请见JTAG器件ID3012-3JTAGDRDRIR指令在IR指令值用来选择旁路寄存器(Bypassregister)JTAG12-2IR--JTAG器件ID代码寄存器18IRb0000到b0111JTAG-DP进行扩展的自定义实现使用。这些寄存器可用于边界扫描寄存器(遵循IEEE1149.1。需要的指令在表12-3中列出。是是是-否否否a.如果你需要一个边界扫描实现,则你必须在到JTAG-DP的封包(wrapper)中执行CLAMPZ指令时所有的三态输出都置于其无效状态,但供输出的1 12-4JTAGIRIR指令中所述,IR寄存器中的值确定了哪条扫描链与TDI和TDO信号相连。ID32 2812 28121数据12-5JTAGID启动DP或AP,来DP或AP寄存器。DPACC和APACC用作对寄存器的和写器的移位区域作为TDI和TDO之间的串行路径:两个ACK响应,见表12-4中的总述。12-4DPACCAPACCACK在移位-DR12-6所示,移出数请见DPACC或APACC的WAIT响应。
CTRL/STAT寄存器来判断传输是否成功,请见控制/(CTRL/ST读或写DP寄存器。读或写AP寄存器。内容请见JTAG-DP寄存器映射。如果你想AHB-AP寄存器,则有关寄存器寻址的详细信息见表11-27。一次DPACC或APACC扫描能够在请求另一次寄存器的同时,返回前一次读操作DPRDBUFF寄存器来返回最后一次读操作的结果。DPRDBUFF寄次DPACC或APACC扫描如何从前一次扫描中返回结果的信息请见目标响应总结部分。如果推动比较或推动验证(pushedcompareorpushedverify)RnW的扫这个比较值来更新。详细信息见推动比较和推动验证操作。推动操作通过DPAP直到AP通知它已完成时才结束。例如,如果你器端到器系统向AHB-AP告知器已完成时,该操作才结束。前面的处理可以是DP或AP。通过返回WAIT,DP停止,直到前面的所ABORTAPAP接口上的传输。但在接收到ABORT时,AP应释放其JTAG接口。Overrun标志的详细信息请见控制/状态寄存器,CTRL/STAT。但能够DP寄存器。特别是能够CTRL/STAT寄存器,来确认StickyOverrun标志是JTAG时钟TCK与进行调试的系统的内部时钟是异步的,完成一次所需的时间由这两种时钟域来计时。但更新-DR状态和捕获-DRTCK周期。参考:如果采用第二条路径,则状态机能够在运行-测试/TCK周期。这意味着可以在更新-DR和捕获-DR状态之间变化TCK的周期数。JTAG实现可以在更新-DR状态和捕获-DRTCK另外,在AP寄存器或通过AP相连的一个器件时,系统内可能有其它可变的或APACC,总结了捕获-DR状态时的目标响应。在表中,读结果为移出的数据Data[34:3],ACK根据移出的数据Data[2:0]来译码。XXx忙Rxb00b00和b11Wx写CTRL/STAT写SELECTb00R否W否X是x新状态使得后面的WAIT响应被放弃。stickyDPCTRL/STATsticky标志置位。请见控制/读写35问中止寄存器的35位的扫描链上。 4432100SW-DP利用同步的串行接口来操作。该接口使用一个双向数据信号和时钟信号。线上的每个操作序列都由以下2个或3个阶段组成:的ORUNDETECT标志置位时才呈现该阶段。请见控制/状态寄存器,CTRL.STAT。WAITFAULT。有关CTRL/STAT寄存器的详细信息请见控制/状态寄存器,能够停止。在最后一个数据位已传输到线上时,必须再计时两个DBGCLK时钟。SW-DP将一条串行线用于主机和目标信号。主机仿真器驱动协议的时序—只有主机仿真器产生数据包的报头(packetheader。(oversampling片(timesolt)作为切换(handover)的一部分来确保不出现竞争现象,这一点非常重要。必须采用大电阻以减小来自目标端的IDLE状态的电流消耗。则最少必须使用50个时钟周期,后面跟随一个READ-ID,作为重新连接的新序列。在协议能够以一个训练序列(trainingsequence)重新开始之前,的两端变为复位信号,SW-DP检测到同步已SW-DP在一行中检测到两个错误的数DBGDI50个时钟周期的复位序成功的写操作(OK响应成功的读操作(OK响应 示APACC,为1表示DPACC。 奇偶校验位用来对数据包的报头部分和数据部分分别进行保护。ACK位已进行冗321的位数目。如果该值为奇数,则奇偶校 件拉高。目标将该位读作1。 (turnaround在异步SWD协议中没有附加的掉转周期。 WDATA[0:31]的值上以LSB在先的方式发送。 32位读数据,从目标到主机。词中对Trn的描述。001串行线由谁驱动:主 目 主信息见阐述操作时的中对Trn的描述。而在第二和第三阶段之间没有掉转周期。110[23]串行线由谁驱动:主 目述操作时的中对Trn的描述。010串行线由谁驱动:主 目述操作时的中对Trn的描述。001串行线由谁驱动:主 目
ID寄存器的有效的报头请求,然后主机返回常规的响应和数据。让stateOK当接收到来自调试主机的数据包请求时,SW-DP必须立即响应。如果需要一次传输,SW-DP已准备好传输的数据阶段,则发出OK响应,由应答阶段为b001来指示。周期,详细信息见阐述操作时的中对Trn的描述。1,然后是00,如图12-812-9所示。如果主机请求对DP执行一次读,则SW-DP在应答之后立即发送读数据。因为在应答和读数据之间数据传输方向没有改变,所以这两个阶段之间没有掉转周期,如图12-9READOK标志在每一次AP读以及每次RDBUFF读上都会更新。当SW-DP1RESEND请求来获得读结果。见读再发寄存器,RESEND(只用于SW-DP)。请求发送WAIT响应。SW-DP必须始终能够立即处理以下3个请求:没有数据阶段。出现下列情况时发送WAIT响应:ABORTAP,告知它必须终止当前正在尝试的传输。APASICABORT请求时,AP必须释放串行线调试接口。应,见控制/状态寄存器,CTRL/STAT。sticky溢出标志的详细信息见sticky溢出行为。FAULT响应的使用能够使协议保持同步。调试器可以发送一个数据块,然后在数据块结束时检测CTRL/STAT寄存器。如果SW-DP一次处理还没有成功完成时接收到一个处理请求,则它产生WAIT响00010线由谁驱动 主 目010001线由谁驱动:主 目 主机能够发出一个新的传输请求。此时,它必须读IDCODE寄存器,见标识代码寄存器,(retraining出读。虽然不一定成功,但可能性也是非常大的。因为读操作具有流水线属性并且AP能够实现FIFO功能。DPIDCODECTRL/STATDP停止这些寄存器的读APACK响应来确定哪个处理失APAP在执行SW-DP寄存器之前检验写缓冲区是否可用。,目标SW-DP的响应。,目标SW-DP的响应。XX以IDCODEXX否是否是否否是X否否无数据阶段,除非溢出检测使能b。将是X无数据阶段,除非溢出检测使能b。将否是否否无数据阶段,除非溢出检测使能b。将是X无数据阶段,除非溢出检测使能b。将XX否是否否是X冲否是否否是X冲WDATAAP寄存器如何寻址的概述见本表格的脚注c。DPACK12-9中可以查看响应。在执行奇的所有可能的请求,并总结了SW-DP如何响应每次请求。接收到的R捕获来自目标的WX通常重复原来的操作请求。详细信息见XX主机需退回(backR主机需退回(backW是FAULT响应。后面的写操作不会受到捕获并放弃该数据。在写操作时,调试器必须发送WDATA数据包,但目标将忽略该数据包。目标给出WAIT应答的时间。WPOZ010WPOZ100ZPRPOZ010RPOZ100PZ
对AP进行将导致在DAP内部总线上产生一次传输。这些传输含有地址阶段和数据阶段。如果该需要时间来处理事务,例如,如果它必须向系统总线执行AHB访擎接受的一次新传输WD[1]。后面的任何传输都必须停止,直到第一次传输结束。 WD[-TTWTRRTTTTTTT期,来确保能够检测到背对背处理(back-to-backtransaction)的起始位。操作的结果。不同的sticky标志在以下部分描述:Sticky标志在置位时保持置位状态直到被明确地。尽管引起该标志置位的条件已不存在错误标识时,完成当前的处理,并放弃其它的APACC(AP)处理,直到sticky标志Error标志STICKYERR将置位。溢出检测模式通过将DP控制/ORUNDETECT置位来使能。sticky溢出标志STICKYORUN置位。Sticky错误标志STICKYERR不置位。其它sticky标志可能在第一次处理完成时置位。后面的STICKYORUN的值不可预知。为保持溢出检测模式,调试器必须:SW-DP检测到消息报头的奇偶错误,则调试端口不响应该消息。调试器必须意识存器中的写数据错误标志WDATAERR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麋鹿课件完美教学课件
- 消防应急体系
- 3.1.1 铁及其性质 课件高一上学期化学(人教版2019必修第一册)
- 外汇期货课件教学课件
- 池塘边的小鸭教案反思
- 过生日说课稿
- 2025商场地产蛇年新春国潮年货节(蛇年行大集主题)活动策划方案-47P
- 智慧人工智能:开拓人工智能创新应用的方案
- 新能源汽车二手房交易合同模板
- 眼镜制造合作合同
- 航海学天文定位第四篇天文航海第1、2章
- 浙江大学学生社团手册(08)
- 水利水电工程专业毕业设计(共98页)
- 公司内部审批权限一览表
- 人教版统编高中语文“文学阅读与写作”学习任务群编写简介
- 六年级语文命题比赛一等奖作品
- 初中物理实验室课程表
- 贵州省建筑业营改增建筑工程计价依据调整实施意见(试行)解读519
- GB∕T 15829-2021 软钎剂 分类与性能要求
- 南充市物业服务收费管理实施细则
- 浦东新区“十一五”学科带头人、骨干教师培养和发展方案
评论
0/150
提交评论