




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告姓名:杨虎博学 号:1006030127指导教师:杨春玲成绩:一实验目的 电子与信息项目学院实验二:1. 了解ARM汇信息的与通信学会剛系 ARM的汇编语言编程。实验三:1了解ARM C语言的基本框架,学会使用 ARM的C语言编程。实验五:1.掌握ARM9的中断原理,能够对 S3C2410的中断资源及其相关中断寄存器的进 行合理配置;2.掌握对S3C2410的中断的编程的方法。二实验原理实验二:1. ARM汇编的一些简要的书写规范ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加:”,而所有指令均不能顶格书写。ARM汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。在
2、ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小 写混合使用。注释使用“”号,注释的内容由 “”号起到此行结束,注释可以在一行的顶格书写。详细的汇编语句及规范请参照ARM 汇编的相关书籍、文档,也可参照我们提供的文档。2. ARM 汇编语言程序的基本结构 在ARM汇编语言程序中,是以程序段为单位来组织代 码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段的和数据段, 代码段的内容为执行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有 一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时 最终形成一个可执行文件
3、。可执行映像文件通常由以下几部分构成: 一个或多个代码段,代码段为只读属性。零个或多个包含初始化数据的数据段,数据段的属性为可读写。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。源程序中 段之间相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。实验三 :1.ARM 使用 C 语言编程是大势所趋 在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且 不易移植。因为 ARM 的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点充分发挥,使得应用程序的开发时间大为缩短
4、,代码的移植十分方便,程序的 重复使用率提高,程序架构清晰易懂,管理较为容易等等。因此,C 语言的在 ARM 编程中具有重要地位。2. ARM C 语言程序的基本规则在 ARM 程序的开发中,需要大量读写硬件寄存器,并且尽量缩短程序的执行时间的代码 一般使用汇编语言来编写,比如 ARM 的启动代码, ARM 的操作系统的移植代码等,除此 之外,绝大多数代码可以使用 C 语言来完成。C 语言使用的是标准的 C 语言, ARM 的开发环境实际上就是嵌入了一个 C 语言的集成开 发环境,只不过这个开发环境和 ARM 的硬件紧密相关。在使用 C 语言时,要用到和汇编语言的混合编程。当汇编代码较为简洁,
5、则可使用直接内 嵌汇编的方法,否则,使用将汇编文件以文件的形式加入项目当中,通过ATPCS 的规定与C程序相互调用与访问。ATPCS,就是 ARM、Thumb 的过程调用标准 ARM/Thumb Procedure Call Standard),它 规定了一些子程序间调用的基本规则。如寄存器的使用规则,堆栈的使用规则,参数的传 递规则等。在C程序和ARM的汇编程序之间相互调用必须遵守ATPCS。而使用 ADS的C语言编译器编译的 C 语言子程序满足用户指定的 ATPCS 的规则。但是,对于汇编语言来说,完全 要依赖用户保证各个子程序遵循ATPCS的规则。具体来说,汇编语言的子程序应满足下面3个
6、条件:在子程序编写时,必须遵守相应的ATPCS规则;堆栈的使用要遵守相应的 ATPCS规则;在汇编编译器中使用-atpcs选项。基本的ATPCS规定,请详见提供的相关 PDF文档。 汇编程序调用 C 程序汇编程序的设置要遵循 ATPCS 规则,保证程序调用时参数正确传递。 在汇编程序中使用 IMPORT 伪指令声明将要调用的 C 程序函数。在调用C程序时,要正确设置入口参数,然后使用BL调用。C 程序调用汇编程序 汇编程序的设置要遵循 ATPCS 规则,保证程序调用时参数正确传递。在汇编程序中使用 EXPORT 伪指令声明本子程序,使其他程序可调用此子程序。在 C 语言中使用 extern 关
7、键字声明外部函数 声明要调用的汇编子程序)。在 C 语言的环境内开发应用程序,一般需要一个汇编的启动程序,从汇编的启动程序,跳 到 C 语言下的主程序,然后,执行 C 程序,在 C 环境下读写硬件的寄存器,一般是通过宏 调用,在每个项目文件的 Startup2410/INC 目录下都有一个 2410addr.h 的头文件,那里面定 义了所有关于 2410 的硬件寄存器的宏,对宏的读写,就能操作2410 的硬件。具体的编程规则同标准 C 语言。实验五:在 ARM 中,有两类中断,一类是 IRQ ,一类是 FIQ, IRQ 是普通中断 FIQ 是快速 中断,在进行大批量的复制、数据转移等工作时,常
8、使用此类中断。FIQ 的优先级高于IRQ 。同时,它们都属于 ARM 的异常模式,当一旦有中断发生,不管是外部中断,还是内 部中断,正在执行的程序都会停下, PC 指针进而跳入异常向量的地址处,若是IRQ 中断,则 PC 指针跳到 0x18 处,若是 FIQ 中断,则跳到 0x1C 处。异常向量地址处,一般存 有中断服务子程序的地址,所以,接下来 PC 指针跳入中断服务子程序中。当完成中断服 务子程序后, PC 指针会返回到被打断的程序的下一条地址处,继续执行程序。这就是 ARM 中断操作的基本原理。但是,通常因为生产 ARM 处理器的各厂家都集成了很多中断请求源,比如,串口中断、 AD 中断
9、、外部中断、定时器中断、 DMA 中断等等,所以,很多中断可能同时请求中断, 因此,为区分它们,更准确的完成任务,这些中断都有相应的优先级别,以及当发生中断 时,它们都有相应的中断标志位,通过在发生中断是判断中断优先级,和访问中断标志位 的状态来识别到底哪一个中断发生了。三 仪器设备:实验二 1. EL-ARM-830+ 教案实验箱, PentiumII 以上的 PC 机,仿真调试电缆,串口直连电 缆;2. PC 操作系统 WIN98 或 WIN2000 或 WINXP , ADS1.2 集成开发环境,仿真调试驱动程序。实验三:1. EL-ARM-830+教案实验箱,Pentiumll以上的P
10、C机,仿真调试电缆,串口直连电缆;2. PC 操作系统 WlN98 或 WlN2000 或 WlNXP , ADS1.2 集成开发环境,仿真调试驱动程 序。实验五: 1. EL-ARM-830+ 教案实验箱, PentiumII 以上的 PC 机,仿真调试电缆;2. PC操作系统 WIN98或WIN2000或WINXP , ADS1.2集成开发环境,仿真调试驱动程序。实验步骤:实验二:本实验仅使用实验教案系统的核心CPU 板。在进行本实验时, LCD 电源开关,音频的左右声道开关、 AD 通道选择开关、触摸屏中断选择开关等 均应处在关闭状 态。2. 在PC机并口和实验箱的 CPU板上的JTAG
11、接口之间,连接仿真调试电缆以及串口间连 接公/母接头串口线。3. 打开超级终端,配置串口的属性如COM1 ),配置波特率为 115200,校验位无,数据 位为 8,停止位为 1,数据控制流为无;检查连接是否可靠,可靠后,接入电源线,系统上 电,同时按住 “空格 ”键,进入 VIVI 状态。4. 打开 ADS1.2 开发环境,从里面打开 实验程序 HARDW实验六 Interrupt.mcp项目文件,进行编译。5 .编译通过后,进 入 ADS1.2 调试界面,加载 实验程序 HARDW实验六Interrupt_DataDebug 中的映象文件程序映像 Interrupt.axf 。6.在 ADS
12、 调试环境下全速运行映象文件。观察 LED1 和 LED2 的变化! LED1 和 LED2 灯 会因为定时中断的 1 秒钟发生一次,而一秒钟闪烁一次!也可以改变闪烁的频率,即改变 Startup2410target.c 文件内的 void Timer1_init(void 函数里的 rTCNTB1 = 48828。的赋值, 数字量越小,闪烁频率越快。编译全速运行,观看结果,看闪烁频率是否发生了改变!这 是对 GPIO 口操作的结果。具体实现见程序。实验三: 1.本实验仅使用实验教案系统的 CPU 板,串口。在进行本实验时, LCD 电 源开关、音频的左右声道开关、 AD 通道选择开关、触摸屏
13、中断选择开关等 均应处在关闭 状态。2. 在 PC 机并口和实验箱的 CPU 板上的 JTAG 接口之间,连接仿真调试电缆,以及串 口间连接公 /母接头串口线。3. 打开超级终端,配置串口的属性如 COM1 ),配置波特率为 115200,校验位 无,数据位为 8,停止位为 1,数据控制流为无;检查连接是否可靠,可靠后,接入电源 线,系统上电,同时按住 “空格 ”键,进入 VIVI 状态。4 .打开ADS1.2开发环境,从里面打开 实验程序HARDW实验三C.mcp项目文件,进行编译。5. 编译通过后,进入 ADS1.2 调试界面,加载 实验程序 HARDW实验三C_DataDebug 中的映
14、象文件程序映像 C.axf。6 在ADS调试环境下全速运行映象文件,之后,关闭超级终端,打开/实验软件/tools/目录下的串口调试助手工具,配置为波特率为115200,校验位无,数据位为 8,停止位为1。不要选十六进制显示,应出现图2-3-1界面。本程序连续发送 55。!凶555555555555555555555555555555 S 55-555555 555555S 555555舅555555S5555555555555S5555555555555弱 SS5555555555於555555弱555555555555555555555555555555砧555555馬馬55555S5S5
15、S馬防5555555558阳馬羽555S56555S5555555555555555SSS5555555555555S5555555555555S555555555555555555555555555555555555555-55 55555555555555555555応555555弱555555555555555555555555555555砧555555務卑5555565555黑555555565555砧55555555555555555555555555555555555555555555555555555555555555555S555555555555555555555555555
16、555555555555555555555555555肉55555555弗55囲55555555555555555555555555砧555555ts55555556s5s55s55555556555sts5555555555!ss55555555555555555SSS5555555555555S55555555555555555555555555555555555555555555555555555555555555E55555555555555555555砧55阳5555955555555555弗955555亦55555555巫陌555555騎55巫務5555555555巫虫555555
17、5555胡5555555555555555弱S55555555555S555555555555555555555555555555555555555555555555555555555555555555555555555率口 |弼|二間仝援收因停止显示I尽仔显示数竭画CDMDWAhttp ; /www tjwivuh. cpMAIL WEBJWTECHI览送文件I还没百选择=件选择握送文件| 帮助TX;0RX:10348逝至重埴|发送的宇符您据 厂+六进制握送手动握送| 厂目动炭送嵋期改喪后贡选) 自动加建周期:|1DOO 輕 卡STATUS : CTM1 OFENED r图 2-3-1下边分
18、析主程序的源码:在C程序前的部分为系统的初始化,这在后边BOOTLOADER的章节里,要详细介绍。/嵌入包括硬件的头文件/定义全局变量/目标板初始化,定义串口的硬件初始化在/target.c 中定义#inelude .incconfig.h un sig ned char data。 void Main (voidTarget_Init(。/延时/给全局变量赋值Delay(10。 data = 0x55。甲 口関试助手 SComAssistant X工 For WINSX.NT/2000while(1 Uart Printf(%x ,data。串口 0 输出Delay(10。实验五: 1本实验
19、仅使用实验教案系统的核心CPU 板。在进行本实验时, LCD 电源开关,音频的左右声道开关、 AD 通道选择开关、触摸屏中断选择开关等 均应处在关闭状 态。2在 PC 机并口和实验箱的 CPU 板上的 JTAG 接口之间,连接仿真调试电缆以及串 口间连接公 /母接头串口线。3 打开超级终端,配置串口的属性 函数里的 rTCNTB1 = 48828。的赋值,数字量越小,闪烁频率越快。编译全速运行,观看结果,看闪烁频率是 否发生了改变!这是对 GPIO 口操作的结果。具体实现见程序。五 实验源代码1.实验二:基于 ARM 的汇编语言程序设计在 UART 前的部分为系统的初始化,这在后边 BOOTL
20、OADER 的章节里,要详细介 绍。 UART 后的程序为主程序,在程序中找到下面这部分的代码,/呼叫主应用程序b UARTUARTldr r0, =GPHCON 。/设置 GPIO(RxD0,TxD0 引脚 ldr r1, =0x2afaaastr r1, r0ldr r0, =GPHUPldr r1, =0x7ffstr r1, r0 。 /GPH10:0 禁止上拉ldr r0, =UFCON0 。 /禁用 FIFOldr r1, =0x0str r1, r0ldr r0, =UMCON0 。/ 禁用 AFCldr r1, =0x0str r1, r0ldr r0, =ULCON0。 /设
21、置线寄存器ldr r1, =0x3 。 / 正常模式 ,无奇偶校验 ,一个停止位 ,8 个数据位str r1, r0ldr r0, =UCON0 。 /设置 Uart0 控制器ldr r1, =0x245 。 /RX 边沿触发 ,TX 电平触发 ,禁用延时中断 , 使用 RX 错误中断 ,正常 操作模式 ,中断请求或表决模式str r1, r0ldr r0, =UBRDIV0 。 /设置波特率为 115200ldr r1, =0x1a 。 /int(50700000 / 16 / 115200 - 1 = 26str r1, r0mov r1, #100Delaysub r1, r1, #0x
22、1bne Delay。/开中断ldr r0, =INTMSKldr r1, r0and r1, r1, #0xefffffffstr r1, r0MOV R5 , #127 。 / 设置要打印的字符的个数MOV R1 , #0x0 。/ 设置要打印的字符LOOPLDR R3 , =UTRSTAT0LDR R2 , R3TST R2 ,#0x04 。/ 判断发送缓冲区是否为空BEQ LOOP 。 /为空则执行下边的语句,不为空则跳转到LOOPLDR R0 , =UTXH0STR R1 ,R0。 /向数据缓冲区放置要发送的数据ADD R1, R1, #1SUB R5 ,R5, #0x01。 /计数
23、器减一CMP R5 ,#0x0BNE LOOPLOOP2 B LOOP2 2.基于 ARM 的 C 语言程序设计BOOTLOADER 的章节里,要详细介绍。在 C 程序前的部分为系统的初始化,这在后边#include .incconfig.hunsigned char data。 void Main(void Target_Init( 。 /target.c 中定义 Delay(10 。 data = 0x55 。/ 嵌入包括硬件的头文件/ 定义全局变量/ 目标板初始化,定义串口的硬件初始化在/ 延时/给全局变量赋值while(1puts( “ helwloo,rld ”。 /串口 0 输出D
24、elay(10 。3.ARM 的中断实验#include #include #include .Applicationincconfig.hvoid HaltUndef(voidUart_Printf(Undefined instruction exception.n 。 while(1 。void HaltSwi(voidUart_Printf(SWI exception.n 。 while(1 。void HaltPabort(voidUart_Printf(Pabort exception.n 。 while(1 。void HaltDabort(voidUart_Printf(Dabo
25、rt exception.n 。 while(1 。void Isr_Init(voidpISR_UNDEF = (unsignedHaltUndef 。 pISR_SWI = (unsignedHaltSwi 。 pISR_PABORT = (unsignedHaltPabort 。pISR_DABORT = (unsignedHaltDabort 。 rINTMOD = 0x0 。 /Interrupt mode regiseter.0 = IRQ mode 1 = FIQ moderINTMSK = BIT_ALLMSK 。 /Determine which interrupt sour
26、ce is masked.Themasked interrupt source will not be serviced.0 = Interrupt service is available.1 = Interrupt service is masked.rINTSUBMSK = BIT_SUB_ALLMSK 。 /Determine which interrupt source is masked.The masked interrupt source will not be serviced.0 = In terrupt service is available.1 = In terrup
27、t service is masked.void Targetnit(voidMMU_Init(。ChangeClockDivider(1,1。/1:2:4ChangeMPIIValue(0xa1,0x3,0x1。/ FCLK=202.8MHzPort_Init(。Isr_Init( 。Uart_Init(0,115200。Uart_Select(O。六实验现象1基于ARM的汇编语言程序设计2基于ARM的C语言程序设计3. ARM的中断实验在该实验中,按下程序启动后,初始化定时器1,设定定时器的中断时间,然后,等待定时器中断,当定时器中断到来时,就会进入定时器中断服务子程序,而中断服务子程 序
28、会把LED1和LED2灯熄灭或点亮,从现象中看到LED1和LED2灯忽闪一次,则说明定时器发生了一次中断。最后,关闭中断请求,等待下一次的中断的到来。为使CPU 响应中断,在中断服务子程序执行之前,必须打开ARM920T的CPSR中的I位,以及相应的中断屏蔽寄存器中的位。七、实验体会1.基于 ARM 的汇编语言程序设计1.1 S3C2410 的串口 UART 概述1) S3C2410 异步 串行通信 UART )单元S3C2410 UART 单元提供 3 个独立的异步串行通信接口,皆可工作于查询、中断和DMA模式。使用系统时钟最高波特率达230. 4 kb/s,如果使用外部设备提供的时钟,可以
29、达到更高的速率。每一个 UART 单元包含一个 16 字节的 FIFO 、1个或 2个停止位、 5位/6位/7 位/8 位数据宽度和奇偶校验。 控制, UBRDIVn 值计算公 如下:UBRDIVn=(intULK/( 波特率 X16 1或者UBRDIVn=(int PLK/( 波特率 X16 1式中:时钟选用 ULK 还是 PLK 由 UART 控制寄存器 UCONn10 的状态决定。如果UCONn10=0 ,则用 PLK 作为波特率发生器的时钟源频率;否则选用 ULK 作为波特率发 生器的时钟源频率。 UBRDIVn 的值必须在 1(2161之间。例如:若ULK或者PLK等于40 MHz,
30、当波特率为115200 b/s时,贝UUBRDIV n=(i nt40 000 000/(115 20016 一 1=i nt(21. 7 1= 21 1=203) UART 通信操作下面简略介绍 UART 操作,关于数据发送、数据接收、中断产生、波特率产生、查询检测 模式。发送数据帧是可编程的。一个数据帧包含 1个起始位、 58个数据位、 1个可选的奇偶校验 位和 12 位停止位,停止位通过行控制寄存器 ULCONn 配置。与发送数据帧类似,接收数据帧也是可编程的。接收帧由1个起始位、58个数据位、I个可选的奇偶校验位以及 1 2位行控制寄存器 ULCONn 中设定的停止位组成。接收器还可以
31、 检测溢出错、奇偶校验错、帧错误和传输中断,每一个错误均可以设置一个错误标志。1.2 UART的控制寄存器1 ) UART 行控制寄存器 ULCONn该寄存器的位 6决定是否使用红外模式,位5、位 4和位3决定校验方式,位 2决定停止位长度,位 1 和位 0 决定每帧的数据位数。具体如下:ULCONn7 保留;ULCONn6 红外线模式, 0:正常模式; 1 :红外线模式;ULCONn5 :3 校验模式, 0xx :无校验; 100:奇校验; 1 0 1 :偶校验;ULCONn2 停止位, 0:一个停止位; 1:二个停止位;ULCONn1 :0 数据位, 00:5位;01:6位;10:7位;1
32、1:8位。 ; 0 :正常模式。UCONn41:发送间断信号; 0:正常模式发送。UCONn3:2发送模式选择:00 :禁止发送;01 :中断或查询模式;10: DMAO 请求(UARTO , DMA3 请求(UART2 ;11: DMAl 请求(UART1。UCONn1 : 0 接收模式选择。00:禁止接收;01 :中断或查询模式;10 : DMA0 请求 UART0, DMA2 请求 UART2;11: DMAl 请求 UART1 。3)UART FIFO 控制寄存器 UFCONnUFCONn7:600: Tx FIFO 寄存器中有 0字节就触发中断;01: Tx FIFO 寄存器中有 4
33、字节就触发中断;10 : Tx FIFO 寄存器中有 8 字节就触发中断;11 : Tx FIFO 寄存器中有 12 字节就触发中断。UFCONn5:400: Rx FIFO 寄存器中有 4字节就触发中断;01: Rx FIFO 寄存器中有 8字节就触发中断;10 : Rx FIFO 寄存器中有 12 字节就触发中断;11 : Rx FIFO 寄存器中有 16 字节就触发中断。UFCONn3 保留。UFCONn2 1 : FIFO 复位清零 Tx FIFO ; 0 : FIFO 复位不清零 TxFIFO。UFCONn1 1: FIFO 复位清零 Rx FIFO ; 0: F仆O 复位不清零 R
34、xFIFO。UFCONn0 1 :允许 FIFO 功能; 0:禁止 FIFO 功能。4) UART MODEM 控制寄存器 UMCONnUMCONn7 : 5 保留,必须全为 0。UMCONn4 1 :允许使用 AFC 模式; 0:禁止使用 AFC 模式。UMCONn3 保留,必须全为 0。UMCONn0 1 :激活 rRTS; 0:不激活 rRTS。需要注意的是,在发生 溢出错误时,接收的数据必须被读出来,否则会引发下次溢出错误。4 I IC 1-EI. L Ir.RTrt R KQO/1 IV I - r .7T O H I XI 1 ,- | ISI-I AChTKI Z/J rs-1=
35、LJM /X Itk lQj/j r1-j=o m /x zi i : 5-4/1 rs1-1 j m .hx jii j rs.i-MKHOl K B Q KILlQz/j rs i i j m:e :hz 3 I 1 I I I hr-1 i : l 3 4.-1 1 llMLiK-l 5/J 卜 I - LI A IUy sty I 心 J5/ir i n_图5-2中断优先级设置图从上图可以看出,中断优先级产生模块共有7个中断仲裁器AIRBITER0AIRBITER6 ),每个中断仲裁器是否使能由寄存器PRIORITY6:O决定,每个中断仲裁器下面有46个中断源,这些中断源对应着REQ0REQ5这6个优先级。每个中断仲裁器可以控制6个中断请求的优先顺序(ARB_MODE,仲裁器和中断请求的优先顺序如表4-1示:表4-1优先级寄存器设定ttt想5畤疗PRIORITYtot-*tDB -1AIR.B1TER6-po IP*悴*va * ttstKW-REQO-1.43 4-501 -REQ0-2.3.A L. 5- lORBQO-X-4-1-2- H-KEQCH-1-2-3-J-AIRBITER5 IS L7J-OORfjQO-l.i.3.4.5 01-JlEQO.ilO-REQO-+1-2-5 ll-RC3OH-i-3.5-AmBlTEM1 l 毎对低QB)朴OO-RE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园艺工技师考试试题及答案
- 拼多多和java面试题及答案
- 铁路工程测量培训课件
- 2025年 德阳市人民医院招聘考试试卷附答案
- 感冒用药相关知识培训
- 员工异地培训差旅费会计处理指南
- 护理教师试讲15分钟范例
- 爱的教育导读课
- 2025时间管理培训:效率倍增的认识和行动实践指南
- 通风性关节炎的护理讲课
- 农村自建房流程
- 2025年江苏南京河西新城区国有资产经营控股集团招聘笔试参考题库附带答案详解
- 云南锡业职业技术学院《影视剧配音》2023-2024学年第一学期期末试卷
- 《路径规划算法》课件
- 弱电工程施工方案和施工措施
- 知识产权合规管理体系解读
- 血透护理记录书写规范
- 高血压性心脏病护理
- 托育职业竞赛试题及答案
- 《工业园区培训》课件
- 045.糖尿病患者血脂管理中国专家共识2024版
评论
0/150
提交评论