嵌入式复习笔记.docx

上传人:b****0 文档编号:18553356 上传时间:2023-08-19 格式:DOCX 页数:26 大小:624.92KB
下载 相关 举报
嵌入式复习笔记.docx_第1页
第1页 / 共26页
嵌入式复习笔记.docx_第2页
第2页 / 共26页
嵌入式复习笔记.docx_第3页
第3页 / 共26页
嵌入式复习笔记.docx_第4页
第4页 / 共26页
嵌入式复习笔记.docx_第5页
第5页 / 共26页
嵌入式复习笔记.docx_第6页
第6页 / 共26页
嵌入式复习笔记.docx_第7页
第7页 / 共26页
嵌入式复习笔记.docx_第8页
第8页 / 共26页
嵌入式复习笔记.docx_第9页
第9页 / 共26页
嵌入式复习笔记.docx_第10页
第10页 / 共26页
嵌入式复习笔记.docx_第11页
第11页 / 共26页
嵌入式复习笔记.docx_第12页
第12页 / 共26页
嵌入式复习笔记.docx_第13页
第13页 / 共26页
嵌入式复习笔记.docx_第14页
第14页 / 共26页
嵌入式复习笔记.docx_第15页
第15页 / 共26页
嵌入式复习笔记.docx_第16页
第16页 / 共26页
嵌入式复习笔记.docx_第17页
第17页 / 共26页
嵌入式复习笔记.docx_第18页
第18页 / 共26页
嵌入式复习笔记.docx_第19页
第19页 / 共26页
嵌入式复习笔记.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式复习笔记.docx

《嵌入式复习笔记.docx》由会员分享,可在线阅读,更多相关《嵌入式复习笔记.docx(26页珍藏版)》请在冰点文库上搜索。

嵌入式复习笔记.docx

嵌入式复习笔记

一、选择填空复习知识点:

1、典型的嵌入式系统:

Liunx、WindowsCE、PalmOS

2、一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成。

嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。

执行装置也称为被控对象,他接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。

3、嵌入式微处理器的分类:

(1)ARM特点:

a指令流水线b存储器访问c存储器接口d嵌入式ICE-RT逻辑

(2)MIPS(3)PowerPC(4)x86(5)68K/Coldfire

4、嵌入式微处理器的特点:

品种多、体积小、成本低、集成度高。

5、冯诺依曼体系结构:

是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

采用统一的地址及数据总线,程序指令和数据的宽度相同。

哈佛体系结构:

是一种将程序指令和存储数据存储分开的体系结构。

是一种并行结构。

6、

类别

CISC

RISC

指令系统

指令数量很多

较少、通常少于100

执行时间

有些指令执行时间长;或将多个寄存器的内容复制到存储器

没有较长执行时间的指令

编制长度

可变,1—15字节

固定,通常为4个字节

寻址方式

寻址方式多样

简单寻址

操作

可以对存储器和寄存器进行算术和逻辑操作

只能对寄存器进行算术和逻辑操作,load、store体系结构

编译

难以用优化编译器生成高效的目标代码程序

采用优化伴以技术、生成高效的目标代码程序

7、小端字节顺序存储法:

低字节数据存放在内存低地址,高字节数据存放在内存高地址。

大端字节顺序存储法:

高字节数据存放在内存低字节,低字节数据存放在内存低地址。

8、嵌入式软件的特点:

(1)规模较小

(2)开发难度大(3)实时性和可靠性要求高(4)要求固化存储

9、(嵌入式软件的体系结构。

)无操作系统的嵌入式软件主要有两种实现方式:

(1)循环轮转

(2)前后台a中断服务程序(ISR)负责处理异步事件,这部分可以看成是前台程序,也叫事件处理机程序。

b后台程序一般是一个无限的循环,负责掌管嵌入式系统软硬件资源的分配、管理以及任务的调度,是一个系统管理的调度程序。

后台程序也叫任务级程序。

10、按照系统对响应时间的敏感程度,可以把嵌入式操作系统分为:

实时操作系统和非实时操作系统。

