




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
S3C2440A下彩色液晶顯示系統(tǒng)的設(shè)計(jì)時(shí)間:2007-07-18 來源: 作者:趙孔新 點(diǎn)擊:9289 字體大小:【大 中 小】 -摘要:以三星公司的嵌入式微處理器S3C2440A和夏普公司3.5inLCD屏LQ035Q7DH01為基礎(chǔ),設(shè)計(jì)了顯示硬件電路,介紹了幀緩沖設(shè)備的處理機(jī)制及底層驅(qū)動的接口函數(shù),針對本顯示系統(tǒng)給出了如何開發(fā)其Linux幀緩沖設(shè)備驅(qū)動程序。不論是顯示硬件電路還是軟件驅(qū)動程序,都有很強(qiáng)的可移植性,可以方便地移植到不同的平臺。 嵌入式系統(tǒng)已成為當(dāng)今最熱門的概念之一,對大多數(shù)嵌入式系統(tǒng)開發(fā)者而言,顯示系統(tǒng)的硬件和軟件開發(fā)是不可回避的關(guān)鍵性技術(shù)。三星公司開發(fā)的S3C2440A是一款以ARM920T為內(nèi)核的嵌入式微處理器,它的最高工作頻率達(dá)533MHz,內(nèi)含3通道的異步串行口,USB主、從單元設(shè)備接口,攝像頭接口,觸摸屏接口,LCD控制器等眾多片上外設(shè)接口,且具低功耗、高性能,廣泛適用于PDA、便攜式媒體播放器、手持式導(dǎo)航儀等領(lǐng)域。目前國內(nèi)對該款高性價(jià)比嵌入式微處理器的開發(fā)應(yīng)用才起步不久。 夏普公司生產(chǎn)的LCD屏LQ035Q7DH01為3.5in透反射式TFT-LCD顯示器,屏幕分辨率為320240,能提供262144種色彩,顯示亮度達(dá)到100nit,使設(shè)計(jì)人員能夠在各種照明條件下利用它來生動地展示圖像和文字信息。本文以S3C2440A和LQ035Q7DH01為硬件基礎(chǔ),設(shè)計(jì)了顯示硬件電路。 軟件平臺采用Linux 2.4.20, 交叉編譯器為arm-linux-gcc 2.95.3,完成了對LQ035Q7DH01顯示屏的驅(qū)動程序開發(fā)。1顯示系統(tǒng)硬件電路1.1 LCD控制器電路 LCD控制器用來傳輸圖像數(shù)據(jù)并產(chǎn)生相應(yīng)的控制信號,S3C2440A LCD控制器能支持高達(dá)4K色STN屏和256K色TFT屏,支持1024768分辨率下的各種液晶屏, 具有LCD專用DMA。LCD控制器產(chǎn)生的控制信號和數(shù)據(jù)信號主要有: VFRAME:LCD 控制器和LCD驅(qū)動器之間的幀同步信號, LCD控制器在一個(gè)完整幀顯示完成后插入一個(gè)VFRAME信號,開始新一幀的顯示。 VLINE:LCD控制器和LCD驅(qū)動器之間的行同步信號,LCD控制器在整行數(shù)據(jù)移入LCD驅(qū)動器后插入一個(gè)VLINE信號。 VCLK:LCD控制器和LCD驅(qū)動器之間的像素時(shí)鐘信號, 由LCD控制器送出的數(shù)據(jù)在VCLK的上升沿處送出,在VCLK的下降沿處被LCD驅(qū)動器采樣。 VM:數(shù)據(jù)輸出使能信號,在VM 信號躍變成高電平后行數(shù)據(jù)信號開始由LCD控制器輸出至LCD驅(qū)動器,當(dāng)VM信號躍變?yōu)榈碗娖胶髷?shù)據(jù)輸出停止。 數(shù)據(jù)線:也就是RGB信號線,S3C2440A LCD控制器有VD0:23共24根數(shù)據(jù)線,數(shù)據(jù)格式不同,接線方式就不同。本文用的是RGB565方式,只需要16根數(shù)據(jù)線(紅色5根,綠色6根,藍(lán)色5根)。其數(shù)據(jù)線接線方式如表1所示: LCD控制器電路如圖1所示:1.2 時(shí)序和數(shù)據(jù)匹配電路 由于S3C2440A 的LCD控制器與LCD屏LQ035Q7DH01在數(shù)據(jù)格式及顯示時(shí)序上無法匹配,需要選用一種時(shí)序控制IC或者用CPLD(也就是通常所說的LCD伴侶芯片)來對不同數(shù)據(jù)格式的數(shù)據(jù)接口進(jìn)行映射。但CPLD面積較大、成本較高,因而通常只在需要對電路進(jìn)行靈活配置的情況下才使用。本文時(shí)序控制IC選用夏普公司的LZ9FC22。該芯片專用于對TFT型QVGA屏幕(屏幕分辨率320240)的LCD進(jìn)行時(shí)序控制。這是一個(gè)18bit(R6G6B6)的控制器,由于本文采用的是RGB565 16位工作模式,所以將其輸入引腳R0和B0接地。時(shí)序和數(shù)據(jù)匹配電路如圖2所示:1.3 多路電壓產(chǎn)生電路 LCD屏內(nèi)集成有數(shù)字電路和模擬電路,需要外部提供數(shù)字電壓和模擬電壓。另外,為了完成數(shù)據(jù)掃描,需要TFT輪流開啟/關(guān)閉。當(dāng)TFT開啟時(shí),數(shù)據(jù)通過源極驅(qū)動器加載到顯示電極,顯示電極和公共電極問的電壓差再作用于液晶實(shí)現(xiàn)顯示,因此需要控制LCD的開啟電壓、關(guān)閉電壓,以及加到公共電極上的電壓, 本系統(tǒng)采用松下公司生產(chǎn)的芯片LM1117DT-3.3來產(chǎn)生LCD所需要的數(shù)字電壓,采用美國MAXIM 公司推出的有源矩陣液晶顯示器電源芯片MAX1664來產(chǎn)生其他電壓,MAX1664內(nèi)部集成有兩個(gè)DC-DC變換器,可以為小型TFT LCD提供高效的調(diào)節(jié)電壓。LCD所需各電壓如表2所示:多路電壓產(chǎn)生電路如圖3所示1.4 顯示驅(qū)動和LQ035Q7DH01的接口電路顯示驅(qū)動和LQ035Q7DH01的接口電路如圖4所示:1.5 顯示系統(tǒng)整體結(jié)構(gòu)框圖顯示系統(tǒng)整體結(jié)構(gòu)框圖如圖5所示。圖5 顯示系統(tǒng)結(jié)構(gòu)框圖2 Linux下的幀緩沖(frame buffer)設(shè)備 Linux下編寫顯示設(shè)備的驅(qū)動程序有兩種方法:一種是把顯示設(shè)備抽象成一般的字符設(shè)備,驅(qū)動程序的寫法和一般的字符設(shè)備驅(qū)動類似;第二種就是幀緩沖設(shè)備驅(qū)動程序的編寫。由于第一種方法不規(guī)范,而且實(shí)現(xiàn)功能有限,故一般不提倡;而幀緩沖驅(qū)動程序比較簡單,也容易實(shí)現(xiàn),因而在嵌入式系統(tǒng)里得到了廣泛應(yīng)用。 幀緩沖設(shè)備是一個(gè)提供顯示內(nèi)存和顯示芯片寄存器從物理內(nèi)存映射到進(jìn)程地址空間中的設(shè)備,是Linux為圖形設(shè)備提供的一個(gè)抽象接口,它將顯示設(shè)備抽象為幀緩沖區(qū)。幀緩沖允許上層應(yīng)用程序在圖形模式下直接對顯示緩沖區(qū)進(jìn)行讀寫操作。這種操作是抽象的、統(tǒng)一的。應(yīng)用程序不必關(guān)心物理顯存的位置、換頁機(jī)制等等具體細(xì)節(jié)。 幀緩沖設(shè)備屬于字符設(shè)備,采用“文件層-驅(qū)動層”的接口方式。 Linux內(nèi)核include/fnux/fb.h中定義了幀緩沖設(shè)備的驅(qū)動層接口fb_info結(jié)構(gòu)體,fb_info定義了當(dāng)前工作的顯示卡的狀態(tài)和幀緩沖設(shè)備的操作函數(shù), 它僅對內(nèi)核可見。文件fb.h中還定義了fb_var_screeninfo(顯示卡可變特性,這些特性在程序運(yùn)行期間可以由應(yīng)用程序動態(tài)改變)、fb_fix_screeninfo(顯示卡不可變特性,這些特性在硬件初始化時(shí)就被定義了, 以后不得修改)、fb_cmap(RGB顏色映射表)等結(jié)構(gòu)體,幀緩沖設(shè)備驅(qū)動程序主要依靠這幾個(gè)結(jié)構(gòu)體工作。除了結(jié)構(gòu)體fb_info只能在內(nèi)核空間訪問外,其他三個(gè)結(jié)構(gòu)體都可以在用戶空間訪問。 Linux內(nèi)核driversvideofbmem.c中定義了幀緩沖設(shè)備的文件層接口file_operations結(jié)構(gòu)體,它對應(yīng)用程序可見,結(jié)構(gòu)體中功能函數(shù)open()和release()不需要底層的支持.而read()、write()、mmap()則需要調(diào)用fb_get_fix()、fb_get_var()、fb_set_var()、fb_get_cmap、fb_set_cmap()(這些函數(shù)位于結(jié)構(gòu)體fb_info中指針fbops指向的結(jié)構(gòu)體變量中)等與底層LCD硬件相關(guān)的函數(shù)的支持。另一個(gè)功能函數(shù)是ioctl(),ioctl()是設(shè)備驅(qū)動程序中對設(shè)備的I/O通道進(jìn)行管理的函數(shù),應(yīng)用程序通過ioctl()系統(tǒng)調(diào)用來調(diào)用fb_get_fix()、fb_get_var()、fb_set_var()、fb_set_cmap()、fb_get_cmap()等來獲得和設(shè)置結(jié)構(gòu)體fb_info中fb_var_screeninfo結(jié)構(gòu)變量var、fb_fix_screeninfo 結(jié)構(gòu)變量fix 和fb_cmap結(jié)構(gòu)變量cmap等變量的信息。在fbmem.c中給出了ioctl()命令和fb_info中結(jié)構(gòu)體fb_ops的成員函數(shù)的對應(yīng)關(guān)系如下:FBIOGET_VSCREENINFO fb_get_varFBIOPUT_VSCREENINFO fb_set_varFBIOGET_FSCREENINFO fb_get_fixFBIOPUTCMAP fb_set_cmapFBIOGETCMAP fb_get_cmap用戶應(yīng)用程序只需要調(diào)用FBIOXXXX來操作LCD硬件。 文件fbmem.c中還定義了幀緩沖設(shè)備底層驅(qū)動的管理函數(shù):register_framebuffer(struct fb_info 3 fb_info)unregister_framebuffer(struct fb_info 3 fb_info) 幀緩沖設(shè)備在驅(qū)動層所要做的工作僅僅是對Linux為幀緩沖的驅(qū)動層接口fb_info進(jìn)行初始化.然后調(diào)用這兩個(gè)函數(shù)對其注冊或注銷。幀緩沖設(shè)備驅(qū)動層接口直接對LCD設(shè)備硬件進(jìn)行操作,而fbmem.c可以記錄和管理多個(gè)底層設(shè)備驅(qū)動。3 顯示系統(tǒng)幀緩沖驅(qū)動的編寫3.1 定義LCD控制器結(jié)構(gòu)體 前面已經(jīng)說過,LCD控制器的功能是傳輸圖像數(shù)據(jù)并產(chǎn)生相應(yīng)的控制信號來驅(qū)動LCD顯示器,驅(qū)動程序需要根據(jù)當(dāng)前具體顯示硬件的特性,通過讀寫一系列的LCD控制寄存器來完成設(shè)定顯示器分辨率和顯示數(shù)據(jù)的格式,設(shè)置控制信號時(shí)序,指定顯示緩 中區(qū)地址等,從而提供給顯示設(shè)備合適的數(shù)據(jù)信號和控制信號。文中根據(jù)需要為S3C2440A的LCD 控制器定義了一個(gè)專用結(jié)構(gòu)體s3c2440fb_mach_info:struct s3c2440fb_mach_infou_long pixclock; /* 像素時(shí)鐘頻率 */u_char bpp; /* 每像素需要的bit數(shù) */u_short xres; /* 顯示器行分辨率 */u_short yres; /* 顯示器列分辨率 */u_char hsync_len; /* 行同步信號的長度 */u_char vsync_len; /* 幀同步信號的長度 */u_char left_margin;/* 從本行圖象數(shù)據(jù)輸出結(jié)束到下一行的行同步信號開始之間的像素時(shí)鐘數(shù) */u_char right_margin; /* 從行同步信號結(jié)束到該行的圖象數(shù)據(jù)開始輸出之間的像素時(shí)鐘數(shù)*/u_char upper_margin;/*從本幀圖象數(shù)據(jù)輸出結(jié)束到下一幀的幀同步信號開始之間的無效行數(shù) */u_char lower_margin; /*從幀同步信號結(jié)束到該幀圖象數(shù)據(jù)開始輸出之間的無效行數(shù)*/u_char sync;struct s3c2440fb_lcd_reg reg; /*S3C2440ALCD控制寄存器結(jié)構(gòu)體 */; 驅(qū)動程序通過定義一個(gè)s3c2440fb_mach_info結(jié)構(gòu)變量并給該變量賦值來完成LCD控制器的初始化。3.2 編寫結(jié)構(gòu)體fb_info中fb_ops對應(yīng)的成員函數(shù) 對于本嵌入式系統(tǒng)的實(shí)現(xiàn),需要下列5個(gè)函數(shù):static struct fb_ops s3c2440fb_ops=owner:THIS_MODULE,/*THIS_MODULE宏用來防止驅(qū)動模塊在使用狀態(tài)下被卸載 /fb_get_fix:s3c2440fb_get_fix,fb_get_var:s3c2440fb_get_var,fb_set_var:s3c2440fb_set_var,fb_get_cmap:s3c2440fb_get_cmap,fb_set_cmap:s3c2440fb_set_cmap,;結(jié)構(gòu)體fb_ops在Linux內(nèi)核include/linux/fb.h中定義。 這些函數(shù)都是用來設(shè)置和獲取驅(qū)動層接口fb_info結(jié)構(gòu)體中的成員變量的,前文已提過當(dāng)應(yīng)用程序?qū)υO(shè)備文件進(jìn)行ioctl操作時(shí)會調(diào)用它們。對于fb_get_fix()和fb_get_var()應(yīng)用程序傳入的是fb_info中的結(jié)構(gòu)變量fix和var,fb_set_var()函數(shù)則是對var變量進(jìn)行設(shè)置。同樣fb_get_cmap()和fb_set_cmap()則是對結(jié)構(gòu)變量cmap內(nèi)容進(jìn)行讀取和設(shè)置。在這5個(gè)函數(shù)中,fb_set_var()設(shè)置了顯示設(shè)備的顯示模式,是最重要的一個(gè)函數(shù)。文中根據(jù)需要為當(dāng)前顯示硬件定義一個(gè)專有結(jié)構(gòu)體s3c2440fb_info,該結(jié)構(gòu)體包括一個(gè)fb_info結(jié)構(gòu)變量,及其它與所選LCD硬件有關(guān)的所有參數(shù).因此結(jié)構(gòu)體fb_ops中成員函數(shù)對結(jié)構(gòu)體fb_info的操作實(shí)際上就是對結(jié)構(gòu)體s3c2440fb_info的操作。該結(jié)構(gòu)體定義如下:struct s3c2440fb_infostruct fb_info fb; /* fb_info結(jié)構(gòu)變量 */signed int currcon; /* 當(dāng)前終端控制臺的序號*/u_int max_xres;/*屏幕能顯示的最大行分辨率 */u_int max_yres;/* 屏幕能顯示的最大列分辨率 */struct s3c2440fb_lcd_reg reg;/*S3C2440A LCD控制寄存器 */* 其他與LCD硬件有關(guān)的參數(shù) */;結(jié)構(gòu)體fb_ops中的成員函數(shù)流程相似,本文在此僅給出函數(shù)s3c2440fb_set_var()的流程圖和程序代碼。函數(shù)s3c2440fb_set_var()流程圖如圖6所示:static struct fb_ops s3c2440fb_ops=owner:THIS_MODULE,/*THIS_MODULE宏用來防止驅(qū)動模塊在使用狀態(tài)下被卸載 /fb_get_fix:s3c2440fb_get_fix,fb_get_var:s3c2440fb_get_var,fb_set_var:s3c2440fb_set_var,fb_get_cmap:s3c2440fb_get_cmap,fb_set_cmap:s3c2440fb_set_cmap,;結(jié)構(gòu)體fb_ops在Linux內(nèi)核include/linux/fb.h中定義。 這些函數(shù)都是用來設(shè)置和獲取驅(qū)動層接口fb_info結(jié)構(gòu)體中的成員變量的,前文已提過當(dāng)應(yīng)用程序?qū)υO(shè)備文件進(jìn)行ioctl操作時(shí)會調(diào)用它們。對于fb_get_fix()和fb_get_var()應(yīng)用程序傳入的是fb_info中的結(jié)構(gòu)變量fix和var,fb_set_var()函數(shù)則是對var變量進(jìn)行設(shè)置。同樣fb_get_cmap()和fb_set_cmap()則是對結(jié)構(gòu)變量cmap內(nèi)容進(jìn)行讀取和設(shè)置。在這5個(gè)函數(shù)中,fb_set_var()設(shè)置了顯示設(shè)備的顯示模式,是最重要的一個(gè)函數(shù)。文中根據(jù)需要為當(dāng)前顯示硬件定義一個(gè)專有結(jié)構(gòu)體s3c2440fb_info,該結(jié)構(gòu)體包括一個(gè)fb_info結(jié)構(gòu)變量,及其它與所選LCD硬件有關(guān)的所有參數(shù).因此結(jié)構(gòu)體fb_ops中成員函數(shù)對結(jié)構(gòu)體fb_info的操作實(shí)際上就是對結(jié)構(gòu)體s3c2440fb_info的操作。該結(jié)構(gòu)體定義如下:struct s3c2440fb_infostruct fb_info fb; /* fb_info結(jié)構(gòu)變量 */signed int currcon; /* 當(dāng)前終端控制臺的序號*/u_int max_xres;/*屏幕能顯示的最大行分辨率 */u_int max_yres;/* 屏幕能顯示的最大列分辨率 */struct s3c2440fb_lcd_reg reg;/*S3C2440A LCD控制寄存器 */* 其他與LCD硬件有關(guān)的參數(shù) */;結(jié)構(gòu)體fb_ops中的成員函數(shù)流程相似,本文在此僅給出函數(shù)s3c2440fb_set_var()的流程圖和程序代碼。函數(shù)s3c2440fb_set_var()流程圖如圖6所示:圖6 函數(shù)s3c2440fb_set_var()流程圖函數(shù)s3c2440fb_set_var()程序如下:static int s3c2440fb_set_var(struct fb_var_screeninfo *var,int con,struct fb_info *info)struct s3c2440fb_info *fbi= (struct s3c2440fb_info *)info; /* 將顯示模式讀入結(jié)構(gòu)體s3c2440fb_info*/struct fb_var_screeninfo *dvar= get_con_var(&fbi-fb,con);int err;err= s3c2440fb_validate_var(var,fbi); /* 顯示模式是否有效 */if(err) /* 無效返回 */return err;dvar-red=fbi-rgbrgbidx-red; /* 將顯示參數(shù)寫入結(jié)構(gòu)體fb_var_screeninfo */dvar-green=fbi-rgbrgbidx-green;dvar-blue=fbi-rgbrgbidx-bIue;dvar-transp=fbi-rgbrgbidx-transp;display-var= *dvar;s3c2440fb_hw_set_var (dvar,fbi); /* 設(shè)置RGB顏色信息,設(shè)置S3C2440A的LCD控制寄存器 */return 0;3.3 編寫初始化函數(shù) 初始化函數(shù)首先初始化LCD控制器和結(jié)構(gòu)體s3c2440fb_info,填充s3c2440fb_info中結(jié)構(gòu)變量fb_info的成員變量,這些成員變量的參數(shù)值由LCD顯示器廠商的手冊獲得。然后通過consistent_alloc函數(shù)分配一片連續(xù)的空間。顯示系統(tǒng)采用的LCD顯示方式為320240,16位彩色。需要分配的顯示緩沖區(qū)為32024016/8=150k字節(jié),緩沖區(qū)通常分配在片外SDRAM 中,起始地址和末地址保存在LCD控制器寄存器LCDSADDR1和LCDSADDR2里,最后調(diào)用register_framebuffer(&fbi-fb)將fb_info結(jié)構(gòu)變量fb登記入內(nèi)核。初始化函數(shù)如下:int _init s3c2440fb_init(void)(struct s3c2440fb_info *fbi;int ret;fbi=s3c2440fb_init_fbinfo(); /* 初始化LCD控制器和s3c2440fb_info */ret=s3c2440fb_map_video_memory (fbi); /*分配150K字節(jié)大小的LCD顯示緩沖區(qū) */if(ret) /* 出錯(cuò)返回 */if(fbi)kfree(fbi);return ret;s3c2440fb_set_var (&fbi-fb.var,-1,&fbi-fb);ret=register_framebuffer(&fbi-fb);/* 將fb注冊到內(nèi)核 */if(ret) /* 出錯(cuò)返回 */if(fbi)kfree(fbi);return ret;printk (Installed S3C2440 frame bufferkn);/*在控制臺顯示安裝顯示驅(qū)動程序成功 */MOD_INC_USE_COUNT;/* 該宏用來管理自己被使用的計(jì)數(shù),模塊在被使用時(shí),是不允許被卸載的 */return 0;4 驅(qū)動程序嵌入到內(nèi)核 驅(qū)動程序嵌入到內(nèi)核有兩種方式:一種是直接編譯入內(nèi)核,隨Linux啟動的時(shí)候加載;另一種是編譯成模塊,動態(tài)加載。如果要將其直接編譯入Linux內(nèi)核,則需要將源代碼文件拷貝到Linux內(nèi)核源代碼的相應(yīng)路徑里,并修改Makefile文件和config.in文件,這種方法會增加內(nèi)核的大小,而且不能動態(tài)卸載,不利于調(diào)試,所以目前一般推薦采用第二種方式,如果這樣,在本驅(qū)動程序的最后還需要加上宏module_init(s3c2440fb_init);這是告訴編譯器該驅(qū)動程序的入口地址為初始化函數(shù)s3c2440fb_init()。需要注意的是初始化函數(shù)必須在宏module_init(s3c2440fb_init)使用前定義,否則會出現(xiàn)編譯錯(cuò)誤。而且在編譯時(shí)至少要加上-D_KERNEL_ -DMODULE -DLINUX這幾個(gè)參數(shù),編譯完成后通過insmod命令將驅(qū)動模塊加載進(jìn)內(nèi)核, 通過rmmod命令卸載驅(qū)動模塊。5 應(yīng)用程序?qū)彌_設(shè)備的使用 Linux將所有的設(shè)備都當(dāng)作文件進(jìn)行處理,各種設(shè)備通常以文件的形式放在/dev目
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 病理科醫(yī)師崗位面試問題及答案
- 2025屆湖北省宜昌市長陽縣第一高級中學(xué)化學(xué)高二下期末統(tǒng)考試題含解析
- 浙江省樂清外國語學(xué)院2025屆高一化學(xué)第二學(xué)期期末聯(lián)考試題含解析
- 2025屆山東省東平縣第一中學(xué)高二下化學(xué)期末統(tǒng)考模擬試題含解析
- 甘肅省蘭州市五十一中2025屆高一下化學(xué)期末綜合測試試題含解析
- 上海市12校聯(lián)考2025屆高二下化學(xué)期末復(fù)習(xí)檢測試題含解析
- 民生項(xiàng)目現(xiàn)場管理辦法
- 材料當(dāng)天入庫管理辦法
- 北京集體審批管理辦法
- 體系文件稽查管理辦法
- 鐵路營業(yè)線安全管理辦法
- 酒類銷售用人勞務(wù)合同
- 2025老年教育政策環(huán)境分析及教學(xué)模式創(chuàng)新路徑研究報(bào)告
- 2025年中國伺服電纜行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 【大數(shù)跨境】全球移動電源市場洞察報(bào)告
- 酒店安全獎懲規(guī)定
- 2024北京四中初一(下)開學(xué)考數(shù)學(xué)試題及答案
- 物料堆放限高管理制度
- 夫妻債務(wù)隔離約定協(xié)議書
- T/CECS 10226-2022抗裂硅質(zhì)防水劑
- 原發(fā)性醛固酮增多癥診斷治療的專家共識(2024版)解讀課件
評論
0/150
提交評論