版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专题四:S3C2440中断系统 专题四:S3C2440中断系统主要内容:主要内容: 一、概述及基本概念一、概述及基本概念 二、二、 S3C2440中断系统中断系统 三、应用部分三、应用部分 接口电路:中断应用实例接口电路:中断应用实例 C程序:中断编程步骤程序:中断编程步骤 Linux:中断服务函数及其驱动程序:中断服务函数及其驱动程序 专题四:S3C2440中断系统 一、概述及其基本概念当计算机用于实时控制时,中断是一个十分重要的功能。现场的各个参数、信息,需要的话可在任何时候发出中断申请,要求CPU处理;CPU就可以马上响应(若中断是开放的话)加以处理。这样的及时处理在查询的工作方式是做不
2、到的。 计算机在运行过程中,往往会出现事先预料不到的情况,或出现一些故障:如电源突跳,存储出错,运算溢出等等。计算机就可以利用中断系统自行处理,而不必停机或报告工作人员。专题四:S3C2440中断系统 2、中断、中断 指在计算机执行期间,系统内发生任何非寻常的或非预期紧急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。专题四:S3C2440中断系统 3、中断响应中断响应 中断响应是当中央处理机发现已有中断请求时,中止,保存现行程序执行,并自动引出中断处理程序的过程。中断响应是解决中断的发现和接收问题的
3、过程,是由中断装置完成的。中断响应是硬件对中断请求作出响应的过程,包括识别中断源,保留现场,引出中断处理程序等过程。 CPU在当前指令执行结束时,响应中断,进入中断的响应周期; 发出二个中断回答信号INTA完成一个中断响应周期; 进行断点及标志保存如:将段地址(CS),偏移地址(IP)标志FR以及压入堆栈。 读取中断类型号,找到中断源; 装入中断服务程序的入口地址(CS,IP)专题四:S3C2440中断系统 4、中断源:中断源:引起中断的原因或者说发出中断请求的来源叫做中断源。5、优先级优先级:为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干
4、个级别,称作中断优先级。 中断优先级越高, 则响应优先权就越高。当CPU正在执行中断服务程序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程序断点处继续执行, 这一过程称为中断嵌套。 专题四:S3C2440中断系统 二、二、 S3C2440中断系统中断系统一、一、S3C2440中断体系结构中断体系结构 ARM体系CPU的7种工作模式1、用户模式(usr):ARM处理器正常的程序执行状态2、快速中断模式(fiq):用于高速数据传输或通道处理3、中断模式(irq):用于通用的中断处理4、管理模式(svc):操作系
5、统使用的保护模式5、数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护6、系统模式(sys):运行具有特权的操作系统任务7、未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真 除用户模式外,其他6种工作模式都属于特权模式,大多数程序运行于用户模式,进入特权模式是为了处理中断、异常,或者访问被保护的系统资源专题四:S3C2440中断系统 中断是CPU处理外部突发事件的一个重要技术。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类。 硬件中断硬件中断是由处理器自身的硬件系统或着外部硬件部件触发引起的中断类型,硬
6、件中断又可以分为外部中断和内部中断两类: 外部中断外部中断一般是指由外设发出的中断请求,如:按键中断、串口中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求,S3C2440共有24个外部中断EINT0-EINT24。 内部中断内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算 溢出、单步中断等)所引起的中断,内部中断是不可屏蔽的中断,S3C2440共有35个内部中断。 软件中断软件中断与硬件中断不一样,它不是由硬件触发的,而是由软件调用系统提供的一个指令(SWI)来触发的中断行为,是程序本身有意识的引发的中断行为,由于
7、在用户模式下,程序对处理器资源的访问会受到一些限制,因此,需要采用软中断的方式将处理器工作模式切到异常模式下访问受限资源,因此软中断一般都被用于实现特殊系统调用功能提供给软件系统使用。专题四:S3C2440中断系统 三、中断源判定三、中断源判定 S3C2440中断源如下页表格所示,支持多达60个中断源。次级中断源与(主)中断源共享一条中断线。多个中断源共享一条中断线的需要在中断服务子程序中判断是哪一个中断源发出的中断。 S3C2440对60种中断源的管理是按层级分的。如下图所示(三级模式):专题四:S3C2440中断系统 专题四:S3C2440中断系统 3、中断次级源中断次级源专题四:S3C2
8、440中断系统 四、中断运行控制四、中断运行控制 仲裁步骤由硬件优先级逻辑决定并且写入结果到帮助用户通告是各种中断源中的哪个中断发生了的中断挂起寄存器中。中断处理框图如图所示。 如果ARM920T CPU中的PSR的F位被置位为1,CPU不会接收来自中断控制器的快中断请求(FIQ)。同样的如果PSR的I位被置位为1,CPU不会接收来自中断控制器的中断请求(IRQ)。因此,中断控制器可以通过清除PSR的F位和I位为0并且设置INTMSK的相应位为0来接收中断。 ARM920T有两种中断模式的类型:FIQ或IRQ,所有中断源在中断请求时决定使用哪种类型。专题四:S3C2440中断系统 五、中断优先
9、级设定五、中断优先级设定每个仲裁器可以处理基于 1 位仲裁器模式控制(ARB_MODE)和选择控制信号(ARB_SEL)的 2 位的 6 个中断请求,如下: 如果 ARB_SEL 位为 00b,优先级顺序为 REQ0、REQ1、REQ2、REQ3、REQ4 和 REQ5。 如果 ARB_SEL 位为 01b,优先级顺序为 REQ0、REQ2、REQ3、REQ4、REQ1 和 REQ5。 如果 ARB_SEL 位为 10b,优先级顺序为 REQ0、REQ3、REQ4、REQ1、REQ2 和 REQ5。 如果 ARB_SEL 位为 11b,优先级顺序为 REQ0、REQ4、REQ1、REQ2、RE
10、Q3 和 REQ5。请注意仲裁器的请注意仲裁器的 REQ0 的优先级总是最高并且的优先级总是最高并且 REQ5 的优先级总是最低。此外,通过改变的优先级总是最低。此外,通过改变 ARB_SEL 位,可以轮换位,可以轮换 REQ1 到到 REQ4 的顺序。的顺序。此处,如果 ARB_MODE 位被设置为 0,ARB_SEL 位不能自动改变,这使得仲裁器操作在固定优先级模式中。 (注意即使在此模式中,也不能通过手动改变 ARB_SEL 位来重新配制优先级) 。另一方面,如果 ARB_MODE 为1,ARB_SEL 位会被轮换方式而改变,例如如果 REQ1 被服务ARB_SEL 位被自动改为 01b
11、 以便 REQ1 进入到最低的优先级。ARB_SEL 改变的详细结果如下: 如果 REQ0 或 REQ5 被服务,ARB_SEL 位不会改变 如果 REQ1 被服务,ARB_SEL 位被改为 01b。 如果 REQ2 被服务,ARB_SEL 位被改为 10b。 如果 REQ3 被服务,ARB_SEL 位被改为 11b。 如果 REQ4 被服务,ARB_SEL 位被改为 00b。中断优先级产生模块如下图所示专题四:S3C2440中断系统 中断优先级发生模块图中断优先级发生模块图专题四:S3C2440中断系统 六、中断控制器特殊寄存器六、中断控制器特殊寄存器 此处中断控制器中有 5 个控制寄存器:
12、源挂起寄存器、中断模式寄存器、屏蔽寄存器、优先级寄存器和中断挂起寄存器。 所有来自中断源的中断请求首先被记录到源挂起寄存器中。基于中断模式寄存器,它们被分配到 2 个组中,包括快中断请求(包括快中断请求(FIQ)和普通中断请求()和普通中断请求(IRQ)。)。 IRQ 的多仲裁过程是基于优先级寄存器。源挂起 (SRCPND ) 寄存器SRCPND 寄存器由 32 位组成,其每一位都涉及一个中断源。如果中断源产生了中断则相应的位被设置为 1 并且等待中断服务。因此此寄存器指示出是哪个中断源正在等待请求服务。注意 SRCPND 寄存器的每一位都是由中断源自动置位,其不顾 INTMASK 寄存器中的
13、屏蔽位。另外 SRCPND 寄存器不受中断控制器的优先级逻辑的影响。 在指定中断源的中断服务程序中,必须通过清除 SRCPND 寄存器的相应位来正确的获得来自相同源的中断请求。如果从 ISR 中返回并且未清除相应位,则中断控制器的操作就好像其它中断请求已经从同一个源进入了。换句话说,如果 SRCPND 寄存器的指定位被设置为 1,其通常被认作一个有效中断请求正在等待服务。 清除相应位的时间依赖于用户的需要。如果希望收到来自相同冤源的其它有效请求,则应该首先清除相应位,并且接着使能中断。可以通过写入一个数据到此寄存器来清除 SRCPND 寄存器的指定位。其只清除那些数据中被设置为 1 的相应位置
14、的 SRCPND 位。那些数据中被设置为 0 的相应位置的位保持不变。专题四:S3C2440中断系统 1 1)RCPNDRCPND)寄存器)寄存器 SRCPND SRCPND寄存器由寄存器由3232位组成如位组成如表一表一所示,所示,源挂起(源挂起(S S其每一位都其每一位都涉及一个中断源,如涉及一个中断源,如表二表二所示。如果中断源产生了中断则相应的所示。如果中断源产生了中断则相应的位被设置为位被设置为1 1并且等待中断服务,因此此寄存器指示出是哪个中并且等待中断服务,因此此寄存器指示出是哪个中断源正在等待请求服务。断源正在等待请求服务。 在指定中断源的中断服务程序中,必须通过清除在指定中断
15、源的中断服务程序中,必须通过清除SRCPNDSRCPND寄存寄存器的相应位来正确地获得来自相同源的中断请求。如果从器的相应位来正确地获得来自相同源的中断请求。如果从ISRISR中中返回并且未清除相应位,则中断控制器的操作就好像其他中断请返回并且未清除相应位,则中断控制器的操作就好像其他中断请求已经从同一个源进入了。换句话说,如果求已经从同一个源进入了。换句话说,如果SRCPNDSRCPND寄存器的指定寄存器的指定位被设置为位被设置为1 1,其通常被认作一个有效中断请求正在等待服务。,其通常被认作一个有效中断请求正在等待服务。清除指定位的方法是通过写入数据到此寄存器中来清除清除指定位的方法是通过
16、写入数据到此寄存器中来清除INTPNDINTPND寄寄存器的指定位。在指定位写存器的指定位。在指定位写1 1只会清除数据中设置为只会清除数据中设置为1 1 的相应的相应INTPNDINTPND寄存器位的位置。数据中设置为寄存器位的位置。数据中设置为0 0的相应位的位置则保持的相应位的位置则保持不变。不变。专题四:S3C2440中断系统 表一表一专题四:S3C2440中断系统 2)中断模式寄存器(INTMOD) INTMOD寄存器由32位组成,每一位都都涉及一个中断源。如果指定某位为0则表示为IRQ模式中处理;如果某个指定为被设置为1,则在FIQ(快中断)模式中处理相应中断。因此,该寄存器只能有
17、一位为1。3)中断屏蔽寄存器(INTMSK) INTMSK寄存器由32位组成,其每一位都都涉及一个中断源。如果某个指定为被设置为1,则CPU不会去服务来自相应中断源(请注意即使在这种情况中,SRCPND寄存器的相应位也设置为1)的中断请求;如果屏蔽位为0,则可以服务中断请求。专题四:S3C2440中断系统 4 4)中断优先级寄存器()中断优先级寄存器(PRIORITYPRIORITY)表表2 2专题四:S3C2440中断系统 5)中断挂起寄存器(INTPND) 中断挂起寄存器中32位的每一位都表明了是否相应未屏蔽并且正在等待中断服务的中断请求具有最高的优先级。当INTPND寄存器在优先级逻辑后
18、被定位了,只有1位可以设置为1并且产生中断请求IRQ给CPU。IRQ的中断服务程序中可以读取此寄存器来决定服务32个中断源的哪个源。 就如SRCPND寄存器,必须在中断服务程序中清除了SRCPND寄存器后清除此寄存器。可以通过写入数据到此寄存器中来清除INTPND寄存器的指定位。只会清除数据中设置为1的相应INTPND寄存器位的位置。数据中设置为0的相应位的位置则保持不变。6)中断偏移寄存器(INTOFFSET) 中断偏移寄存器中的值表明了是哪个IRQ模式的中断请求在INTPND寄存器中。此位可以通过清楚SRCPND和INTPND自动清除。专题四:S3C2440中断系统 7)次级源挂起寄存器(
19、SUBSRCPND,见表4-21) 可以通过写入数据到此寄存器来清除SUBSRCPND寄存器的指定位。只有数据中那些被设置为1的相应SUBSRCPND寄存器位的位置才能被清除。数据中那些被设置为0的相应位的位置则保持不变。8)中断次级屏蔽寄存器(INTSUBMSK,见表4-22) 此寄存器有11位,其每一位都与一个中断源相联系。如果某个指定位被设置为1,则相应中断源的中断请求不会被CPU所服务(请注意即使在这种情况中,SRCPND寄存器的相应位也设置为1);如果屏蔽位为0,则可以服务中断请求。专题四:S3C2440中断系统 一、中断向量地址表示例一、中断向量地址表示例Reset_Handler
20、 ; 复位处理 0 x0Undef_Handler; 未定义指令处理 0 x4SWI_Handler; SWI指令处理 0 x8PreAbort_Handler; 预取指令中止处理 0 xCDataAbort_Handler; 数据异常处理 0 x10; 保留 0 x14IRQ_Handler; IRQ中断处理 0 x18FIQ_Handler; FIQ中断处理 0 x1C专题四:S3C2440中断系统 二、二、IRQIRQ中断处理过程中断处理过程 计算偏移量,其实原理很简单,首先INTOFFSET保存着当前是哪个IRQ中断,例如0代表着HandleEINT0,1代表HandleEINT1等。
21、 然后得到中断处理函数的向量表,这个表的首地址就是HandleEINT0,HandleEINT0 + INTOFFSET,即基地址加偏移量就得到表中某项了,当然,因为这里是中断处理向量每一项占用4个字节,所以用“lsl #2”处理一下,左移2位相当于乘以4,偏移量乘以4,这应该很好理解的。专题四:S3C2440中断系统 五、五、 外部中断外部中断要想正确地执行2440的外部中断,一般需要完成两个部分内容:中断初始化和中断处理函数。 外部中断被分为被SUBSRCPND/SUBMASK寄存器控制的中断,不被 SUBSRCPND/SUBMASK寄存器控制的中断; 外部中断必须经过SRCPND( SO
22、URCE PENDING)寄存器的控制; 外部中断最终经过INTMASK(中断屏蔽)与INTMODE(中断模式)寄存器的控制; 外部中断经过PRIORITY(优先级寄存器)的仲裁决定优先级; 通过INTPND寄存器来确认中断的发生以及清除中断 ,同一时间内只有一位被置1。专题四:S3C2440中断系统 1 1、外部中断主要寄存器、外部中断主要寄存器1 1)外部中断控制寄存器)外部中断控制寄存器EXTINTnEXTINTn EXTINTn EXTINTn设置外部中断请求信号是电平触发还是设置外部中断请求信号是电平触发还是边沿触发,边沿触发,专题四:S3C2440中断系统 2)外部中断屏蔽寄存器E
23、INTMASK设置开放或屏蔽对应的外部中断,与INTMASK类似。3)外部中断挂起寄存器EINTPEND外部中断挂起寄存器,与INTPEND类似。例:例:下面给出的是一个外部中断初始化的示例,示例中有6个按键接到了外部中断。专题四:S3C2440中断系统 /*按键中断的中断处理函数,中断中只清了中断的相关寄存器,未做中断的相关处理*/void key_isp()/* 中断服务函数示例 */* do something */rEINTPEND |= rEINTPEND; rSRCPND |= (1INT_EINT8_23);/*清源挂起相应位*/rINTPND |= rINTPND;/*清中断挂
24、起寄存器相应位*/专题四:S3C2440中断系统 rEXTINT2 |= (212); /*下降沿触发*/rEINTPEND |= (18)|(111)|(113)|(114)|(115)|(119); /*清外部中断挂起*/rEINTMASK &= (119)|(115)|(114)|(113)|(111)|(18); /*外部中断屏蔽*/rSRCPND |= (15); /*清源挂起对应位,EINT8_23*/rINTPND |= (15); /*清中断挂起*/rINTMSK &= (15); /*开放EINT8_23中断*/isr_handle_arrayINT_EINT
25、8_23 = key_isp; /*填写中断矢量*/专题四:S3C2440中断系统 三、应用部分1、下图为S3C2440的接口电路s3c2440开发板上有6个按键,将其中的前4个按键设为外部中断方式,当按下K1时,LED1亮;当按下K2时,LED2亮;当按下K3时,LED3亮;当按下K4时,LED4亮。硬件电路分析: 256M的2440板子上有4个LED,其接口电路如图1所示,当GPIO口输出为低电平时,相对应的LED灯亮;输出高电平时,LED灯灭。按键接口电路如图2所示,当按键没有按下时,GPGx引脚为高电平;当按键按下时,引脚电平变为低电平。专题四:S3C2440中断系统 2、中断控制程序
26、编写步骤、中断控制程序编写步骤主程序1、先清除中断源挂起寄存器( SRCPND SRCPND)和中断挂起寄存器( INTPND),可用 rSRCPND= rSRCPND 和rINTPND=rINTPND =来完成;2、设中断模式,这里使用通用中断,rINTMOD=0 x00000000因上电或复位时rINTMOD是清 0的,这步也可以不做。3、I/O 口初始化,有些中断源要通过 I/O 口向 CPU 申请中断,如外部中断 0(EXTINT0通过 )F口的 GPF0 、外部中断11(EXTINT11)通过G口的 GPG3 向CPU 申请中断,此时两个口的控制寄存器 GPFCON 和GPGCON
27、的要设置成:GPFCON1:0=1,0;GPGCON7:6=1,0。4、设中断服务函数地址, S3C2410 在2410addr.h 中定义了 40个宏,设置了系统支持的中断服务函数的指针,设中断服务函数地址就是把我们编写的中断服务函数的地址(就是中断服务函数的名字)赋予相应的函数指针。每个中断源的中断服务函数指针名是固定的:pISR+中断源。5、设中断触发方式,触发方式有 5种,有上升沿、下降沿、双沿、低电平、高电平触发方式,外部中断触发方式在外部中断控制寄存器 (EXTINTn)中设定。如 EINT0 触发方式在 EXTINT02:0 中设定,2:0=000 低电平、 001 高电平、 0
28、1X 下降沿、 10X 上升沿、 11X 双沿触发。专题四:S3C2440中断系统 6、取消总中断屏蔽和子中断屏蔽,等待中断。例如通过 rEINTMASK rEINTMASK&=(10;k-) for(j=0 xff;j0;j-); x-; void ledMain(void) rGPBCON = 0 x1dd7fc; / GPB5,GPB6,GPB8,GPB10设置为输出,连接了4个LED rGPBDAT|=0 x560; /4个LED全灭 rGPFCON &=(30)|(34)|(36)|(38) ; rGPFCON |= (20)|(24)|(26)|(28) ; /GP
29、F0,GPF2,GPF3,GPF4工作在第二功能状态,即中断 /rEXTINT0=0 x0; rEINTPEND=(14); /清外部中断挂起寄存器,清的是外部中断4 ClearPending(BIT_EINT0|BIT_EINT2|BIT_EINT3|BIT_EINT4_7); /清外部中断0,2,3,4 pISR_EINT0= pISR_EINT2 =pISR_EINT3 = pISR_EINT4_7=(int)Key_ISR; /设中断服务函数地址 EnableIrq(BIT_EINT0|BIT_EINT2|BIT_EINT3|BIT_EINT4_7) ; /使能中断,即使INTMSK相
30、应位为0 rEINTMASK=(14); /使能外部中断4 while(1); /等待中断发生专题四:S3C2440中断系统 static void _irq Key_ISR()/中断服务函数,_irq用来声明通用中断函数 char key;/用来标识是哪一个按键按下 unsigned int r; rINTMSK=0 xffffffff;/这是屏蔽所有中断 if(rINTPND=BIT_EINT0) /因为4个中断用的是同一个中断服务函数,所以判断是哪一个中断发生 ClearPending(BIT_EINT0); /并清除挂起寄存器,获得键值 key=1; else if(rINTPND=B
31、IT_EINT2) ClearPending(BIT_EINT2); key=2; else if(rINTPND=BIT_EINT3) ClearPending(BIT_EINT3); key=3; else if(rINTPND=BIT_EINT4_7) rEINTPEND=(14); ClearPending(BIT_EINT4_7); key=4; switch(key) /根据键值控制4个LED亮灭变化 case 1:专题四:S3C2440中断系统 rGPBDAT=(15); break; case 2: rGPBDAT=(16); break; case 3: rGPBDAT=(1
32、8); break; case 4: rGPBDAT=(1= 0) & (INTOFFSET = 31) & (afInterruptISRINTOFFSET != NULL)afInterruptISRINTOFFSET(); /处理中断rSRCPND |= (1 INTOFFSET); /清除中断标志rINTPND |= (1 = 0 & nInterruptNo = 0 & nInterruptNo = 31)afInterruptISRnInterruptNo = NULL; IRQ_SetMask(nInterruptNo,INT_MSK_DISABL
33、E);/关闭中断 /设置中断掩码void IRQ_SetMask(int nInterruptNo,int nEnable)/根据参数对相关的中断掩码寄存器的相对应位进行设置,/注意:在开启一级中断时,要先对注意:在开启一级中断时,要先对SRCPND中对应位进行清零,然后再对中对应位进行清零,然后再对INTMASK操作。操作。专题四:S3C2440中断系统 3、Linux 中断服务函数及其驱动程序中断服务函数及其驱动程序1)Linux中断处理程序架构中断处理程序架构:Linux将中断分为:顶半部(top half)和底半部(bottom half)顶半部: 完成尽可能少的比较紧急的功能,它往往
34、只是简单的读取寄存器中的中断状态并清除中断标志后就进行“登记中断”(也就是将将底半部处理程序挂在到设备的底半部执行队列中底半部处理程序挂在到设备的底半部执行队列中)的工作特点:响应速度快 底半部: 中断处理的大部分工作都在底半部,它几乎做了中断处理几乎做了中断处理程序的所有事情程序的所有事情。特点:处理相对来说不是非常紧急的事件专题四:S3C2440中断系统 小知识:Linux中查看/proc/interrupts文件可以获得系统中断的统计信息。如下图所示:第一列是中断号 第二列是向CPU产生该中断的次数专题四:S3C2440中断系统 2)中断服务函数)中断服务函数 中断部分的中断部分的API函数函数: static inlineint gpio_to_irq(unsigned gpio) 例:gpioToIrq = gpio_to_irq (R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业互联网权限模型构建-深度研究
- 2025年度农家乐房屋租赁合同及文化传承合作协议4篇
- 二零二五年度窗帘布料批发与零售合作协议3篇
- 二零二五年版某教育机构在线课程开发合同4篇
- 二零二五版企业办公空间租赁合同模板4篇
- 2025年度木工木作工艺传承合同4篇
- 二零二五年度特种工程船舶交易合同4篇
- 二零二五年度农田租赁与农业产业扶贫合作协议4篇
- 二零二五年度电梯设备安装安全培训与事故预防合同4篇
- 2025年度藕塘渔业养殖与农产品深加工合作协议书4篇
- 运动技能学习与控制课件第十一章运动技能的练习
- 虫洞书简全套8本
- 射频在疼痛治疗中的应用
- 四年级数学竖式计算100道文档
- “新零售”模式下生鲜电商的营销策略研究-以盒马鲜生为例
- 项痹病辨证施护
- 职业安全健康工作总结(2篇)
- 怀化市数字经济产业发展概况及未来投资可行性研究报告
- 07FD02 防空地下室电气设备安装
- 教师高中化学大单元教学培训心得体会
- 弹簧分离问题经典题目
评论
0/150
提交评论