(1)实时操作系统对响应时间要求非常严格的系统,当某一个外部事件请求发成时,相应的任务必须在规定的时间内完成相应的处理。

实时系统的正确性不仅依赖于系统计算的逻辑结构,还依赖于产生这些结果需要的时间。

实时操作系统可以分为:

(a)硬实时系统:

系统对响应时间有严格的要求,如果响应时间不能满足,这是绝对不允许的,可能会引起系统的崩溃或致命的错误。

(b)软实时系统:

系统对响应时间有要求,如果响应时间不能满足,将带来额外的代价,不过这种代价通常能够接受。

(2)非实时系统在响应时间上没有严格的要求,如分时系统。

11、按照软件结构分类:

(1)单体结构:

中间件和设备驱动程序通常就集成在系统内核当中。

整个系统通常只有一个可执行文件,里面包含所有的功能组件。

系统结构就是无结构,整个操作系统由一组功能模块组成,模块之间可以互相调用。

(2)分层结构:

一个操作系统被划分若干个层次,各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它底层的代码。

分层结构的OS也是只有一个大的可执行文件。

替换某一层时,不影响其他层。

(3)微内核结构(客户机-服务器结构):

在内核当中,把操作系统的大部分功能都剥离出去,只保留最核心的功能单元。

它的内核非常小,大部分的系统功能都外语内核之外。

它的优点是系统安全高、移植方便。

核外组件和核内组件之间采用的通信方式是消息传递。

12、ARM的2种工作状态:

ARM状态:

此时处理器执行32位的字对齐的ARM指令;Thumb状态:

此时处理器执行16位的半字对齐的Thumb指令

ARM的7种运行模式:

用户模式、快速中断模式、外部中断模式、管理模式、数据访问终止模式、系统模式、未定义指令中止模式。

ARM微处理器共有37个32位寄存器,其中31个位通用寄存器,6个状态寄存器。

重点记住的是:

R13(堆栈指针)、R14(子程序链接寄存器或连接寄存器LR)

R15(程序寄存器PC)程序状态寄存器(CPSR)

备份程序状态寄存器(SPSR)

13、3级流水线:

n条指令执行的时间为:

(n-1)*Tmax+T1;其中Tmax为取指时间、译码时间、执行时间中的最大值,T1位执行一条指令的完整时间。

而非流水线执行n条指令所要的时间为:

n*T1。

14、引导程序BootLoader是在操作系统内核运行之前运行的一段小程序。

它有两种操作模式:

“启动加载”模式和“下载”模式。

它分为两部分:

第一部分为基本硬件初始化,异常中断处理,并将第二部分的代码和数据复制到内存;第二部分为BootLoader的人际接口及重要功能部分。

15、ARM处理器的初始化过程:

(1)设置入口指针

(2)设置中断向量(3)初始化存储器系统(4)REMAP部分,在这部分代码中复制控制存储器空间分配的存储器以及做地址重映射。

(5)初始化堆栈(6)初始化必要的I/O(7)执行C语言所需的存储器空间(8)呼叫C程序

16、uC/OS的主要特点:

公开源代码、可移植性好、可固化、可裁剪、抢占式内核、多任务、可确定性、任务栈、系统服务、中断管理、稳定性与可靠性。

17、所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。

移植uC/OS-II的基本要求:

(1)处理器的C编译器产生可重入代码;可重入的代码指的是一段代码可以被多个任务同时调用,而不必担心会破坏数据。

(2)在程序中可以打开或者关闭中断

(3)处理器支持中断,并且能产生定时中断(通常在10—1000Hz之间)

(4)处理器支持能够容纳一定量数据的硬件堆栈

(5)处理器有将堆栈指针和其他CPU寄存器存储、读出到堆栈(或者内存)的指令

18、禁止中断:

OS_ENTER_CRITICAL();允许中断OS_EXIT_CRITICAL()。

访问代码的临界区前,uC/OS须先调用OS_ENTER_CRITICAL()禁止中断,访问完毕后,再调用OS_EXIT_CRITICAL()允许中断。

