




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)和嵌入式系統(tǒng)linux的區(qū)別 6推薦隨著嵌入式行業(yè)硬件平臺的性能增強(qiáng),項(xiàng)目需求和功能日益復(fù)雜,ARM公司推出的 CORTEX-M3,更是讓以往做單片機(jī)的工程師在芯片和技術(shù)選型面臨兩難選擇,本專題將從芯片價(jià)格、整個(gè)系統(tǒng)的硬件軟件設(shè)計(jì)及維護(hù)的成本等各個(gè)方面給您提供一個(gè)參考, 并從技術(shù)角度分析單片機(jī)和帶操作系統(tǒng)的系統(tǒng)的軟件開發(fā)的異同點(diǎn)。 1.單片機(jī)與ARM等新處理器的價(jià)格比較 2.帶操作系統(tǒng)與不帶操作系統(tǒng)的軟
2、件開發(fā)的區(qū)別 2.1.驅(qū)動開發(fā)的區(qū)別 2.2.應(yīng)用程序開發(fā)的區(qū)別1. 單片機(jī)與ARM等新處理器的價(jià)格比較表1型號架構(gòu) 資源 價(jià)格(元)AT89S518051 最高頻率33MHz4KB Flash128B內(nèi)部RAM32個(gè)可編程IO引腳 兩個(gè)16bit的計(jì)數(shù)器 一個(gè)UART口 4SST89E564RD8051 最高頻率
3、40MHz 64KB Flash1KB內(nèi)部RAM32個(gè)可編程IO引腳 三個(gè)16bit的計(jì)數(shù)器 一個(gè)UART口 一個(gè)SPI接口 35STM32F103 CORTEX-M3 最高頻率72MHz64KB或128BK Flash20KB SRAM80個(gè)可編程IO引腳 2個(gè)12bit的ADC7通道DMA控制器 標(biāo)準(zhǔn)調(diào)試口(SWD和JTAG)7個(gè)定時(shí)器 USB接口 2個(gè)I2C接口 3個(gè)UART2個(gè)SPI接口 21HI3510ARM9+DSP雙核 最高工作頻率240MHz視頻處理單元,支持多種協(xié)議的實(shí)時(shí)編解碼 圖形處理單元 視音頻接口 以太網(wǎng)接口 DDR控制器 USB、UART、IrDA、 I2C、SPI、
4、GPIO等多種外設(shè)接口 80S3C2440ARM9最高工作頻率400MHzSDRAM控制器 LCD控制器 4通道DMA控制器 3個(gè)UART2個(gè)SPI1個(gè)I2C接口 IIS音頻接口 SD HOST接口 2個(gè)USB接口 8個(gè)10bit ADC攝像頭接口 Camera接口 40 從表1里面各種芯片的資源,大概就可以猜知它們的應(yīng)用場合。51單片機(jī)通常被用來做一些比較簡單的控制,比如采集信號、驅(qū)動一些開關(guān)。AT89S51的Flash只有4K,一個(gè)稍微復(fù)雜的程序就不止4K了。SST89E564RD是一種擴(kuò)展的51單片機(jī),它的Flash達(dá)到64KB,可以外接最多64KB的SRAM。在SST89E5
5、64RD上的程序可以寫得更復(fù)雜一些,但是它對外的接口也比較少。CORTEX-M3系列的處理器,對外接口極其豐富,這使得它的應(yīng)用面更廣,但是限于它的Flash、內(nèi)存還是比較小,一般不在上面運(yùn)行操作系統(tǒng),它算是一個(gè)性能非常突出的單片機(jī)。HI3510是海思半導(dǎo)體公司的一款用于監(jiān)控設(shè)備的芯片,一般上面運(yùn)行Linux系統(tǒng),通過攝像頭采集數(shù)據(jù)、編碼,然后通過網(wǎng)絡(luò)傳輸。另一端接收到數(shù)據(jù)之后,再解碼。在上面運(yùn)行的程序非常復(fù)雜,有漂亮的圖片界面、觸摸屏控制、數(shù)據(jù)庫等等。對聲音圖像的編解碼更是用到DSP核。S3C2440是一款通用的芯片,它與“高級單片機(jī)”STM32F103相比,多了存儲控制器和NAND控制器這使
6、得可以外接更大的Flash、更大的內(nèi)存;多了內(nèi)存管理單元(MMU)這使得它可以進(jìn)行地址映身(虛擬地址、物理地址之間的映射)??梢栽赟3C2440上運(yùn)行Linux系統(tǒng),運(yùn)行更大更復(fù)雜的程序。在具體工作中,怎么選擇這些芯片呢?一句話:成本!進(jìn)行任何產(chǎn)品的開發(fā)都要考慮性價(jià)比,一切應(yīng)該從“成本”出發(fā)。成本不僅包括芯片的價(jià)格,也包括整個(gè)系統(tǒng)的硬件、軟件設(shè)計(jì)及維護(hù)的難易。芯片價(jià)格可以在電子市場問到,也可以在上找到有賣這種芯片的柜臺,然后電話咨詢?;诓煌膽?yīng)用,處理器和其他外設(shè)的選擇是要統(tǒng)一考慮的,如果要實(shí)現(xiàn)一個(gè)簡單的U盤讀寫功能,那么可以選擇帶USB控制器的CORTEX-M3芯片,也可以選擇8051外接
7、一個(gè)USB控制器比如SL811,就看哪種方案成本更低。進(jìn)行芯片選型時(shí),必須基于整個(gè)系統(tǒng)來考慮。員工的偏好和知識結(jié)構(gòu)也是一個(gè)很重要的因素,如果他對ATMEL的芯片比較熟,他就不會傾向于三星;如果他不會Linux等操作系統(tǒng),那么選型時(shí)就不會有操作系統(tǒng)的概念。選擇自己不熟悉的芯片和技術(shù),最后的成本也可能更高。2. 帶操作系統(tǒng)與不帶操作系統(tǒng)的軟件開發(fā)的區(qū)別用通俗的話來說,一個(gè)處理芯片不運(yùn)行操作系統(tǒng),我們就把它稱為單片機(jī),而單片機(jī)編程就是寫裸板程序,這個(gè)程序直接在板子上運(yùn)行;相對的,另一種程序就是基于操作系統(tǒng)的程序,說得簡單點(diǎn)就是,這種程序可以通過統(tǒng)一的接口調(diào)用“別人寫好的代碼”,在“別人的基礎(chǔ)上”更快
8、更方便地實(shí)現(xiàn)自己的功能。2.1. 驅(qū)動開發(fā)的區(qū)別驅(qū)動開發(fā)的區(qū)別我總結(jié)有兩點(diǎn):能否借用、是否通用。2.1.1 能否借用基于操作系統(tǒng)的軟件資源非常豐富,你要寫一個(gè)Linux設(shè)備驅(qū)動時(shí),首先在網(wǎng)上找找,如果有直接拿來用;其次是找到類似的,在它的基礎(chǔ)上進(jìn)行修改;如果實(shí)在沒有,就要研究設(shè)備手冊,從零寫起。而不帶操作系統(tǒng)的驅(qū)動開發(fā),一開始就要深入了解設(shè)備手冊,從零開始為它構(gòu)造運(yùn)行環(huán)境,實(shí)現(xiàn)各種函數(shù)以供應(yīng)用程序使用。 舉個(gè)例子,要驅(qū)動一塊LCD,在單片機(jī)上的做法是: 首先要了解LCD的規(guī)格,弄清楚怎么設(shè)置各個(gè)寄存器,比如設(shè)置LCD的時(shí)鐘、分辨率、象素 劃出一塊內(nèi)存給LCD使用 編寫一個(gè)函數(shù),實(shí)現(xiàn)在指定坐標(biāo)描
9、點(diǎn)。比如根據(jù)x、y坐標(biāo)在這塊內(nèi)存里找到這個(gè)象素對應(yīng)的小區(qū)域,填入數(shù)據(jù)?;诓僮飨到y(tǒng)時(shí),我們首先是找到類似的驅(qū)動,弄清楚驅(qū)動結(jié)構(gòu),找到要修改的地方進(jìn)行修改。下面是單片機(jī)操作LCD的代碼: 初始化:void Tft_Lcd_Init(int type) /*
10、; * 設(shè)置LCD控制器的控制寄存器LCDCON15 * 1. LCDCON1: * 設(shè)置VCLK的頻
11、率:VCLK(Hz) = HCLK/(CLKVAL+1)x2 * 選擇LCD類型: TFT LCD * 設(shè)置顯示模式: 16BPP
12、160; * 先禁止LCD信號輸出 * 2. LCDCON2/3/4: * 設(shè)置控制信號的時(shí)間參數(shù)
13、160; * 設(shè)置分辨率,即行數(shù)及列數(shù) * 現(xiàn)在,可以根據(jù)公式計(jì)算出顯示器的頻率:
14、60; * 當(dāng)HCLK=100MHz時(shí), * Rate = 1/(VSPW+1)+(VBPD+1)+(LIINEVAL+1)+(VFPD+1)x * &
15、#160; (HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)x * 2x(CLKVAL+1)/(HCLK)
16、60; * = 60Hz * 3. LCDCON5: *
17、 設(shè)置顯示模式為16BPP時(shí)的數(shù)據(jù)格式: 5:6:5 * 設(shè)置HSYNC、VSYNC脈沖的極性(這需要參考具體LCD的接口信號): 反轉(zhuǎn) &
18、#160; * 半字(2字節(jié))交換使能 */ LCDCON1 = (CLKVAL
19、_TFT_320240<<8) | (LCDTYPE_TFT<<5) | (BPPMODE_16
20、BPP<<1) | (ENVID_DISABLE<<0); LCDCON2 = (VBPD_320240<<24) | (LINEVAL_TFT_320240<<14) |
21、0; (VFPD_320240<<6) | (VSPW_320240); LCDCON3 = (HBPD_320
22、240<<19) | (HOZVAL_TFT_320240<<8) | (HFPD_320240); LCDCON4 = HSPW_320240; / LCDCON5 = (FORMAT8BPP_5
23、65<<11) | (HSYNC_INV<<9) | (VSYNC_INV<<8) | /
24、60;(HWSWP<<1); LCDCON5 = (FORMAT8BPP_565<<11) | (HSYNC_INV<<9) | (VSYNC_INV<<8) | (VDEN_INV << 6) |
25、60; (HWSWP<<0);
26、0; /* * 設(shè)置LCD控制器的地址寄存器LCDSADDR13 * 幀內(nèi)存與視口(view point)完全吻合,
27、; * 圖像數(shù)據(jù)格式如下: * |-PAGEWIDTH-|
28、0; * y/x 0 1 2 239 *
29、; 0 rgb rgb rgb . rgb * 1 rgb rgb rgb . rgb
30、0; * 1. LCDSADDR1: * 設(shè)置LCDBANK、LCDBASEU
31、 * 2. LCDSADDR2: * 設(shè)置LCDBASEL: 幀緩沖區(qū)的結(jié)束地址A21:1 * 3. LCDSADDR3:
32、60; * OFFSIZE等于0,PAGEWIDTH等于(240*2/2) */
33、; LCDSADDR1 = (LCDBUFFER>>22)<<21) | LOWER21BITS(LCDBUFFER>>1); LCDSADDR2 = LOWER21BITS(LCDBUFFER+
34、; (LINEVAL_TFT_320240+1)*(HOZVAL_TFT_320240+1)*2)>>1); &
35、#160; LCDSADDR3 = (0<<11) | (LCD_XSIZE_TFT_320240*2/2); /* 禁止臨時(shí)調(diào)色板寄存器 */ TPAL = 0;
36、; fb_base_addr = LCDBUFFER; bpp = 16; xsize = 320; &
37、#160; ysize = 240; 描點(diǎn):/* * 畫點(diǎn) * 輸入?yún)?shù): *
38、 x、y : 象素坐標(biāo) * color: 顏色值 * 對于16BPP:
39、 color的格式為0xAARRGGBB (AA = 透明度), * 需要轉(zhuǎn)換為5:6:5格式 * 對于8BPP: color為
40、調(diào)色板中的索引值, * 其顏色取決于調(diào)色板中的數(shù)值 */ void PutPixel(UINT32 x, UINT32 y, UINT32 color)
41、 UINT8 red,green,blue; switch (bpp)
42、60; case 16: &
43、#160; UINT16 *addr = (UINT16 *)fb_base_addr + (y * xsize + x);
44、; red = (color >> 19) & 0x1f; green = (color >> 10) & 0x3f; &
45、#160; blue = (color >> 3) & 0x1f;
46、 color = (red << 11) | (green << 5) | blue; / 格式5:6:5
47、160; *addr = (UINT16) color; break;
48、60; case 8:
49、160;
50、160; UINT8 *addr = (UINT8 *)fb_base_addr + (y * xsize + x); *addr = (UINT8) color;
51、0; break;
52、0; default:
53、160; break; 下面是在Linux的LCD驅(qū)動里修改的地方(archarmmach-s3c2440mach-smdk2440.c): /* 320x240 */
54、60; static struct s3c2410fb_mach_info smdk2440_lcd_cfg _initdata = .regs =
55、0; .lcdcon1 = S3C2410_LCDCON1_TFT16BPP | S3C2410_LCDCON
56、1_TFT | S3C2410_LCDCON1_CLKVAL(0x04),
57、; .lcdcon2 = S3C2410_LCDCON2_VBPD(1) | S3C2410_LCDCON2_LINEVAL(239) |
58、60; S3C2410_LCDCON2_VFPD(5) | &
59、#160; S3C2410_LCDCON2_VSPW(1), .lcdcon3 = S3C2410_LCDCON3_HBPD(36) |
60、; S3C2410_LCDCON3_HOZVAL(319) |
61、; S3C2410_LCDCON3_HFPD(19), .lcdcon4 = S3C2410_LCDCON4_MVAL(13) |
62、160; S3C2410_LCDCON4_HSPW(5), .lcdcon5 = S3C2410_LCDCON5_FRM565 |
63、60; S3C2410_LCDCON5_INVVLINE | &
64、#160; S3C2410_LCDCON5_INVV | S3C
65、2410_LCDCON5_INVVDEN | S3C2410_LCDCON5_PWREN |
66、60; S3C2410_LCDCON5_HWSWP, , .gpc
67、con = 0xaaaa56aa, .gpccon_mask = 0xffffffff, .gpcup = 0xffffffff,
68、60; .gpcup_mask = 0xffffffff, .gpdcon = 0xaaaaaaaa, .gpdcon_mask = 0xffffffff,
69、60; .gpdup = 0xffffffff, .gpdup_mask = 0xffffffff, .fixed_syncs = 1, &
70、#160; .type = S3C2410_LCDCON1_TFT, .width = 320, .
71、height = 240, .xres = .min = 320,
72、0; .max = 320, .defval = 320,
73、60; , .yres = .max = 240, &
74、#160; .min = 240, .defval = 240,
75、 , .bpp = .min = 16,
76、 .max = 16, .defval = 16, &
77、#160; , 這并不表示代碼Linux的驅(qū)動程序就比單片機(jī)的驅(qū)動程序好寫,怎么在幾萬個(gè)文件中找到要修改的代碼,這也是需要艱苦的學(xué)習(xí)的?;诓僮飨到y(tǒng)的驅(qū)動開發(fā),既要懂得芯片的具體操作,也要理解操作系統(tǒng)的軟件結(jié)構(gòu)。2.1.2 是否通用有些單片機(jī)廠家也給客戶提供了大量的驅(qū)動程序,比如USB HOST驅(qū)動程序,這可以讓客戶很容易就可以在它的上面編寫程序讀寫U盤。但是客戶寫的這些程
78、序,只能在這種芯片、這個(gè)驅(qū)動程序上使用;更換另一種芯片后,即使芯片公司也提供了驅(qū)動程序,但是接口絕對不一樣,客戶又得重新編寫應(yīng)用程序?;诓僮飨到y(tǒng)的驅(qū)動程序要遵循統(tǒng)一的接口,比如對于不同的芯片的USB HOST驅(qū)動,它們都要向上提供一個(gè)相同的數(shù)據(jù)結(jié)構(gòu),在里面實(shí)現(xiàn)了各自的USB操作。下面是S3C2410/S3C2440的USB驅(qū)動向上層提供的數(shù)據(jù)結(jié)構(gòu):static const struct hc_driver ohci_s3c2410_hc_driver =
79、60; .deion = hcd_name, .product_desc = "S3C24XX OHCI", .hcd_priv_size = sizeo
80、f(struct ohci_hcd), /* * generic hardware linkage */
81、; .irq = ohci_irq, .flags = HCD_USB11 | HCD_MEMORY, /*
82、60; * basic lifecycle operations */ .st
83、art = ohci_s3c2410_start, .stop = ohci_stop, .shutdown = ohci_shutdown,
84、60; /* * managing i/o requests and associated device resources */
85、0; .urb_enqueue = ohci_urb_enqueue, .urb_dequeue = ohci_urb_dequeue,
86、 .endpoint_disable = ohci_endpoint_disable, /* * scheduling support
87、160; */ .get_number = ohci_get_, /* * root hub suppo
88、rt */ .hub_status_data = ohci_s3c2410_hub_status_data,
89、160; .hub_control = ohci_s3c2410_hub_control, .hub_irq_enable = ohci_rhsc_enable, #ifdef CONFIG_PM &
90、#160; .bus_suspend = ohci_bus_suspend, .bus_resume = ohci_bus_resume, #endif
91、; .start_port_reset = ohci_start_port_reset, 下面是ATMEL公司的ARM芯片的USB驅(qū)動向上層提供的數(shù)據(jù)結(jié)構(gòu):/*-*/static const struct hc_driver ohci_at91_hc_driver =
92、; .deion = hcd_name, .product_desc = "AT91 OHCI",
93、60;.hcd_priv_size = sizeof(struct ohci_hcd), /* * generic hardware linkage
94、 */ .irq = ohci_irq, .flags = HCD_USB11 | HCD_MEMORY,
95、0;/* * basic lifecycle operations */
96、160; .start = ohci_at91_start, .stop = ohci_stop, .shutdown = ohci_shutdown,
97、; /* * managing i/o requests and associated device resources */
98、 .urb_enqueue = ohci_urb_enqueue, .urb_dequeue = ohci_urb_dequeue,
99、160; .endpoint_disable = ohci_endpoint_disable, /* * scheduling support
100、0; */ .get_number = ohci_get_, /*
101、 * root hub support */ .hub_status_data = ohci_hub_status_data,
102、 .hub_control = ohci_hub_control, .hub_irq_enable = ohci_rhsc_enable, #ifdef CONFIG_PM &
103、#160; .bus_suspend = ohci_bus_suspend, .bus_resume = ohci_bus_resume, #endif
104、; .start_port_reset = ohci_start_port_reset, 基于通用性,即使是你自己寫的Linux驅(qū)動,簡單到只是點(diǎn)亮一個(gè)LED,基于“通用性”,這個(gè)驅(qū)動也要向上提供統(tǒng)一的接口。下面是單片機(jī)LED驅(qū)動程序和Linux下的LED驅(qū)動程序的部分代碼。單片機(jī)LED驅(qū)動程序:void led_init(void)
105、160; GPBCON = GPB5_out; / 將LED對應(yīng)的GPB5引腳設(shè)為輸出 void led_on(void)
106、 GPBDAT &= (1<<5); void led_off(void)
107、160; GPBDAT |= (1<<5); Linux的LED驅(qū)動程序: #define DEVICE_NAME "leds" /* 加載模式后,執(zhí)行”cat /proc/devices”命令看到的設(shè)備名稱 */ #define LED_
108、MAJOR 231 /* 主設(shè)備號 */* 應(yīng)用程序執(zhí)行ioctl(fd, cmd, arg)時(shí)的第2個(gè)參數(shù) */ #define IOCTL_LED_ON 0 #define IOCTL_LED_OFF 1/* 用來指定LED所用的GPIO引腳 */ static unsigned long led_table =
109、 S3C2410_GPB5, S3C2410_GPB6,
110、60; S3C2410_GPB7, S3C2410_GPB8, /* 用來指定GPIO引腳的功能:輸出 */ static unsigned int led_cfg_table =
111、60; S3C2410_GPB5_OUTP, S3C2410_GPB6_OUTP,
112、60; S3C2410_GPB7_OUTP, S3C2410_GPB8_OUTP, /* 應(yīng)用程序?qū)υO(shè)備文件/dev/leds執(zhí)行open(.)時(shí), * 就會調(diào)用s3c24xx_leds_open函數(shù)
113、 */ static int s3c24xx_leds_open(struct inode *inode, struct file *file)
114、160; int i; for (i = 0; i < 4; i+) / 設(shè)置GPIO引腳的功能:本驅(qū)動中
115、LED所涉及的GPIO引腳設(shè)為輸出功能 s3c2410_gpio_cfgpin(led_tablei, led_cfg_tablei);
116、; return 0; /* 應(yīng)用程序?qū)υO(shè)備文件/dev/leds執(zhí)行ioclt(.)時(shí), * 就會調(diào)用s3c24xx_leds_ioctl函數(shù)
117、60; */ static int s3c24xx_leds_ioctl( struct inode *inode,
118、0; struct file *file, unsigned int cmd, unsigned long arg)
119、60; if (arg > 4) return -EINVAL;
120、160; switch(cmd) case IOCTL_LED_ON:
121、160; / 設(shè)置指定引腳的輸出電平為0 s3c24
122、10_gpio_setpin(led_tablearg, 0); return 0; case IOCTL_LED_OFF:
123、 / 設(shè)置指定引腳的輸出電平為1 s3c2410_gpio_setpin(led_tablearg, 1);
124、160; return 0; default: return -EINVAL; /*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省淮南市潘集區(qū)2024-2025學(xué)年九年級上學(xué)期期末化學(xué)試題(含答案)
- 清朝領(lǐng)導(dǎo)考試試題及答案
- 市場經(jīng)濟(jì)學(xué)試題及答案
- 管理沙盤面試題及答案
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)與服務(wù)提升訓(xùn)練試卷A卷附答案
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)題庫附答案(典型題)
- 煙草公司2025招聘考試全真模擬筆試試題(綜合能力測試卷)和答案解析
- 鼻飼操作及胃管誤入氣道案例分析培訓(xùn)課件
- 房產(chǎn)稅務(wù)知識培訓(xùn)課件
- 鉆石專業(yè)知識培訓(xùn)課件
- 抵押個(gè)人汽車借款合同范本
- 2025年中考第一次模擬考試地理(青海卷)(全解全析)
- 2025年內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及參考答案
- 統(tǒng)編版(2024)七年級下冊語文期末復(fù)習(xí):第一單元素養(yǎng)提升測試卷(含答案)
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 韓國出入境卡中韓文對照模板
- 五輥研磨機(jī)(課堂PPT)
- 二次函數(shù)求最值(動軸定區(qū)間、動區(qū)間定軸)(課堂PPT)
- 髖關(guān)節(jié)脫位2教學(xué)課件
- 耳式支座計(jì)算
- IMS基本信令流程課件
評論
0/150
提交評論