版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第6 6章章 簡(jiǎn)單的字符設(shè)備驅(qū)動(dòng)程序簡(jiǎn)單的字符設(shè)備驅(qū)動(dòng)程序在在Linux設(shè)備驅(qū)動(dòng)程序的家族中,字符設(shè)備驅(qū)動(dòng)程序是設(shè)備驅(qū)動(dòng)程序的家族中,字符設(shè)備驅(qū)動(dòng)程序是較為簡(jiǎn)單的驅(qū)動(dòng)程序,同時(shí)也是應(yīng)用非常廣泛的驅(qū)動(dòng)程序。較為簡(jiǎn)單的驅(qū)動(dòng)程序,同時(shí)也是應(yīng)用非常廣泛的驅(qū)動(dòng)程序。所以學(xué)習(xí)字符設(shè)備驅(qū)動(dòng)程序,對(duì)構(gòu)建所以學(xué)習(xí)字符設(shè)備驅(qū)動(dòng)程序,對(duì)構(gòu)建Linux設(shè)備驅(qū)動(dòng)程序的設(shè)備驅(qū)動(dòng)程序的知識(shí)結(jié)構(gòu)非常的重要。本章將帶領(lǐng)讀者編寫(xiě)一個(gè)完整的字符知識(shí)結(jié)構(gòu)非常的重要。本章將帶領(lǐng)讀者編寫(xiě)一個(gè)完整的字符設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序。6.1 6.1 字符設(shè)備驅(qū)動(dòng)程序框架字符設(shè)備驅(qū)動(dòng)程序框架本節(jié)對(duì)字符設(shè)備驅(qū)動(dòng)程序框架進(jìn)行了簡(jiǎn)要的分析。字本節(jié)對(duì)
2、字符設(shè)備驅(qū)動(dòng)程序框架進(jìn)行了簡(jiǎn)要的分析。字符設(shè)備驅(qū)動(dòng)程序中有許多非常重要的概念,下面將從將從最符設(shè)備驅(qū)動(dòng)程序中有許多非常重要的概念,下面將從將從最簡(jiǎn)單的概念講起:字符設(shè)備和塊設(shè)備。簡(jiǎn)單的概念講起:字符設(shè)備和塊設(shè)備。6.1.1 6.1.1 字符設(shè)備和塊設(shè)備字符設(shè)備和塊設(shè)備Linux系統(tǒng)將設(shè)備分為系統(tǒng)將設(shè)備分為3種類(lèi)型:字符設(shè)備種類(lèi)型:字符設(shè)備、塊設(shè)備和塊設(shè)備和網(wǎng)絡(luò)接口設(shè)備。其中字符設(shè)備和塊設(shè)備難以區(qū)分,這里將對(duì)網(wǎng)絡(luò)接口設(shè)備。其中字符設(shè)備和塊設(shè)備難以區(qū)分,這里將對(duì)其進(jìn)行重要講解。其進(jìn)行重要講解。1字符設(shè)備字符設(shè)備2塊設(shè)備塊設(shè)備3字符設(shè)備和塊設(shè)備的區(qū)分字符設(shè)備和塊設(shè)備的區(qū)分6.1.2 6.1.2 主設(shè)
3、備號(hào)和次設(shè)備號(hào)主設(shè)備號(hào)和次設(shè)備號(hào)一個(gè)字符設(shè)備或者塊設(shè)備都有一個(gè)主設(shè)備號(hào)和次設(shè)備一個(gè)字符設(shè)備或者塊設(shè)備都有一個(gè)主設(shè)備號(hào)和次設(shè)備號(hào)。主設(shè)備號(hào)和次設(shè)備號(hào)統(tǒng)稱(chēng)為設(shè)備號(hào)。主設(shè)備號(hào)用來(lái)表示號(hào)。主設(shè)備號(hào)和次設(shè)備號(hào)統(tǒng)稱(chēng)為設(shè)備號(hào)。主設(shè)備號(hào)用來(lái)表示一個(gè)特定的驅(qū)動(dòng)程序。次設(shè)備號(hào)用來(lái)表示使用該驅(qū)動(dòng)程序的一個(gè)特定的驅(qū)動(dòng)程序。次設(shè)備號(hào)用來(lái)表示使用該驅(qū)動(dòng)程序的各設(shè)備。例如一個(gè)嵌入式系統(tǒng),有兩個(gè)各設(shè)備。例如一個(gè)嵌入式系統(tǒng),有兩個(gè)LED指示燈,指示燈,LED燈燈需要獨(dú)立的打開(kāi)或者關(guān)閉。那么,可以寫(xiě)一個(gè)需要獨(dú)立的打開(kāi)或者關(guān)閉。那么,可以寫(xiě)一個(gè)LED燈的字符燈的字符設(shè)備驅(qū)動(dòng)程序,可以將其主設(shè)備號(hào)注冊(cè)成設(shè)備驅(qū)動(dòng)程序,可以將其主設(shè)備號(hào)
4、注冊(cè)成5號(hào)設(shè)備,次設(shè)備號(hào)設(shè)備,次設(shè)備號(hào)分別為號(hào)分別為1和和2。這里,次設(shè)備號(hào)就分別表示兩個(gè)。這里,次設(shè)備號(hào)就分別表示兩個(gè)LED燈。燈。6.1.3 6.1.3 申請(qǐng)和釋放設(shè)備號(hào)申請(qǐng)和釋放設(shè)備號(hào)內(nèi)核維護(hù)著一個(gè)特殊的數(shù)據(jù)結(jié)構(gòu),用來(lái)存放設(shè)備號(hào)與內(nèi)核維護(hù)著一個(gè)特殊的數(shù)據(jù)結(jié)構(gòu),用來(lái)存放設(shè)備號(hào)與設(shè)備的關(guān)系。在安裝設(shè)備時(shí),應(yīng)該給設(shè)備申請(qǐng)一個(gè)設(shè)備號(hào),設(shè)備的關(guān)系。在安裝設(shè)備時(shí),應(yīng)該給設(shè)備申請(qǐng)一個(gè)設(shè)備號(hào),使系統(tǒng)可以明確設(shè)備對(duì)應(yīng)的設(shè)備號(hào)。設(shè)備驅(qū)動(dòng)程序中的很多使系統(tǒng)可以明確設(shè)備對(duì)應(yīng)的設(shè)備號(hào)。設(shè)備驅(qū)動(dòng)程序中的很多功能,是通過(guò)設(shè)備號(hào)來(lái)操作設(shè)備的。這里,首先對(duì)申請(qǐng)?jiān)O(shè)備功能,是通過(guò)設(shè)備號(hào)來(lái)操作設(shè)備的。這里,首先對(duì)申請(qǐng)?jiān)O(shè)備號(hào)進(jìn)行
5、簡(jiǎn)述。號(hào)進(jìn)行簡(jiǎn)述。6.2 6.2 初識(shí)初識(shí)cdevcdev結(jié)構(gòu)結(jié)構(gòu)當(dāng)申請(qǐng)字符設(shè)備的設(shè)備號(hào)后,這時(shí),需要將字符設(shè)備注當(dāng)申請(qǐng)字符設(shè)備的設(shè)備號(hào)后,這時(shí),需要將字符設(shè)備注冊(cè)到系統(tǒng)中,才能使用字符設(shè)備。為了理解這個(gè)實(shí)現(xiàn)過(guò)程,冊(cè)到系統(tǒng)中,才能使用字符設(shè)備。為了理解這個(gè)實(shí)現(xiàn)過(guò)程,首先解釋一下首先解釋一下cdev結(jié)構(gòu)體。結(jié)構(gòu)體。6.2.1 cdev6.2.1 cdev結(jié)構(gòu)體結(jié)構(gòu)體 在在linux內(nèi)核中使用內(nèi)核中使用cdev結(jié)構(gòu)體來(lái)描述字符設(shè)備。該結(jié)結(jié)構(gòu)體來(lái)描述字符設(shè)備。該結(jié)構(gòu)體是所有字符設(shè)備的抽象,其包含了大量字符設(shè)備所共有構(gòu)體是所有字符設(shè)備的抽象,其包含了大量字符設(shè)備所共有的特性。的特性。6.2.2 fil
6、e_operations6.2.2 file_operations結(jié)構(gòu)體結(jié)構(gòu)體file_operations是一個(gè)對(duì)設(shè)備進(jìn)行操作的抽象結(jié)構(gòu)體。是一個(gè)對(duì)設(shè)備進(jìn)行操作的抽象結(jié)構(gòu)體。linux內(nèi)核的設(shè)計(jì)非常巧妙。內(nèi)核允許為設(shè)備建立一個(gè)設(shè)備內(nèi)核的設(shè)計(jì)非常巧妙。內(nèi)核允許為設(shè)備建立一個(gè)設(shè)備文件,對(duì)設(shè)備文件的所有操作,就相當(dāng)于對(duì)設(shè)備的操作。這文件,對(duì)設(shè)備文件的所有操作,就相當(dāng)于對(duì)設(shè)備的操作。這樣的好處是,用戶(hù)程序可以使用訪問(wèn)普通文件的方法,來(lái)訪樣的好處是,用戶(hù)程序可以使用訪問(wèn)普通文件的方法,來(lái)訪問(wèn)設(shè)備文件問(wèn)設(shè)備文件,進(jìn)而訪問(wèn)設(shè)備。這樣的方法,極大地減輕了程進(jìn)而訪問(wèn)設(shè)備。這樣的方法,極大地減輕了程序員的編程負(fù)
7、擔(dān),程序員不必要去熟悉新的驅(qū)動(dòng)接口,就能序員的編程負(fù)擔(dān),程序員不必要去熟悉新的驅(qū)動(dòng)接口,就能夠訪問(wèn)設(shè)備。夠訪問(wèn)設(shè)備。6.2.3 cdev6.2.3 cdev和和file_operationsfile_operations結(jié)構(gòu)體的關(guān)系結(jié)構(gòu)體的關(guān)系一般來(lái)說(shuō),驅(qū)動(dòng)開(kāi)發(fā)人員會(huì)將特定設(shè)備的特定數(shù)據(jù)放一般來(lái)說(shuō),驅(qū)動(dòng)開(kāi)發(fā)人員會(huì)將特定設(shè)備的特定數(shù)據(jù)放到到cdev結(jié)構(gòu)體后,組成一個(gè)新的結(jié)構(gòu)體。如圖結(jié)構(gòu)體后,組成一個(gè)新的結(jié)構(gòu)體。如圖6.3所示,所示,“自定義字符設(shè)備自定義字符設(shè)備”中就包含特定設(shè)備的數(shù)據(jù)。該中就包含特定設(shè)備的數(shù)據(jù)。該“自定義設(shè)自定義設(shè)備備”中有一個(gè)中有一個(gè)cdev結(jié)構(gòu)體。結(jié)構(gòu)體。cdev結(jié)構(gòu)體中有
8、一個(gè)指向結(jié)構(gòu)體中有一個(gè)指向file_operations的指針。這里,的指針。這里,file_operations中的函數(shù)就可中的函數(shù)就可以用來(lái)操作硬件,或者以用來(lái)操作硬件,或者“自定義字符設(shè)備自定義字符設(shè)備”中的其他數(shù)據(jù),中的其他數(shù)據(jù),從而起到控制設(shè)備的作用。從而起到控制設(shè)備的作用。6.2.4 inode6.2.4 inode結(jié)構(gòu)體結(jié)構(gòu)體內(nèi)核使用內(nèi)核使用inode結(jié)構(gòu)在內(nèi)部表示文件。結(jié)構(gòu)在內(nèi)部表示文件。inode一般作為一般作為file_operations結(jié)構(gòu)中函數(shù)的參數(shù)傳遞過(guò)來(lái)。例如,結(jié)構(gòu)中函數(shù)的參數(shù)傳遞過(guò)來(lái)。例如,open函函數(shù)將傳遞一個(gè)數(shù)將傳遞一個(gè)inode指針進(jìn)來(lái),表示目前打開(kāi)的文
9、件節(jié)點(diǎn)。指針進(jìn)來(lái),表示目前打開(kāi)的文件節(jié)點(diǎn)。需要注意的是,需要注意的是,inode的成員已經(jīng)被系統(tǒng)賦予了合適的值,的成員已經(jīng)被系統(tǒng)賦予了合適的值,驅(qū)動(dòng)程序只需要使用該節(jié)點(diǎn)中的信息,而不用去更改。驅(qū)動(dòng)程序只需要使用該節(jié)點(diǎn)中的信息,而不用去更改。6.3 6.3 字符設(shè)備驅(qū)動(dòng)的組成字符設(shè)備驅(qū)動(dòng)的組成了解字符設(shè)備驅(qū)動(dòng)程序的組成,對(duì)編寫(xiě)驅(qū)動(dòng)程序非常了解字符設(shè)備驅(qū)動(dòng)程序的組成,對(duì)編寫(xiě)驅(qū)動(dòng)程序非常有用。因?yàn)樽址O(shè)備在結(jié)構(gòu)上都有很多相似的地方,所以只有用。因?yàn)樽址O(shè)備在結(jié)構(gòu)上都有很多相似的地方,所以只要會(huì)編寫(xiě)一個(gè)字符設(shè)備驅(qū)動(dòng)程序,那么相似的字符設(shè)備驅(qū)動(dòng)要會(huì)編寫(xiě)一個(gè)字符設(shè)備驅(qū)動(dòng)程序,那么相似的字符設(shè)備驅(qū)動(dòng)程序的編
10、寫(xiě),就不難了。在程序的編寫(xiě),就不難了。在linxu系統(tǒng)中,字符設(shè)備驅(qū)動(dòng)程系統(tǒng)中,字符設(shè)備驅(qū)動(dòng)程序由以下幾個(gè)部分組成。序由以下幾個(gè)部分組成。6.3.1 6.3.1 字符設(shè)備加載和卸載函數(shù)字符設(shè)備加載和卸載函數(shù)在字符設(shè)備的加載函數(shù)中,應(yīng)該實(shí)現(xiàn)字符設(shè)備號(hào)的申在字符設(shè)備的加載函數(shù)中,應(yīng)該實(shí)現(xiàn)字符設(shè)備號(hào)的申請(qǐng)和請(qǐng)和cdev的注冊(cè)。相反,在字符設(shè)備的卸載函數(shù)中應(yīng)該實(shí)現(xiàn)的注冊(cè)。相反,在字符設(shè)備的卸載函數(shù)中應(yīng)該實(shí)現(xiàn)字符設(shè)備號(hào)的釋放和字符設(shè)備號(hào)的釋放和cdev的注銷(xiāo)。的注銷(xiāo)。cdev是內(nèi)核開(kāi)發(fā)者對(duì)字符設(shè)備的一個(gè)抽象。除了是內(nèi)核開(kāi)發(fā)者對(duì)字符設(shè)備的一個(gè)抽象。除了cdev中中的信息外,特定的字符設(shè)備還需要特定的信息,
11、常常將特定的信息外,特定的字符設(shè)備還需要特定的信息,常常將特定的信息放在的信息放在cdev之后,形成一個(gè)設(shè)備結(jié)構(gòu)體,如代碼中的之后,形成一個(gè)設(shè)備結(jié)構(gòu)體,如代碼中的xxx_dev。6.3.2 file_operations6.3.2 file_operations結(jié)構(gòu)體和其成員函數(shù)結(jié)構(gòu)體和其成員函數(shù)file_operations結(jié)構(gòu)體中的成員函數(shù)都對(duì)應(yīng)著驅(qū)動(dòng)程序結(jié)構(gòu)體中的成員函數(shù)都對(duì)應(yīng)著驅(qū)動(dòng)程序的接口,用戶(hù)程序可以通過(guò)內(nèi)核來(lái)調(diào)用這些接口,從而控制的接口,用戶(hù)程序可以通過(guò)內(nèi)核來(lái)調(diào)用這些接口,從而控制設(shè)備。大多數(shù)字符設(shè)備驅(qū)動(dòng)都會(huì)實(shí)現(xiàn)設(shè)備。大多數(shù)字符設(shè)備驅(qū)動(dòng)都會(huì)實(shí)現(xiàn)read() )、write()和和
12、ioctl()函數(shù)。函數(shù)。6.3.3 6.3.3 驅(qū)動(dòng)程序與應(yīng)用程序的數(shù)據(jù)交換驅(qū)動(dòng)程序與應(yīng)用程序的數(shù)據(jù)交換驅(qū)動(dòng)程序和應(yīng)用程序的數(shù)據(jù)交換是非常重要的。驅(qū)動(dòng)程序和應(yīng)用程序的數(shù)據(jù)交換是非常重要的。file_operations中的中的read()和和write()函數(shù),就是用來(lái)在驅(qū)動(dòng)程序函數(shù),就是用來(lái)在驅(qū)動(dòng)程序和應(yīng)用程序間交換數(shù)據(jù)的。通過(guò)數(shù)據(jù)交換,驅(qū)動(dòng)程序和應(yīng)用程和應(yīng)用程序間交換數(shù)據(jù)的。通過(guò)數(shù)據(jù)交換,驅(qū)動(dòng)程序和應(yīng)用程序可以彼此了解對(duì)方的情況。但是驅(qū)動(dòng)程序和應(yīng)用程序?qū)儆诓恍蚩梢员舜肆私鈱?duì)方的情況。但是驅(qū)動(dòng)程序和應(yīng)用程序?qū)儆诓煌牡刂房臻g。驅(qū)動(dòng)程序不能直接訪問(wèn)應(yīng)用程序的地址空間;同的地址空間。驅(qū)動(dòng)程序不
13、能直接訪問(wèn)應(yīng)用程序的地址空間;同樣應(yīng)用程序也不能直接訪問(wèn)驅(qū)動(dòng)程序的地址空間,否則會(huì)破同樣應(yīng)用程序也不能直接訪問(wèn)驅(qū)動(dòng)程序的地址空間,否則會(huì)破壞彼此空間中的數(shù)據(jù),壞彼此空間中的數(shù)據(jù),從而造成系統(tǒng)崩潰,或者數(shù)據(jù)損壞。從而造成系統(tǒng)崩潰,或者數(shù)據(jù)損壞。6.3.4 6.3.4 字符設(shè)備驅(qū)動(dòng)程序組成小結(jié)字符設(shè)備驅(qū)動(dòng)程序組成小結(jié)字符設(shè)備是字符設(shè)備是3大類(lèi)設(shè)備(字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備)大類(lèi)設(shè)備(字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備)中較簡(jiǎn)單的一類(lèi)設(shè)備,其驅(qū)動(dòng)程序中完成的主要工作是初始中較簡(jiǎn)單的一類(lèi)設(shè)備,其驅(qū)動(dòng)程序中完成的主要工作是初始化、添加和刪除化、添加和刪除cdev結(jié)構(gòu)體,申請(qǐng)和釋放設(shè)備號(hào),以及填充結(jié)構(gòu)體,申請(qǐng)和
14、釋放設(shè)備號(hào),以及填充file_operation結(jié)構(gòu)體中操作函數(shù),并實(shí)現(xiàn)結(jié)構(gòu)體中操作函數(shù),并實(shí)現(xiàn)file_operations結(jié)構(gòu)結(jié)構(gòu)體中的體中的read()、write()、ioctl()等重要函數(shù)。等重要函數(shù)。6.4 VirtualDisk6.4 VirtualDisk字符設(shè)備驅(qū)動(dòng)字符設(shè)備驅(qū)動(dòng)從本章開(kāi)始,后續(xù)的幾章都將以一個(gè)從本章開(kāi)始,后續(xù)的幾章都將以一個(gè)VirtualDisk設(shè)備為設(shè)備為藍(lán)本進(jìn)行講解。藍(lán)本進(jìn)行講解。VirtualDisk是一個(gè)虛擬磁盤(pán)設(shè)備,在這個(gè)虛是一個(gè)虛擬磁盤(pán)設(shè)備,在這個(gè)虛擬磁盤(pán)設(shè)備中分配了擬磁盤(pán)設(shè)備中分配了8K的連續(xù)內(nèi)存空間,并定義了兩個(gè)端口的連續(xù)內(nèi)存空間,并定義了兩
15、個(gè)端口數(shù)據(jù)(數(shù)據(jù)(port1和和port2)。驅(qū)動(dòng)程序可以對(duì)設(shè)備進(jìn)行讀寫(xiě)、控制)。驅(qū)動(dòng)程序可以對(duì)設(shè)備進(jìn)行讀寫(xiě)、控制和定位操作,用戶(hù)空間的程序可以通過(guò)和定位操作,用戶(hù)空間的程序可以通過(guò)Linux系統(tǒng)調(diào)用訪問(wèn)系統(tǒng)調(diào)用訪問(wèn)VirtualDisk設(shè)備中的數(shù)據(jù)。設(shè)備中的數(shù)據(jù)。6.4.1 VirtualDisk6.4.1 VirtualDisk的頭文件、宏和設(shè)備結(jié)構(gòu)體的頭文件、宏和設(shè)備結(jié)構(gòu)體VirtualDisk驅(qū)動(dòng)程序應(yīng)該包含必要的頭文件和宏信息,驅(qū)動(dòng)程序應(yīng)該包含必要的頭文件和宏信息,并定義一個(gè)與實(shí)際設(shè)備相對(duì)應(yīng)的設(shè)備結(jié)構(gòu)體,相關(guān)的定義如并定義一個(gè)與實(shí)際設(shè)備相對(duì)應(yīng)的設(shè)備結(jié)構(gòu)體,相關(guān)的定義如下面的代碼所示。
16、下面的代碼所示。6.4.2 6.4.2 加載和卸載驅(qū)動(dòng)程序加載和卸載驅(qū)動(dòng)程序第第6.3節(jié)已經(jīng)對(duì)字符設(shè)備驅(qū)動(dòng)程序的加載和卸載模板進(jìn)節(jié)已經(jīng)對(duì)字符設(shè)備驅(qū)動(dòng)程序的加載和卸載模板進(jìn)行了介紹。行了介紹。VirtualDisk的加載和卸載函數(shù)也和的加載和卸載函數(shù)也和6.3節(jié)介紹的節(jié)介紹的類(lèi)似。類(lèi)似。6.4.3 cdev6.4.3 cdev的初始化和注冊(cè)的初始化和注冊(cè) 上面代碼的第上面代碼的第25行調(diào)用的行調(diào)用的VirtualDisk_setup_cdev()函數(shù)函數(shù)完成了完成了cdev的初始化和注冊(cè)。的初始化和注冊(cè)。6.4.4 6.4.4 打開(kāi)和釋放函數(shù)打開(kāi)和釋放函數(shù)當(dāng)用戶(hù)程序調(diào)用當(dāng)用戶(hù)程序調(diào)用open()
17、函數(shù)打開(kāi)設(shè)備文件時(shí),內(nèi)核會(huì)最函數(shù)打開(kāi)設(shè)備文件時(shí),內(nèi)核會(huì)最終調(diào)用終調(diào)用VirtualDisk_open()函數(shù)。函數(shù)。6.4.5 6.4.5 讀寫(xiě)函數(shù)讀寫(xiě)函數(shù)當(dāng)用戶(hù)程序調(diào)用當(dāng)用戶(hù)程序調(diào)用read()函數(shù)讀設(shè)備文件中的數(shù)據(jù)時(shí),內(nèi)函數(shù)讀設(shè)備文件中的數(shù)據(jù)時(shí),內(nèi)核會(huì)最終調(diào)用核會(huì)最終調(diào)用VirtualDisk_read()函數(shù)。函數(shù)。6.4.6 seek()6.4.6 seek()函數(shù)函數(shù)當(dāng)用戶(hù)程序調(diào)用當(dāng)用戶(hù)程序調(diào)用fseek()函數(shù)在設(shè)備文件中移動(dòng)文件指針函數(shù)在設(shè)備文件中移動(dòng)文件指針時(shí),內(nèi)核會(huì)最終調(diào)用時(shí),內(nèi)核會(huì)最終調(diào)用VirtualDisk_llseek()函數(shù)。函數(shù)。6.4.7 ioctl()6.4.7 ioctl()函數(shù)函數(shù)當(dāng)用戶(hù)程序調(diào)用當(dāng)用戶(hù)程序調(diào)用ioctl()函數(shù)改變?cè)O(shè)備的功能時(shí),內(nèi)核會(huì)函數(shù)改變?cè)O(shè)備的功能時(shí),內(nèi)核會(huì)最終調(diào)用最終調(diào)用VirtualDisk_ioctl()函數(shù)。函數(shù)。6.5 6.5 小結(jié)小結(jié)本章主要講解了字符設(shè)備
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年貨場(chǎng)階段性借用合同
- 2025年度智能化磚廠設(shè)備承包合同書(shū)4篇
- 2024預(yù)制場(chǎng)地租賃與綠色建筑評(píng)價(jià)服務(wù)合同3篇
- 2024食堂人員培訓(xùn)計(jì)劃與聘用合同規(guī)范3篇
- 2025年度時(shí)尚飾品代理招商合同協(xié)議4篇
- 2024版樓頂場(chǎng)地出租合同
- 2025年度戶(hù)外活動(dòng)場(chǎng)地草籽草坪鋪設(shè)合同范本3篇
- 2025年度智能辦公場(chǎng)地租賃及物聯(lián)網(wǎng)技術(shù)應(yīng)用合同4篇
- 2024食品行業(yè)智能物流合同
- 2025年度住宅小區(qū)樓頂太陽(yáng)能設(shè)備安裝合同4篇
- 局部放電測(cè)試儀校準(zhǔn)規(guī)范 第1部分:超聲波法局部放電測(cè)試儀
- 旅游文本翻譯策略之轉(zhuǎn)換法-正反譯
- 工作頁(yè)(計(jì)算機(jī)組裝與維護(hù)-家用電腦組裝)
- 租賃車(chē)輛退車(chē)協(xié)議
- 醫(yī)療護(hù)理技術(shù)操作規(guī)程規(guī)定
- 分裂癥的非藥物治療
- 盤(pán)式制動(dòng)器中英文對(duì)照外文翻譯文獻(xiàn)
- 留置導(dǎo)尿管常見(jiàn)并發(fā)癥預(yù)防及處理
- 社會(huì)系統(tǒng)研究方法的重要原則
- 重癥醫(yī)學(xué)科健康宣教手冊(cè)
- 四年級(jí)少先隊(duì)活動(dòng)課教案(完整版)
評(píng)論
0/150
提交評(píng)論