19、存储器系统的层次结构:

金字塔形。

CPU内部寄存器位于整个层次结构的最顶层(S0层),高速缓存(S1层),内存(S2层)、主存储器(S3层)、外部存储器(S4层)和远程存储器(S5层)。

20、了解Cache和MMU的工作原理。

当CPU要访问cache时,CPU送来主存地址,放到主存地址寄存器中,然后通过地址变换部件把主存中的块号M变成cache的块号m,并放到cache地址寄存器当中。

同时将主存地址中的块内N直接作为chache的块内地址n装入到cache地址寄存器中。

如果地址变化成功,就用cache地址去访问cache,从cache中取出数据送到CPU中。

如果地址变换不成功,则产生cache失效消息,并且接着使用主存地址直接去访问主存储器。

从主存储器中读出一个字送到CPU,同时,将从主存储器中读出来的数据装入到cache中去。

此时,如果cache已经满了,则需要采用某种cache替换策略把不常用的块先调出到主存储器中相应的块中,以使腾出空间来存放新调入的块。

MMU(内存管理单元)在CPU和物理内存之间进行地址转换。

由于是将地址从逻辑空间映射到物理空间,因此这个转换过程一般称为内存映射。

22、串行通信的三种模式:

单工通信、半双工通信、全双工通信。

23、在实际的应用中,利用RS-232-C的通信通常只使用其中的3根线,即RxD.TxD和GND。

24、通用异步收发器(UART)提供3个独立的异步串行I/O接口,都可以进行中断模式和DMA模式。

25、I/O接口的编址方式有:

I/O接口独立编址、I/O接口与存储器统一编址方式。

26.键盘扫描的原理:

让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。

一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下。

每个键被分配一个称为扫描码的唯一标识符。

应用程序利用该扫描码。

根据按下的键来判定应该采取什么行动。

27.802.3Mac层的帧格式

PR

SD

DA

SA

TYPE

DATA

PAD

FCS

56位

8位

48位

48位

16位

不超过1500字节

可选

32位

ARP(地址解析协议)的功能就是实现从IP地址到对应物理地址的转换。

TCP协议是一个面向链接的传输层协议,提供高可靠性的端到端数据通信。

UDP协议是一种无连接、不可靠的传输层协议。

28、FAT文件系统结构:

一个FAT文件系统由4个部分组成:

(1)保留区、

(2)FAT区、(3)根目录区、(4)文件和目录数据区

29、Unicode的每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。

在Unicode的双字节版本中使用的是16位编码方式。

二、简答题

1.嵌入式系统的定义和特点

以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。

特点:

系统内核小。

专用性强。

系统精简

高实时性的操作系统软件是嵌入式软件的基本要求;嵌入式软件开发要走向标准化,就必须使用多任务的操作系统。

嵌入式系统开发需要专门的开发工具和环境

2.宿主机是用于开发嵌入式系统的计算机,它通常拥有大容量的内存和硬盘,支持打印机等外设的PC机或工作点。

目标主机在嵌入式应用软件的开发和调试期间使用。

它可以是嵌入式应用软件的实际运行环境,也可以是能够代替实际运行环境的仿真系统。

宿主机和目标主机的连接可以分为两类:

物理连接和逻辑连接。

物理连接是指宿主机和目标主的一定物理端口通过物理线路连接在一起,其连接方式有三种:

串口,以太网接口,OCD方式物理连接是逻辑连接的基础。

逻辑连接是指宿主机和目标主机之间按某种通信协议建立起来的通信连接,目前还形成了一些通信协议的标准。

要顺利的建立交叉编译的环境,需要真确的设立这两种连接,缺一不可。

3.当正常的程序执行流程发生暂时的停止时,称之为异常

当异常出现后,arm微处理器会执行以下操作:

1).将下一条地址保存到相应的连接寄存器LR,以便程序在异常返回时能从正确的位置开始执行,若异常是从ARM状态进入的,LR寄存器中是下一条指令的地址(当前pc+4获PC+8,与异常的类型有关;若异常是从THUMB状态进入的,则LR寄存器中保存的是pc的偏移量。

这样异常处理程序就不需要确定异常是从何种状态进入的。

2).将cpsr复制到相应的spsr

