




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌入式控制系統(tǒng)綜合實驗指導(dǎo)書目 錄實驗一 熟悉嵌入式系統(tǒng)軟件開發(fā)環(huán)境 1實驗二 串口通訊實驗 5實驗三 以太網(wǎng)通信實驗17實驗四 綜合設(shè)計實驗24實驗一 熟悉嵌入式系統(tǒng)軟件開發(fā)環(huán)境一、實驗?zāi)康?、熟悉Linux 開發(fā)環(huán)境,學(xué)會基于S3C2410 的Linux 開發(fā)環(huán)境的配置和使用。2、使用Linux 的armv4l-unknown-linux-gcc 編譯,使用基于NFS 方式的下載調(diào)試,了解嵌入式開發(fā)的基本過程。二、實驗內(nèi)容本次實驗使用Redhat Linux 9.0 操作系統(tǒng)環(huán)境,安裝ARM-Linux 的開發(fā)庫及編譯器。創(chuàng)建一個新目錄,并在其中編寫hello.c 和Makefile 文件。學(xué)習(xí)在Linux 下的編程和編譯過程,以及ARM 開發(fā)板的使用和開發(fā)環(huán)境的設(shè)置。下載已經(jīng)編譯好的文件到目標(biāo)開發(fā)板上運行。三、預(yù)備知識C 語言的基礎(chǔ)知識、程序調(diào)試的基礎(chǔ)知識和方法,Linux 的基本操作。四、實驗設(shè)備及工具(包括軟件調(diào)試工具)硬件:UP-NETARM2410-S 嵌入式實驗平臺、PC 機(jī)Pentium 500 以上, 硬盤10G 以上。軟件:PC 機(jī)操作系統(tǒng)REDHAT LINUX 9.0MINICOMARM-LINUX 開發(fā)環(huán)境五、實驗步驟1、建立工作目錄rootzxt smile# mkdir hellorootzxt smile# cd hello2、編寫程序源代碼在Linux 下的文本編輯器有許多,常用的是vim 和Xwindow 界面下的gedit 等,在開發(fā)過程中推薦使用vim,用戶需要學(xué)習(xí)vim 的操作方法,請參考相關(guān)書籍中的關(guān)于vim 的操作指南。 Kdevelope、anjuta 軟件的界面與vc6.0 類似,使用它們對于熟悉windows環(huán)境下開發(fā)的用戶更容易上手。實際的hello.c 源代碼較簡單,如下:include main()printf(“hello world n”);可以是用下面的命令來編寫hello.c 的源代碼,進(jìn)入hello 目錄使用vi 命令來編輯代碼:rootzxt hello# vi hello.c按“i”或者“a”進(jìn)入編輯模式,將上面的代碼錄入進(jìn)去,完成后按Esc 鍵進(jìn)入命令狀態(tài),再用命令“:wq”保存并退出。這樣便在當(dāng)前目錄下建立了一個名為hello.c 的文件。3、編寫Makefile要使上面的hello.c 程序能夠運行,必須要編寫一個Makefile 文件,Makefile 文件定義了一系列的規(guī)則,它指明了哪些文件需要編譯,哪些文件需要先編譯,哪些文件需要重新編譯等等更為復(fù)雜的命令。使用它帶來的好處就是自動編譯,你只需要敲一個“make”命令整個工程就可以實現(xiàn)自動編譯,當(dāng)然本次實驗只有一個文件,它還不能體現(xiàn)出使用Makefile 的優(yōu)越性,但當(dāng)工程比較大文件比較多時,不使用Makefile 幾乎是不可能的。下面介紹本次實驗用到的Makefile 文件。CC= armv4l-unknown-linux-gccEXEC = helloOBJS = hello.oCFLAGS +=LDFLAGS+= staticall: $(EXEC)$(EXEC): $(OBJS)$(CC) $(LDFLAGS) -o $ $(OBJS)clean:-rm -f $(EXEC) *.elf *.gdb *.o下面來簡單介紹這個Makefile 文件的幾個主要部分: CC 指明編譯器 EXEC 表示編譯后生成的執(zhí)行文件名稱 OBJS 目標(biāo)文件列表 CFLAGS 編譯參數(shù) LDFLAGS 連接參數(shù) all: 編譯主入口 clean: 清除編譯結(jié)果注意:“$(CC) $(LDFLAGS) -o $ $(OBJS)”和“-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一個Tab 制表符生成,不能單純由空格來代替。與上面編寫hello.c 的過程類似,用vi 來創(chuàng)建一個Makefile 文件并將代碼錄入其中rootzxt hello# vi Makefile4、編譯應(yīng)用程序在上面的步驟完成后,就可以在hello 目錄下運行“make”來編譯的程序了。如果進(jìn)行了修改,重新編譯則運行:rootzxt hello# make cleanrootzxt hello# make注意:編譯、修改程序都是在宿主機(jī)(本地PC 機(jī))上進(jìn)行,不能在MINICOM 下進(jìn)行。5、下載調(diào)試在宿主PC 計算機(jī)上啟動NFS 服務(wù),并設(shè)置好共享的目錄,具體配置請參照前面第一章第四節(jié)中關(guān)于嵌入式Linux 環(huán)境開發(fā)環(huán)境的建立。在建立好NFS 共享目錄以后,就可以進(jìn)入MINICOM 中建立開發(fā)板與宿主PC 機(jī)之間的通訊了。rootzxt hello# minicom/mnt/yaffs mount -t nfs -o nolock 6:/arm2410s /host注意: IP 地址需要根據(jù)宿主PC 機(jī)的實際情況修改成功掛接宿主機(jī)的arm2410s 目錄后,在開發(fā)板上進(jìn)入/host 目錄便相應(yīng)進(jìn)入宿主機(jī)的/arm2410s 目錄, 已經(jīng)給出了編輯好的hello.c 和Makefile 文件, 它們在/arm2410s/exp/basic/01_hello 目錄下。用戶可以直接在宿主PC 上編譯生成可執(zhí)行文件,并通過上面的命令掛載到開發(fā)板上,運行程序察看結(jié)果。如果不想使用提供的源碼的話,可以再建立一個NFS 共享文件夾。/root/share,我們把自己編譯生成的可執(zhí)行文件復(fù)制到該文件夾下,并通過MINICOM 掛載到開發(fā)板上。rootzxt hello# cp hello /root/sharerootzxt hello# minicom/mnt/yaffs mount -t nfs -o nolock 6:/root/share /host再進(jìn)入/host 目錄運行剛剛編譯好的hello 程序,查看運行結(jié)果。/mnt/yaffs cd /host/host ./hellohello world注意:開發(fā)板掛接宿主計算機(jī)目錄只需要掛接一次便可,只要開發(fā)板沒有重起,就可以一直保持連接。這樣可以反復(fù)修改、編譯、調(diào)試,不需要下載到開發(fā)板。六、思考題1Makefile 是如何工作的?其中的宏定義分別是什么意思?實驗二 串口通訊實驗一、實驗?zāi)康?、了解在linux 環(huán)境下串行程序設(shè)計的基本方法。2、掌握終端的主要屬性及設(shè)置方法,熟悉終端I /O 函數(shù)的使用。3、學(xué)習(xí)使用多線程來完成串口的收發(fā)處理。二、實驗內(nèi)容讀懂程序源代碼, 學(xué)習(xí)終端I /O 函數(shù)的使用方法,學(xué)習(xí)將多線程編程應(yīng)用到串口的接收和發(fā)送程序設(shè)計中。三、預(yù)備知識 有C 語言基礎(chǔ)。 掌握在Linux 下常用編輯器的使用。 掌握Makefile 的編寫和使用。 掌握Linux 下的程序編譯與交叉編譯過程四、實驗設(shè)備及工具硬件:UP-NETARM2410-S 嵌入式實驗平臺、PC 機(jī)Pentium 500 以上, 硬盤10G 以上。軟件:PC 機(jī)操作系統(tǒng)REDHAT LINUX 9.0MINICOMARM-LINUX 開發(fā)環(huán)境五、實驗原理異步串行I /O 方式是將傳輸數(shù)據(jù)的每個字符一位接一位(例如先低位、后高位)地傳送。數(shù)據(jù)的各不同位可以分時使用同一傳輸通道,因此串行IO 可以減少信號連線,最少用一對線即可進(jìn)行。接收方對于同一根線上一連串的數(shù)字信號,首先要分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作。在微型計算機(jī)中大量使用異步串行IO方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差,因此實現(xiàn)較容易。但是由于每個字符都要獨立確定起始和結(jié)束(即每個字符都要重新同步),字符和字符間還可能有長度不定的空閑時間,因此效率較低。圖2.3.1 串行通信字符格式圖2.3.1 給出異步串行通信中一個字符的傳送格式。開始前,線路處于空閑狀態(tài),送出連續(xù)“1”。傳送開始時首先發(fā)一個“”作為起始位,然后出現(xiàn)在通信線上的是字符的二進(jìn)制編碼數(shù)據(jù)。每個字符的數(shù)據(jù)位長可以約定為5 位、6 位、7 位或8 位,一般采用ASCII 編碼。后面是奇偶校驗位,根據(jù)約定,用奇偶校驗位將所傳字符中為“1”的位數(shù)湊成奇數(shù)個或偶數(shù)個。也可以約定不要奇偶校驗,這樣就取消奇偶校驗位。最后是表示停止位的“1”信號,這個停止位可以約定持續(xù)1 位、1.5 位或2 位的時間寬度。至此一個字符傳送完畢,線路又進(jìn)入空閑,持續(xù)為“1”。經(jīng)過一段隨機(jī)的時間后,下一個字符開始傳送才又發(fā)出起始位。每一個數(shù)據(jù)位的寬度等于傳送波特率的倒數(shù)。微機(jī)異步串行通信中,常用的波特率為50,95,110,150,300,600,1200,2400,4800,9600 等。接收方按約定的格式接收數(shù)據(jù),并進(jìn)行檢查,可以查出以下三種錯誤: 奇偶錯:在約定奇偶檢查的情況下,接收到的字符奇偶狀態(tài)和約定不符。 幀格式錯:一個字符從起始位到停止位的總位數(shù)不對。 溢出錯:若先接收的字符尚未被微機(jī)讀取,后面的字符又傳送過來,則產(chǎn)生溢出錯。每一種錯誤都會給出相應(yīng)的出錯信息,提示用戶處理。一般串口調(diào)試都使用空的MODEM 連接電纜,其連接方式如下:圖2.3.2 實用RS-232C 通訊連線六、程序分析Linux 操作系統(tǒng)從一開始就對串行口提供了很好的支持,為進(jìn)行串行通訊提供了大量的函數(shù),我們的實驗主要是為掌握在Linux 中進(jìn)行串行通訊編程的基本方法。本實驗的程序流程圖如下:圖2.3.3 串口通訊實驗流程圖本實驗的代碼如下:#include #include #include #include #include #include #define BAUDRATE B115200#define COM1 /dev/ttyS0#define COM2 /dev/ttyS1#define ENDMINITERM 27 /* ESC to quit miniterm */#define FALSE 0#define TRUE 1volatile int STOP=FALSE;volatile int fd;void child_handler(int s)printf(stop!n);STOP=TRUE;/*-*/void* keyboard(void * data)int c;for (;)c=getchar();if( c= ENDMINITERM)STOP=TRUE;break ;return NULL;/*-*/* modem input handler */void* receive(void * data)int c;printf(read modemn);while (STOP=FALSE)read(fd,&c,1); /* com port */write(1,&c,1); /* stdout */printf(exit from reading modemn);return NULL;/*-*/void* send(void * data)int c=0;printf(send datan);while (STOP=FALSE) /* modem input handler */c+;c %= 255;write(fd,&c,1); /* stdout */usleep(100000);return NULL; /*-*/int main(int argc,char* argv)struct termios oldtio,newtio,oldstdtio,newstdtio;struct sigaction sa;int ok;pthread_t th_a, th_b, th_c;void * retval;if( argc 1)fd = open(COM2, O_RDWR );elsefd = open(COM1, O_RDWR ); /| O_NOCTTY |O_NONBLOCK);if (fd 0) error(COM1);exit(-1);tcgetattr(0,&oldstdtio);tcgetattr(fd,&oldtio); /* save current modem settings */tcgetattr(fd,&newstdtio); /* get working stdtio */newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD; /*ctrol flag*/newtio.c_iflag = IGNPAR; /*input flag*/newtio.c_oflag = 0; /*output flag*/newtio.c_lflag = 0;newtio.c_ccVMIN=1;newtio.c_ccVTIME=0;/* now clean the modem line and activate the settings for modem */tcflush(fd, TCIFLUSH);tcsetattr(fd,TCSANOW,&newtio); /*set attrib*/sa.sa_handler = child_handler;sa.sa_flags = 0;sigaction(SIGCHLD,&sa,NULL); /* handle dying child */pthread_create(&th_a, NULL, keyboard, 0);pthread_create(&th_b, NULL, receive, 0);pthread_create(&th_c, NULL, send, 0);pthread_join(th_a, &retval);pthread_join(th_b, &retval);pthread_join(th_c, &retval);tcsetattr(fd,TCSANOW,&oldtio); /* restore old modem setings */tcsetattr(0,TCSANOW,&oldstdtio); /* restore old tty setings */close(fd);exit(0);下面我們對這個程序的主要部分做一下簡單的分析 頭文件#include /*標(biāo)準(zhǔn)輸入輸出定義*/#include /*標(biāo)準(zhǔn)函數(shù)庫定義*/#include /*linux 標(biāo)準(zhǔn)函數(shù)定義*/#include #include #include /*文件控制定義*/#include /*PPSIX 終端控制定義*/#include /*錯誤號定義*/#include /*線程庫定義*/ 打開串口在Linux 下串口文件位于/dev 下,一般在老版本的內(nèi)核中串口一為/dev/ttyS0 ,串口二為 /dev/ttyS1, 在我們的開發(fā)板中串口設(shè)備位于/dev/tts/下,因為開發(fā)板中沒有ttyS0這個設(shè)備,所以我們要建立一個連接,方法如下:/mnt/yaffs cd /dev/dev ln sf /dev/tts/0 ttyS0打開串口是通過標(biāo)準(zhǔn)的文件打開函數(shù)來實現(xiàn)的int fd;fd = open( /dev/ttyS0, O_RDWR); /*以讀寫方式打開串口*/if (-1 = fd) /* 不能打開串口一*/perror( 提示錯誤!); 串口設(shè)置:最基本的設(shè)置串口包括波特率設(shè)置,效驗位和停止位設(shè)置。串口的設(shè)置主要是設(shè)置 structtermios 結(jié)構(gòu)體的各成員值,關(guān)于該結(jié)構(gòu)體的定義可以查看/arm2410s/kernel-2410s/include/asm/termios.h 文件。struct termiounsigned short c_iflag; /* 輸入模式標(biāo)志 */unsigned short c_oflag; /* 輸出模式標(biāo)志 */unsigned short c_cflag; /* 控制模式標(biāo)志 */unsigned short c_lflag; /* local mode flags */unsigned char c_line; /* line discipline */unsigned char c_ccNCC; /* control characters */;設(shè)置這個結(jié)構(gòu)體很復(fù)雜,可以參考man 手冊或者由趙克佳、沈志宇編寫的UNIX 程序編寫教程,我這里就只考慮常見的一些設(shè)置:波特率設(shè)置:下面是修改波特率的代碼:struct termios Opt;tcgetattr(fd, &Opt);cfsetispeed(&Opt,B19200); /*設(shè)置為19200Bps*/cfsetospeed(&Opt,B19200);tcsetattr(fd,TCANOW,&Opt);校驗位和停止位的設(shè)置:無效驗 8 位Option.c_cflag &= PARENB;Option.c_cflag &= CSTOPB;Option.c_cflag &= CSIZE;Option.c_cflag |= CS8;奇效驗(Odd) 7 位Option.c_cflag |= PARENB;Option.c_cflag &= PARODD;Option.c_cflag &= CSTOPB;Option.c_cflag &= CSIZE;Option.c_cflag |= CS7;偶效驗(Even) 7 位Option.c_cflag &= PARENB;Option.c_cflag |= PARODD;Option.c_cflag &= CSTOPB;Option.c_cflag &= CSIZE;Option.c_cflag |= CS7;Space 效驗 7 位Option.c_cflag &= PARENB;Option.c_cflag &= CSTOPB;Option.c_cflag &= &CSIZE;Option.c_cflag |= CS8;設(shè)置停止位:1 位:options.c_cflag &= CSTOPB;2 位:options.c_cflag |= CSTOPB;注意:如果不是開發(fā)終端之類的,只是串口傳輸數(shù)據(jù),而不需要串口來處理,那么使用原始模式(Raw Mode)方式來通訊,設(shè)置方式如下:options.c_lflag &= (ICANON | ECHO | ECHOE | ISIG); /*Input*/options.c_oflag &= OPOST; /*Output*/ 讀寫串口設(shè)置好串口之后,讀寫串口就很容易了,把串口當(dāng)作文件讀寫就可以了。 發(fā)送數(shù)據(jù):char buffer1024;int Length1024;int nByte;nByte = write(fd, buffer ,Length) 讀取串口數(shù)據(jù):使用文件操作read 函數(shù)讀取,如果設(shè)置為原始模式(Raw Mode)傳輸數(shù)據(jù),那么read 函數(shù)返回的字符數(shù)是實際串口收到的字符數(shù)??梢允褂貌僮魑募暮瘮?shù)來實現(xiàn)異步讀取,如fcntl,或者select 等來操作。char buff1024;int Len1024;int readByte = read(fd, buff, Len); 關(guān)閉串口關(guān)閉串口就是關(guān)閉文件。close(fd);七、實驗步驟1、閱讀理解源碼進(jìn)入expbasic03_tty 目錄,使用vi 編輯器或其他編輯器閱讀理解源代碼。2、編譯應(yīng)用程序運行make 產(chǎn)生term 可執(zhí)行文件rootzxt root# cd /arm2410s/exp/basic/03_tty/rootzxt 03_tty# makearmv4l-unknown-linux-gcc -c -o term.o term.carmv4l-unknown-linux-gcc -o ./bin/term term.o -lpthreadarmv4l-unknown-linux-gcc -o term term.o -lpthreadrootzxt 03_tty# lsMakefile Makefile.bak term term.c term.o tty.c3、下載調(diào)試切換到minicom 終端窗口,使用NFS mount 開發(fā)主機(jī)的/arm2410s 到/host 目錄。進(jìn)入expbasic03_tty 目錄,運行term,觀察運行結(jié)果的正確性。rootzxt root# minicom/mnt/yaffs mount -t nfs -o nolock 6:/arm2410s /host/mnt/yaffscd /host/exp/basic/03_tty/host/exp/basic/03_tty./termread modemsend data123456789:;?ABCDEFGHIJKLMNOPQRSTUVWX由于內(nèi)核已經(jīng)將串口1 作為終端控制臺,所以可以看到term 發(fā)出的數(shù)據(jù),卻無法看到開發(fā)主機(jī)發(fā)來的數(shù)據(jù),可以使用另外一臺主機(jī)連接串口2 進(jìn)行收發(fā)測試。Ctrl+c 可使程序強行退出。注意:如果在執(zhí)行./term 時出現(xiàn)下面的錯誤,可以通過我們前文提到的方法建立一個連接來解決。/dev/ttyS0: No such file or directory解決方法:/mnt/yaffs cd /dev/dev ln sf /dev/tts/0 ttyS0 (注意首字母是l, 不是數(shù)字1)八、思考題1編寫一個簡單的文件收發(fā)程序完成串口文件下載。2終端對特殊字符的處理。實驗三 以太網(wǎng)通信實驗一、實驗?zāi)康?、掌握在ARM 開發(fā)板實現(xiàn)一個簡單WEB 服務(wù)器的過程。2、學(xué)習(xí)在ARM 開發(fā)板上的SOCKET 網(wǎng)絡(luò)編程。3、學(xué)習(xí)Linux 下的signal()函數(shù)的使用。二、實驗內(nèi)容學(xué)習(xí)使用socket 進(jìn)行通訊編程的過程,了解一個實際的網(wǎng)絡(luò)通訊應(yīng)用程序整體設(shè)計,閱讀HTTP 協(xié)議的相關(guān)內(nèi)容,學(xué)習(xí)幾個重要的網(wǎng)絡(luò)函數(shù)的使用方法。讀懂HTTPD.C 源代碼。在此基礎(chǔ)上增加一些其他功能。在PC 計算機(jī)上使用瀏覽器測試嵌入式WEB 服務(wù)器的功能。三、預(yù)備知識 C 語言的基礎(chǔ)知識、程序調(diào)試的基礎(chǔ)知識和方法,Linux 環(huán)境下常用命令和Vi 編輯器的操作。 HTTP1.0 協(xié)議的基本知識。 SOCKET 編程的幾個基本函數(shù)的使用方法。四、實驗設(shè)備及工具硬件:UP-NETARM2410-S 嵌入式實驗平臺、PC 機(jī)Pentium 500 以上, 硬盤10G 以上。軟件:PC 機(jī)操作系統(tǒng)REDHAT LINUX 9.0MINICOMARM-LINUX 開發(fā)環(huán)境五、程序分析1、主程序設(shè)計1)功能說明系統(tǒng)的總?cè)肟?,也是系統(tǒng)的主要控制函數(shù)。分別完成如下功能: 建立環(huán)境設(shè)置。 設(shè)置信號處理方式。 建立偵聽TCP 流方式SOCKET 并綁定80 端口。 建立連接偵聽及客戶連接處理調(diào)用主循環(huán)。2)算法流程圖算法流程圖如圖2.7.5 所示:圖2.7.5 算法流程圖3)命令行輸入處理用戶在命令行輸入?yún)?shù) -i ,則將客戶輸入文件描述字設(shè)為0,即標(biāo)準(zhǔn)輸入。用于在本機(jī)進(jìn)行測試。其他輸入全部忽略。2、客戶連接處理模塊設(shè)計1)功能說明用于初步處理客戶的連接請求,并將請求信息傳遞給客戶請求解析函數(shù)處理。2)算法具體算法如圖2.7.6 所示:圖2.7.6 算法流程圖3、客戶請求解析處理模塊設(shè)計1)功能說明用于解析客戶的請求,并根據(jù)請求信息調(diào)用相應(yīng)的函數(shù)進(jìn)行請求處理。2)算法算法流程圖如圖2.7.7 所示:圖2.7.7 算法流程圖4、發(fā)送HTTP 協(xié)議數(shù)據(jù)頭模塊設(shè)計1)功能說明根據(jù)參數(shù)的不同,發(fā)送不同的HTTP 協(xié)議頭信息。2)算法函數(shù)定義為:int PrintHeader(FILE *f, int content_type) 發(fā)送請求成功信息:HTTP/1.0 200 OK。根據(jù)文檔類型發(fā)送相應(yīng)的信息:fprintf(),函數(shù)中的第一個參數(shù)f 為客戶連接文件流句柄。switch (content_type)case t:fprintf(f,Content-type: text/plainn);break;case g:fprintf(f,Content-type: image/gifn);break;case j:fprintf(f,Content-type: image/jpegn);break;case h:fprintf(f,Content-type: text/htmln);break; 發(fā)送服務(wù)器信息:fprintf(f,Server: AMRLinux-httpd 0.2.4n); 發(fā)送文件過期為永不過期:fprintf(f,Expires: 0n);六、實驗步驟1、閱讀理解源碼進(jìn)入/arm2410s/exp/basic/09_httpd 目錄,使用vi 編輯器或其他編輯器閱讀理解源代碼2、編譯應(yīng)用程序運行make 產(chǎn)生可執(zhí)行文件httpdrootzxt /#
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CRIA 25002-2021橡膠硫化促進(jìn)劑TBBS
- T/CPUMT 002-2022基于傾斜航空攝影的實景三維模型構(gòu)建技術(shù)規(guī)范
- T/CNFMA B027-2023戶外林業(yè)機(jī)械以汽油機(jī)為動力的背負(fù)式除草機(jī)
- T/CNFA 2-2017軟體家具床墊
- T/CIMA 0026-2021電能表外置斷路器試驗方法
- T/CIMA 0020-2020交流電能表動態(tài)性能檢驗裝置
- T/CHATA 023-2022結(jié)核病定點醫(yī)療機(jī)構(gòu)結(jié)核感染預(yù)防與控制規(guī)范
- T/CFPA 012-2022消防用壓接式涂覆碳鋼管材及管件
- T/CEPPEA 5023-2023風(fēng)光儲充一體化充電站設(shè)計規(guī)范
- T/CEMTA 4-2023工業(yè)炸藥生產(chǎn)線安全聯(lián)鎖檢測方法溫度、壓力和流量
- 綜合管線測量技術(shù)方案
- 古風(fēng)團(tuán)扇手工課件
- 2025-2030中國養(yǎng)老行業(yè)市場深度分析及前景趨勢與投資研究報告
- 醫(yī)院基建部面試題及答案
- 2025年中考物理模擬試卷猜題卷 3套(含答案)
- 2024-2025學(xué)年滬教版七年級數(shù)學(xué)上冊復(fù)習(xí):分式(7大題型)(42道壓軸題專練)解析版
- 恒溫烙鐵焊接溫度驗證報告
- 湖北省松滋市老城鎮(zhèn)八一小學(xué)2024-2025學(xué)年小學(xué)六年級第二學(xué)期小升初數(shù)學(xué)試卷含解析
- 企業(yè)經(jīng)營管理的基本理論知識90P
- 石墨產(chǎn)品設(shè)計與生產(chǎn)中的質(zhì)量控制與優(yōu)化
- 郵政郵件內(nèi)部處理業(yè)務(wù)外包服務(wù)投標(biāo)方案(技術(shù)方案)
評論
0/150
提交評論