3).根据异常的类型,强制设置CPSR的运行模式位

4).强制pc从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序上。

异常处理完毕之后,ARM微处理器会执行以下操作从异常返回:

1)将连接寄存器LR的值减去相应的偏移量后送到PC中

2)将SPSR复制到CPSR中

3)若在进入异常处理时设置了中断禁止位,要在此清楚。

异常向量:

处理异常的程序入口地址

4.一个任务也称一个线程,是一个简单的程序,改程序可以认为cpu只完全属于改程序。

任务的关系:

相互独立任务互斥任务通信任务同步

5.优先级反转是指一个任务等待比它优先级低的任务释放资源而被阻塞,如果这是有中等级的就绪任务,阻塞会进一步恶化,它严重影响了实时任务的完成。

为了防止发生优先级反转,一些商业内核使用了优先级继承技术,当优先级发生反转时,优先级较低的任务会被暂时地提高它的优先级,使得任务能尽快的执行,释放优先级较高的任务所占的资源。

优先级权限是另一种解决优先级反转的方案,系统把每一个临界资源与一个极限优先权相联系,这个极限优先权等于系统此时最高的优先权+1,当任务退出临界区后,系统会立即把它的优先级恢复正常,从而保证系统不会出现优先级反转的情况。

三、程序题。

1、可能是位操作。

&与、|或、^异或、~取反、>>右移、<<左移inta,b,c,d,e;1.a|=ox4//把a第2位置12.b&=~ox4//把a第2位置03.c&=~(1<<3)//把第3位置04.d^=(1<<5)//把第5位取反5.e>>=2//把e除以4注意:

与0异或,不变号;与1异或,变号。

2、ARM汇编。

P91-94重点是LDR,STR,算术运算、逻辑运算指令。

比较指令CMP(比较指令)CMN(负数比较指令)TST(位测试指令)TEQ(相等测试指令)可以改变CPSR中的条件标志位。

前变址:

LDRR0,[R1,#4];[R1+4]R0,R1内容不变

后变址:

LDRR0,[R1].#4;先[R1]R0,再R1+4R1

带回显的前变址:

LDRR0!

[R0,#4];先[R1+4]R0,再R1+4R1

四.综合题P120

UC/OS-II的任务调度包括任务级的任务调度和中断级的任务调度。

所采用的调度算法是相同的。

任务级的调度是由函数OSSched()完成的,中断级的任务调度是由则由函数OSIntExt()完成。

关于组变量和表变量的例子:

假设优先级为12的任务进入就需状态。

001100B。

001为行号,100为序列号。

则OSRdyGrp(组变量)的第1位置1,OSRdyTb[1](表变量)的第4位置1。

即以下操作:

OSRdyGrp|=ox02OSRdyTb[1]|=ox10。

1、单片机系统、嵌入式系统和SOC系统三者有何区别和联系?

(简答一)

答:

嵌入式系统与单片机系统的区别

•目前嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计;

•单片机系统多为4位、8位、16位机,不适合运行操作系统,难以进行复杂的运算及处理功能;

•嵌入式系统强调基于平台的设计、软硬件协同设计,单片机大多采用软硬件流水设计;

•嵌入式系统设计的核心是软件设计(占70%左右的工作量),单片机系统软硬件设计所占比例基本相同。

•SoC就是SystemonChip,SoC是一种基于IP(IntellectualProperty)核嵌入式系统设计技术。

•它结合了许多功能区块,将功能做在一个芯片上,ARMRISC、MIPSRISC、DSP或是其他的微处理器核心,加上通信的接口单元,例如通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。

•嵌入式片上系统设计的关键是IP核的设计。

IP核分为硬核、软核和固核,是嵌入式技术的重要支持技术。

2、嵌入式系统的定义、组成(简答二)

答:

嵌入式系统的狭义定义:

使用嵌入式微处理器构成的独立系统,并有自己的操作系统,具有特定功能,用于特定场合的系统。

嵌入式系统的组成:

嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。

3、实时系统的概念、RTOS和普通OS的区别(简答三)

答:

实时系统(RealTimeSystem)是指产生系统输出的时间对系统至关重要的系统。

从输入到输出的滞后时间必须足够小到一个可以接受的时限内。

RTOS与通用计算机OS的区别:

a.实时性。

响应速度快,只有几微秒;执行时间确定、可预测;b.代码尺寸小。

10~100KB,节省内存空间,降低成本;c.应用程序开发较难;d.需要专用开发工具:

仿真器、编译器和调试器等。

4、ARM的数据类型和处理器模式(简答四)

答:

ARM处理器支持下列数据类型:

a.Byte字节,8位;b.Halfword半字,16位(半字必须与2字节边界对准);c.Word字,32位(字必须与4字节边界对准)。

5、什么是写直达和写回Cache操作,各有何特点?

(简答五)

答:

写直达、写回、标记法是Cache的三种写操作方式,即三种不同的Cache更新算法。

•   写直达,顾名思义,它的做法是当Cache写命中时,Cache与主存同时发生写修改。

写直达法是写Cache与写主存同步进行。

其优点是Cache每行无需设置一个修改位及相应的判测逻辑;其缺点是Cache对CPU向主存的写操作无高速缓冲功能,降低了Cache的功效。

•   写回,当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,只当此行被换出时才写回主存。

这种策略使Cache在CPU与主存之间的读方向和写方向方面都起到高速缓存的作用。

对一Cache行的多次写命中都在Cache中快速完成修改,只是需被替换时才写回速度较慢的主存,减少了访问主存的次数,从而提高了效率。

6、ARM为何集成了32位的ARM指令集和16位的Thumb指令集?

(简答六)

答:

ARM指令集是32位的,THUMB是16位的。

他们可以动态切换。

你可以认为ARM是80386,而THUMB是8086。

在一般的情况下,Thumb指令与ARM指令的时间效率和空间效率关系为:

—Thumb代码所需的存储空间约为ARM代码的60%~70%—Thumb代码使用的指令数比ARM代码多约30%~40%—若使用32位的存储器,ARM代码比Thumb代码快约40%—若使用16位的存储器,Thumb代码比ARM代码快约40%~50%—与ARM代码相比较,使用Thumb代码,存储器的功耗会降低约30%

7、基于ARM的硬件启动流程(简答七)

答:

硬件启动程序的工作一般包括:

(1)分配中断向量表

(2)初始化存储器系统(3)初始化各工作模式下的堆栈(4)初始化有特殊要求的硬件模块(5)初始化用户程序的执行环境(6)切换处理器的工作模式(7)呼叫主应用程序

嵌入式系统试题

1.请简述嵌入式系统的设计过程。

2.简述ARM处理器的工作状态。

3.简述ARM处理器的7种运行模式及各自的用途。

4.简述BLX、SWI、STM、LDM、MOV、MVN的含义。

5.请解释下列程序中的各条指令:

.equx,45

.equy,64

.equstack_top,0x1000

.global_start

.text

_start:

movsp,#stack_top

movr0,#x

strr0,[sp]

movr0,#y

ldrr1,[sp]

addr0,r0,r1

strr0,[sp]

stop:

bstop

.end

6.分析说明S3C44B0X的总线优先级顺序。

7.S3C44B0X中具有哪几个定时器?

分别有哪些功能特性?

8.S3C44B0X中功耗管理的5种模式是什么?

9.简述BootLoader的作用。

10.写出S3C44B0X的UART1的初始化设置程序代码。

11ARM常见的寻址方式有哪些?

12嵌入式系统软件的层次结构并简要介绍?

13试述两种常见的ARM开发环境及其特点?

14:

S3C44B0XI2C总线接口操作有那四种操作方式?

15:

嵌入式系统的发展趋势

附:

试题答案

1.嵌入式系统得设计过程

(1)系统定义与需求分析

(2)系统设计方案的初步确立(3)初步设计方案性价比评估与方案评审论证(4)完善初步方案、初步方案实施(5)软硬件集成测试(6)系统功能性能测试及可靠性测试

2.ARM处理器的工作状态:

(1)ARM状态:

32位,ARM状态下执行字对准的32位ARM指令;

(2)Thumb状态:

16位,Thumb状态下执行半字对准的16位Thumb指令。

在Thumb状态下,程序计数器PC使用位1选择另一个半字。

3.ARM处理器的7种运行模式:

(1)用户模式:

正常用户模式,程序正常执行模式。

(2)FIQ模式:

处理快速中断,支持高速数据传送或通道处理。

(3)IRQ模式:

处理普通中断。

(4)SVC模式:

操作系统保护模式,处理软件中断。

(5)中止模式:

处理存储器故障,实现虚拟存储器和存储器保护。

(6)未定义模式:

处理未定义的指令陷阱,支持硬件协处理器的软件仿真。

(7)系统模式:

运行特权操作系统任务。

4.BLX:

带链接和状态切换的跳转指令SWI:

软件中断指令STM:

批量内存字写入指令LDM:

加载多个寄存器指令MOV:

数据传送指令MVN:

数据取反传送指令

5.

.equx,45/*定义变量x,并赋值为45*/

.equy,64/*定义变量y,并赋值为64*/

.equstack_top,0x1000/*定义栈顶0x1000*/

.global_start/*声明全局变量*/

.text/*将操作符开始的代码编译到代码段*/

_start:

/*程序代码开始标志*/

movsp,#stack_top/*定义堆栈位置*/

movr0,#x/*x的值放入r0*/

strr0,[sp]/*r0的值保存到堆栈*/

movr0,#y/*y的值放入r0*/

ldrr1,[sp]/*取堆栈中的数到r1*/

addr0,r0,r1/*将r0中的数和r1中的数相加的结构放入r0*/

strr0,[sp]/*r0的值保存到堆栈*/

stop:

bstop/*程序结束,进入死循环*/

.end

6.

(1)DRAMrefreshcontroller(DRAM刷新控制器);

(2)LCD_DMA(3)ZDMA0,1(4)BDMA0,1(5)Externalbusmaster(外部总线控制器);(6)Writebuffer(写缓冲区)(7)Cache和CPU。

7.6个16位定时器:

都可以工作在中断或DMA模式。

定时器0、1、2、3、4有PWM功能,定时器5只是一个内部定时器而无输出引脚。

PWM定时器特性为:

6个基于DMA或中断操作的16位定时器;3个8位预分频器,2个5位除法器和1个4位除法器。

输出波形可编程的功率控制器(PWM).自动重装或短脉冲模式(One-shotPulseMode).死区发生器,1个看门狗定时器:

看门狗定时器具有以下特性:

带中断请求的普通间隔定时器模式,当定时器计数值达到0时,内部复位信号被激活128MCLK周期

8.S3C44B0X中功耗管理的5种模式:

正常模式:

正常运行模式;低速模式:

不加PLL的低时钟频率模式;空闲模式:

只停止CPU的时钟;停止模式:

停止所有的时钟;LCD的SL空闲模式:

SL空闲模式的进入将导致LCD控制器开始工作。

此时,CPU和除LCD控制器外的所有外设都停止工作。

9.Bootloader作用:

系统引导程序,负责Linux内核的启动,用于初始化系统资源,包括SDRAM。

这部分代码用于建立Linux内核运行环境和从Flash中装载初始化Ramdisk等。

它首先完成系统硬件的初始化,包括时钟的设置、存储区的映射、堆栈指针的设置等;然后跳转到操作系统内核的入口,将系统控制权交给操作系统。

10.UART初始化程序:

staticintwhichUart=0;

voidUart_Init(intmclk,intbaud)

{inti;

If(mclk==0)

mclk=MCLK;

rUFCON1=0x0;

rUMCON1=0x0;

rULCON1=0x3;

rU

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2