欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      linux設(shè)備驅(qū)動(dòng)程序開發(fā)總結(jié)

      時(shí)間:2019-05-13 18:18:12下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《linux設(shè)備驅(qū)動(dòng)程序開發(fā)總結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《linux設(shè)備驅(qū)動(dòng)程序開發(fā)總結(jié)》。

      第一篇:linux設(shè)備驅(qū)動(dòng)程序開發(fā)總結(jié)

      不管我們學(xué)習(xí)什么編程語言,和我們見面的第一個(gè)程序就是“hello world!” 相信各位道上的朋友都遇到過這種個(gè)程序!

      學(xué)習(xí)驅(qū)動(dòng)程序也不例外,我學(xué)的第一個(gè)驅(qū)動(dòng)程序就是“hello world!” 具體的程序代碼如下:

      #include

      #include

      MODULE_LICENSE(“Dual BSD/GPL”);

      static int hello_init(void)

      {

      printk(KERN_ALERT“Hello, world!n”);

      return 0;

      }

      static void hello_exit(void)

      {

      printk(KERN_ALERT“byby FriendyARM mini2440!n”);

      }

      module_init(hello_init);

      module_exit(hello_exit);

      將其復(fù)制到工作目錄下,并編寫一個(gè)簡(jiǎn)單的Makefile文件:

      由于每個(gè)人使用的Linux系統(tǒng)不一樣且每個(gè)人內(nèi)核源代碼所存放的位置也不是一樣的。所以編寫Makefile文件的時(shí)候,參考別人的進(jìn)行修改是一個(gè)很不錯(cuò)的的學(xué)習(xí)Makefile文件的方法。當(dāng)然你能把Linux內(nèi)核的Makefile文件了解一下,對(duì)你了解Linux內(nèi)核有很大的幫助的。

      學(xué)習(xí)心得:

      1、驅(qū)動(dòng)模塊運(yùn)行在內(nèi)核空間,運(yùn)行是不能依賴任何函數(shù)庫和模塊連接,所以在寫驅(qū)動(dòng)程序的時(shí)候

      所調(diào)用的函數(shù)只能是作為內(nèi)核一部分的函數(shù)。

      2、驅(qū)動(dòng)模塊和應(yīng)用程序的一個(gè)重要不同是:應(yīng)用程序退出時(shí)可不管資源釋放或者其他的清除

      工作,但模塊的退出啊哈念書必須仔細(xì)撤銷初始化函數(shù)所做的一切,否則,在系統(tǒng)想重新引導(dǎo)之前某些

      東西就會(huì)殘留在系統(tǒng)中。

      3、處理器的多種工作模式其實(shí)就是為了操作系統(tǒng)的用戶空間和內(nèi)核空間設(shè)計(jì)的,在Unix類的操作系統(tǒng)

      中只是用到了兩個(gè)級(jí)別:最高級(jí)別和最低級(jí)別。

      4、要十分注意驅(qū)動(dòng)程序的并發(fā)處理。在Linux驅(qū)動(dòng)程序中必須解決的一個(gè)問題就是多個(gè)進(jìn)程對(duì)共享資源的并發(fā)訪問.Linux對(duì)解決并發(fā)訪問可能導(dǎo)致的竟態(tài)問題提供了幾種機(jī)制:中斷屏蔽、原子操作、自旋鎖、信號(hào)量等機(jī)制。

      5、內(nèi)核API中具有下劃線(__)的函數(shù),通常是接口的底層組件,應(yīng)該慎用。

      6、內(nèi)核代碼不能實(shí)現(xiàn)浮點(diǎn)運(yùn)算。內(nèi)核中沒有提供一套進(jìn)行浮點(diǎn)運(yùn)算的完整的環(huán)境。

      7、Makefile文件的分析:

      obj-m := hello.o 代表了我們要構(gòu)建的模塊名為hello.ko,make會(huì)子啊該目錄下自動(dòng)找到hello.c文件進(jìn)行編譯。如果hello.o文件是有其他的源文件生成(比如file.1和file1.c)的,則在下面加上:

      hello-objs := file.o file1.o......(其中用紅色標(biāo)志的是對(duì)應(yīng)關(guān)系)$(MAKE)-C $(KERNELDIR)M=$(PWD)modules

      其中-C $(KERNELDIR)指定了內(nèi)核源代碼的位置,其中保存有內(nèi)核的頂層makefile文件。

      M=$(PWD)指定了模塊源代碼的位置

      modules 目標(biāo)指向obj-m變量中設(shè)定的模塊

      8、insmod使用公共內(nèi)核符號(hào)表來解析模塊中未定義的符號(hào),公共內(nèi)核符號(hào)表中包含了的、所有的全局內(nèi)核項(xiàng)(即函數(shù)和變量的地址),這是實(shí)現(xiàn)模塊化驅(qū)動(dòng)程序所必須的。

      9、Linux使用模塊層疊技術(shù),我們可以將模塊劃分為多個(gè)層次,通過簡(jiǎn)化每個(gè)層可以縮短開發(fā)周期。如果一個(gè)模塊需要向其他模塊導(dǎo)出符號(hào),則使用下面宏:

      EXPORT_SYMBOL(name);

      EXPORT_SYMBOL_GPL(name);

      符號(hào)必須子啊模塊文件的全局變量部分導(dǎo)出,因?yàn)檫@兩個(gè)宏將被擴(kuò)展為一個(gè)特殊變量的聲明,而該變量必須是全局的。

      10、所有的模塊代碼都必須包含下面兩個(gè)頭文件:

      #include

      #include

      11、所有模塊代碼都應(yīng)指定所使用的許可證:

      MODULE_LICENSE(“Dual BSD/GPL”);

      12、初始化和關(guān)閉

      初始化的實(shí)際定義通常是:

      staticint _ _init initialization_function(void)

      {

      /*初始化代碼*/

      }

      module_init(initialization_function)

      清除函數(shù)的實(shí)際定義是:

      static int _ _exit cleanup_function(void)

      {

      /*清除代碼*/

      }

      module_exit(cleanup_function)

      13、還有一些是可選的其他的描述型的定義:

      MODULE_AUTHOR(“");

      MODULE_DESCRIPTION(”“);

      MODULE_VERSION(”“);

      MODULE_ALIAS(”“);

      MODULE_DEVICE_TABLE(”");

      這些模塊的聲明習(xí)慣性的放在模塊程序的最后面。

      14、Linux內(nèi)核模塊的初始化出錯(cuò)處理一般使用“goto”語句,通常情況下很少使用“goto”,但是出錯(cuò)處理是(可能是唯一的情況),它卻非常的有用。

      在大一學(xué)習(xí)C語言的時(shí)候,老師就建議不要使用“goto”語句,并說很少會(huì)用到,在這里遇到第一個(gè)建議使用“goto”語句的。在追求效率的代碼中使用goto語句一直是最好的錯(cuò)誤恢復(fù)機(jī)制。下面是我截下來的一段關(guān)于使用goto語句實(shí)現(xiàn)錯(cuò)誤處理的程序:

      struct something*item1;

      struct somethingelse*item2;

      int stuff_ok;

      void my_cleanup(void)

      {

      if(item1)

      release_thing(item1);

      if(item2)

      release_thing2(item2);

      if(stuff_ok)

      unregister_stuff();

      return;

      }

      int __init my_init(void)

      {

      int err=-ENOMEM;

      item1= allocate_thing(arguments);item2= allocate_thing2(arguments2);if(!item2||!item2)

      goto fail;

      err= register_stuff(item1, item2);if(!err)

      stuff_ok= 1;

      else

      goto fail;

      return 0;/* success*/

      fail:

      my_cleanup();

      return err;

      }

      第二篇:嵌入式Linux系統(tǒng)下I2C設(shè)備驅(qū)動(dòng)程序的開發(fā)(范文模版)

      嵌入式Linux系統(tǒng)下I2C設(shè)備驅(qū)動(dòng)程序的開發(fā)

      【摘 要】 I2C總線是一種很通用的總線,具有簡(jiǎn)單、高效等特點(diǎn),廣泛應(yīng)用在各種消費(fèi)類電子產(chǎn)品及音視頻設(shè)備上,在嵌入式系統(tǒng)的開發(fā)中也經(jīng)常用到。本文分析了嵌入式 linux系統(tǒng)中I2C驅(qū)動(dòng)程序的結(jié)構(gòu),并結(jié)合一個(gè)具體的I2C時(shí)鐘芯片DS1307,說明在嵌入式linux系統(tǒng)下開發(fā)I2C設(shè)備驅(qū)動(dòng)程序的一般流程?!娟P(guān)鍵字】I2C總線 嵌入式linux 驅(qū)動(dòng)開發(fā)

      1、I2C總線簡(jiǎn)介 I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線最主要的優(yōu)點(diǎn)就是簡(jiǎn)單性和有效性。

      1.1 I2C總線工作原理

      I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,各種被控制器件均并聯(lián)在這條總線上,每個(gè)器件都有一個(gè)唯一的地址識(shí)別,可以作為總線上的一個(gè)發(fā)送器件或接收器件(具體由器件的功能決定)[1]。I2C總線的接口電路結(jié)構(gòu)如圖1所示。

      圖1 I2C總線接口電路[1] 1.2 I2C總線的幾種信號(hào)狀態(tài)[1]

      1.空閑狀態(tài):SDA和SCL都為高電平。2.開始條件(S):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。3.結(jié)束條件(P):SCL為低電平時(shí),SDA 由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。

      4.數(shù)據(jù)有效:在SCL的高電平期間,SDA保持穩(wěn)定,數(shù)據(jù)有效。SDA的改變只能發(fā)生在SCL的底電平期間。

      5.ACK信號(hào): 數(shù)據(jù)傳輸?shù)倪^程中,接收器件每接收一個(gè)字節(jié)數(shù)據(jù)要產(chǎn)生一個(gè)ACK信號(hào),向發(fā)送器件發(fā)出特定的低電平脈沖,表示已經(jīng)收到數(shù)據(jù)。1.3 I2C總線基本操作

      I2C總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL),同時(shí)控制總線的傳輸方向,并產(chǎn)生開始和停止條件。

      數(shù)據(jù)傳輸中,首先主器件產(chǎn)生開始條件,隨后是器件的控制字節(jié)(前七位是從器件的地址,最后一位為讀寫位)。接下來是讀寫操作的數(shù)據(jù),以及 ACK響應(yīng)信號(hào)。數(shù)據(jù)傳輸結(jié)束時(shí),主器件產(chǎn)生停止條件[1]。具體的過程如圖2所示。

      圖2 完整的I2C數(shù)據(jù)傳輸過程[1] 2.Linux下I2C驅(qū)動(dòng)程序的分析 2.1 Linux系統(tǒng)I2C驅(qū)動(dòng)的層次結(jié)構(gòu)

      Linux系統(tǒng)對(duì)I2C設(shè)備具有很好的支持,Linux系統(tǒng)下的I2C驅(qū)動(dòng)程序從邏輯上可以分為3個(gè)部分:

      1.I2C總線的驅(qū)動(dòng) I2C core :實(shí)現(xiàn)對(duì)I2C總線、I2C adapter及I2C driver的管理。2.I2C控制器的驅(qū)動(dòng) I2C adapter :針對(duì)不同類型的I2C控制器,實(shí)現(xiàn)對(duì)I2C總線訪問的具體方法。

      3.I2C設(shè)備的驅(qū)動(dòng) I2C driver :針對(duì)特定的I2C設(shè)備,實(shí)現(xiàn)具體的功能,包括read, write以及ioctl等對(duì)用戶層操作的接口。這三個(gè)部分的層次關(guān)系如圖3和圖4所示。

      2.2 I2C 總線驅(qū)動(dòng) I2C core

      I2C core是Linux內(nèi)核用來維護(hù)和管理的I2C的核心部分,其中維護(hù)了兩個(gè)靜態(tài)的List,分別記錄系統(tǒng)中的I2C driver結(jié)構(gòu)和I2C adapter結(jié)構(gòu)。I2C core提供接口函數(shù),允許一個(gè)I2C adatper,I2C driver和I2C client初始化時(shí)在I2C core中進(jìn)行注冊(cè),以及退出時(shí)進(jìn)行注銷。同時(shí)還提供了I2C總線讀寫訪問的一般接口(具體的實(shí)現(xiàn)在與I2C控制器相關(guān)的I2C adapter中實(shí)現(xiàn)),主要應(yīng)用在I2C設(shè)備驅(qū)動(dòng)中。

      2.3 I2C控制器的驅(qū)動(dòng) I2C adapter

      I2C adapter是針對(duì)不同類型I2C控制器硬件,實(shí)現(xiàn)比較底層的對(duì)I2C總線訪問的具體方法。I2C adapter 構(gòu)造一個(gè)對(duì)I2C core層接口的數(shù)據(jù)結(jié)構(gòu),并通過接口函數(shù)向I2C core注冊(cè)一個(gè)控制器。I2C adapter主要實(shí)現(xiàn)對(duì)I2C總線訪問的算法,iic_xfer()函數(shù)就是I2C adapter底層對(duì)I2C總線讀寫方法的實(shí)現(xiàn)。同時(shí)I2C adpter 中還實(shí)現(xiàn)了對(duì)I2C控制器中斷的處理函數(shù)。

      2.4 I2C設(shè)備的驅(qū)動(dòng) I2C driver

      I2C driver中提供了一個(gè)通用的I2C設(shè)備的驅(qū)動(dòng)程序,實(shí)現(xiàn)了字符類型設(shè)備的訪問接口,對(duì)設(shè)備的具體訪問是通過I2C adapter來實(shí)現(xiàn)的。I2C driver構(gòu)造一個(gè)對(duì)I2C core層接口的數(shù)據(jù)結(jié)構(gòu),通過接口函數(shù)向 I2C Core注冊(cè)一個(gè)I2C設(shè)備驅(qū)動(dòng)。同時(shí)I2C driver 構(gòu)造一個(gè)對(duì)用戶層接口的數(shù)據(jù)結(jié)構(gòu),并通過接口函數(shù)向內(nèi)核注冊(cè)為一個(gè)主設(shè)備號(hào)為89的字符類型設(shè)備。

      I2C driver實(shí)現(xiàn)用戶層對(duì)I2C設(shè)備的訪問,包括open,read,write,ioctl,release等常規(guī)文件操作,我們可以通過open函數(shù) 打開 I2C的設(shè)備文件,通過ioctl函數(shù)設(shè)定要訪問從設(shè)備的地址,然后就可以通過 read和write函數(shù)完成對(duì)I2C設(shè)備的讀寫操作。

      通過I2C driver提供的通用方法可以訪問任何一個(gè)I2C的設(shè)備,但是其中實(shí)現(xiàn)的read,write及ioctl等功能完全是基于一般設(shè)備的實(shí)現(xiàn),所有的操作 數(shù)據(jù)都是基于字節(jié)流,沒有明確的格式和意義。為了更方便和有效地使用I2C設(shè)備,我們可以為一個(gè)具體的I2C設(shè)備開發(fā)特定的I2C設(shè)備驅(qū)動(dòng)程序,在驅(qū)動(dòng)中 完成對(duì)特定的數(shù)據(jù)格式的解釋以及實(shí)現(xiàn)一些專用的功能。3.一個(gè)具體的I2C設(shè)備驅(qū)動(dòng)程序的開發(fā)

      DS1307是一款小巧的I2C接口的實(shí)時(shí)時(shí)鐘芯片,具有低功耗,全BCD碼時(shí)鐘和日歷輸出,12 /24小時(shí)工作模式,時(shí)分秒、星期、年月日計(jì)時(shí)數(shù)據(jù),潤年自動(dòng)補(bǔ)償,有效期至2100年,外加56 Bytes的NV RAM(非易失性的RAM)等特點(diǎn)[3]。下面以DS1307為例,說明一個(gè)具體的I2C設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)要點(diǎn)。3.1 I2C設(shè)備驅(qū)動(dòng)程序的一般結(jié)構(gòu)

      一個(gè)具體的I2C設(shè)備驅(qū)動(dòng)需要實(shí)現(xiàn)兩個(gè)方面的接口,一個(gè)是對(duì)I2C core層的接口,用以掛接I2C adapter層來實(shí)現(xiàn)對(duì)I2C總線及I2C設(shè)備具體的訪問方法,包括要實(shí)現(xiàn)attach_adapter,detach_client,command 等接口函數(shù)。另一個(gè)是對(duì)用戶應(yīng)用層的接口,提供用戶程序訪問I2C設(shè)備的接口,包括實(shí)現(xiàn)open,release,read,write以及最重要的 ioctl等標(biāo)準(zhǔn)文件操作的接口函數(shù)。對(duì)I2C core層的接口函數(shù)的具體功能解釋如下: attach_adapter:I2C driver在調(diào)用I2C_add_driver()注冊(cè)時(shí),對(duì)發(fā)現(xiàn)的每一個(gè)I2C adapter(對(duì)應(yīng)一條I2C 總線)都要調(diào)用該函數(shù),檢查該I2C adapter是否符合I2C driver的特定條件,如果符合條件則連接此I2C adapter,并通過I2C adapter來實(shí)現(xiàn)對(duì)I2C總線及I2C設(shè)備的訪問。

      detach_client:I2C driver在刪除一個(gè)I2C device時(shí)調(diào)用該函數(shù),清除描述這個(gè)I2C device的數(shù)據(jù)結(jié)構(gòu),這樣以后就不能訪問該設(shè)備了。

      command:針對(duì)設(shè)備的特點(diǎn),實(shí)現(xiàn)一系列的子功能,是用戶接口中的ioctl功能的底層實(shí)現(xiàn)。

      3.2 DS1307驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)I2C core層的接口

      在驅(qū)動(dòng)中必須實(shí)現(xiàn)一個(gè)struct i2c_driver 的數(shù)據(jù)結(jié)構(gòu),并在驅(qū)動(dòng)模塊初始化時(shí)向I2C core注冊(cè)一個(gè)I2C驅(qū)動(dòng),并完成對(duì)I2C adapter的相關(guān)操作。struct i2c_driver ds1307_driver = { name: “DS1307”, id: I2C_DRIVERID_DS1307, flags: I2C_DF_NOTIFY, attach_adapter:ds1307_probe, detach_client:ds1307_detach, command: ds1307_command };數(shù)據(jù)結(jié)構(gòu)ds1307_driver中的name:“DS1307”,Id:I2C_DRIVERID_DS1307用來標(biāo)識(shí)DS1307驅(qū)動(dòng)程序。flags: I2C_DF_NOTIFY表示在I2C總線發(fā)生變化時(shí)通知該驅(qū)動(dòng)。

      ds1307_probe對(duì)應(yīng)i2c_driver數(shù)據(jù)結(jié)構(gòu)中的attach_adapter,主要功能:調(diào)用 I2C core 層提供的i2c_probe函數(shù)查找一條I2C總線,看是否有DS1307的設(shè)備存在,如果存在DS1307,則將對(duì)應(yīng)的I2C adapter 和DS1307設(shè)備掛接在一起,并通過該I2C adapter來實(shí)現(xiàn)對(duì)DS1307的訪問。同時(shí)使能DS1307, 并調(diào)用i2c_attach_client()向I2C core層注冊(cè)DS1307。

      ds1307_detach對(duì)應(yīng)i2c_driver數(shù)據(jù)結(jié)構(gòu)中的detach_client,主要功能:調(diào)用i2c_detach_client()向I2C core層注銷DS1307,并不使能DS1307,這樣I2C驅(qū)動(dòng)就不能訪問DS1307了。

      ds1307_command對(duì)應(yīng)i2c_driver 數(shù)據(jù)結(jié)構(gòu)中的command,主要功能:針對(duì)DS1307時(shí)鐘芯片的特點(diǎn),實(shí)現(xiàn)一系列的諸如DS1307_GETTIME,DS1307_SETTIME,DS1307_GETDATETIME,DS1307_MEM_READ,DS1307_MEM_WRITE等子功能,是用戶接口中的ioctl功能的底層實(shí)現(xiàn)。

      以上3個(gè)接口函數(shù)使DS1307的驅(qū)動(dòng)程序?qū)崿F(xiàn)了對(duì)I2C 總線及I2C adpater的掛接,因此就可以通過I2C core的提供對(duì)I2C總線讀寫訪問的通用接口,來開發(fā)實(shí)現(xiàn)DS1037驅(qū)動(dòng)程序?qū)τ脩魬?yīng)用層的接口函數(shù)。3.3 DS1307驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)用戶應(yīng)用層的接口

      在驅(qū)動(dòng)中必須實(shí)現(xiàn)一個(gè)struct file_operations 的數(shù)據(jù)結(jié)構(gòu),并向內(nèi)核注冊(cè)為一個(gè)字符類型的設(shè)備(用單獨(dú)的主設(shè)備號(hào)來標(biāo)識(shí)),或者注冊(cè)為一個(gè)miscdevice設(shè)備(所有miscdevice設(shè)備共同 一個(gè)主設(shè)備號(hào),不同的次設(shè)備號(hào),所有的miscdevice設(shè)備形成一個(gè)鏈表,對(duì)設(shè)備訪問時(shí)根據(jù)次設(shè)備號(hào)查找對(duì)應(yīng)的miscdevice設(shè)備,然后調(diào)用其 struct file_operations中注冊(cè)的應(yīng)用層接口進(jìn)行操作)。

      struct file_operations rtc_fops = { owner: THIS_MODULE, ioctl: ds1307_rtc_ioctl, read: ds1307_rtc_read, write: ds1307_rtc_read, open: ds1307_rtc_open, release: ds1307_rtc_release };數(shù)據(jù)結(jié)構(gòu)rtc_fops 中的ds1307_rtc_open 和ds1307_rtc_release對(duì)應(yīng)file_operations中的open和release,分別用來打開和關(guān)閉DS1307。ds1307_rtc_ioctl對(duì)應(yīng)file_operations中的ioctl,對(duì)用戶提供的一系列控制時(shí)鐘芯片的具體命 令:RTC_GET_TIME: 以固定的數(shù)據(jù)格式讀取實(shí)時(shí)時(shí)鐘的時(shí)間。RTC_SET_TIME:以固定的數(shù)據(jù)格式設(shè)定實(shí)時(shí)時(shí)鐘的時(shí)間。RTC_SYNC_TIME:系統(tǒng)時(shí)鐘和實(shí)時(shí)時(shí)鐘 之間的時(shí)間同步。

      ds1307_rtc_read 對(duì)應(yīng)對(duì)應(yīng)file_operations中的read,實(shí)現(xiàn)與ds1307_rtc_ioctl 的子功能RTC_GET_TIME相同的功能,以及從NV RAM讀取數(shù)據(jù)。

      ds1307_rtc_write 對(duì)應(yīng)file_operations中的write,實(shí)現(xiàn)與ds1307_rtc_ioctl的子功能 RTC_SET_TIME相同的功能,以及將數(shù)據(jù)寫入NV RAM。3.4 DS1307驅(qū)動(dòng)程序的加載和測(cè)試

      在DS1307驅(qū)動(dòng)模塊的初始化函數(shù)ds1307_init()中,首先通過i2c_add_driver(&ds1307_driver)向I2C core層注冊(cè)一個(gè)I2C的設(shè)備驅(qū)動(dòng),然后再通過misc_register(&ds1307_rtc_miscdev)將DS1307注冊(cè)為一個(gè)miscdevice設(shè)備,這樣用戶程序就可以通過主設(shè)備號(hào)10 次設(shè)備號(hào) 135的設(shè)備節(jié)點(diǎn)/dev/rtc來訪問DS1307了。

      將DS1307的驅(qū)動(dòng)程序編譯成模塊的方式,通過insmod命令加載進(jìn)內(nèi)核,然后用測(cè)試代碼進(jìn)行測(cè)試,DS1307驅(qū)動(dòng)程序中實(shí)現(xiàn)的所有功能都達(dá)到了預(yù)期的效果。由于DS1307驅(qū)動(dòng)程序在底層實(shí)現(xiàn)了對(duì)DS1307時(shí)鐘芯片數(shù)據(jù)的解釋和轉(zhuǎn)換,所以在用戶程序中得到的就是有固定格式和意義的數(shù)據(jù),這樣就方便了用戶程序的訪問,提高了應(yīng)用開發(fā)的效率。4.總結(jié)

      I2C總線是一種結(jié)構(gòu)小巧,協(xié)議簡(jiǎn)單的總線,應(yīng)用很廣泛,訪問起來簡(jiǎn)單方便。linux系統(tǒng)下I2C的驅(qū)動(dòng)程序具有清晰的層次結(jié)構(gòu),可以很容易地為一個(gè)特 定的I2C設(shè)備開發(fā)驅(qū)動(dòng)。本文通過對(duì)linux系統(tǒng)下I2C驅(qū)動(dòng),以及一個(gè)具體的DS1307時(shí)鐘芯片驅(qū)動(dòng)結(jié)構(gòu)的分析,基本上可以很清楚看出一個(gè)I2C設(shè) 備驅(qū)動(dòng)的開發(fā)過程。實(shí)現(xiàn)的關(guān)鍵分為兩個(gè)部分,1.對(duì)I2C core的接口,必須實(shí)現(xiàn) struct i2c_drvier 數(shù)據(jù)結(jié)構(gòu)中的幾個(gè)特定的功能函數(shù)。這些函數(shù)是I2C驅(qū)動(dòng)與I2C總線物理層(I2C控制器)和I2C設(shè)備器件之間通信的基礎(chǔ)。2.對(duì)用戶應(yīng)用層的接口,必須實(shí)現(xiàn)struct file_operation數(shù)據(jù)結(jié)構(gòu)中的一些特定功能的函數(shù),如 open,release , read ,write,lseek等函數(shù)。以上兩類接口中,對(duì)I2C core的接口是對(duì)I2C設(shè)備訪問的基礎(chǔ),實(shí)現(xiàn)對(duì)I2C總線具體的訪問方法;對(duì)用戶應(yīng)用層的接口則是方便應(yīng)用程序開發(fā),實(shí)現(xiàn)設(shè)備特定功能的必不可少的部 分。參考文獻(xiàn):

      [1] Philips Corporation,I2C bus specification version 2.1,2000 [2] Linux kernel,version 2.4.30 [3] Maxim Integrated Products , inc.USA.DS1307 Datasheet , 2004 [4] Aless and Robin著,魏永明等譯,《LINUX設(shè)備驅(qū)動(dòng)程序(第二版)》,北京,中國電力出版社,2004年

      第三篇:設(shè)備開發(fā)合同

      項(xiàng)目名稱:_____IC__自動(dòng)分選機(jī)開發(fā)_________________________ 委 托 方(甲方): __沈_偉_________________ 研究開發(fā)方(乙方):_凱圣源自動(dòng)化___________________________

      填 寫 說 明

      一、“合同登記編號(hào)”的填寫方法:

      合同登記編號(hào)為十四位,左起第一、二位為公歷年代號(hào),第三、四位為省、自治區(qū)、直轄市編碼,第五、六位為地、市編碼,第七、八位為合同登記點(diǎn)編號(hào),第九至十四位為合同登記序號(hào),以上編號(hào)不足位的補(bǔ)零。各地區(qū)編碼按GB2260-84規(guī)定填寫。

      二、技術(shù)開發(fā)合同是指當(dāng)事人之間就新技術(shù)、新工藝和新工藝的新材料及其系統(tǒng)的研究開發(fā)所訂立的合同。技術(shù)開發(fā)合同包括委托開發(fā)合同的合作開發(fā)合同。

      三、計(jì)劃內(nèi)項(xiàng)目應(yīng)填寫國務(wù)院部委、省、自治區(qū)、直轄市、計(jì)劃單列市、地、市(縣)級(jí)計(jì)劃,不屬于上述計(jì)劃的項(xiàng)目此欄劃(/)表示。

      四、標(biāo)的技術(shù)的內(nèi)容、形式:

      包括開發(fā)項(xiàng)目應(yīng)達(dá)到的技術(shù)經(jīng)濟(jì)指標(biāo)、開發(fā)目的、使用范圍及效益情況、成果提方式及數(shù)量。

      提交開發(fā)成果可采取下列形式:

      1.產(chǎn)品設(shè)計(jì)、工藝規(guī)程、材料配方和其他圖紙、論文、報(bào)告等技術(shù)文件;

      2.磁盤、磁帶、計(jì)算機(jī)軟件;

      3.動(dòng)物或植物新品種、微生物菌種;

      4.樣品、樣機(jī);

      5.成套技術(shù)設(shè)備。

      五、研究開發(fā)計(jì)劃:

      包括當(dāng)事人各方實(shí)施開發(fā)項(xiàng)目的階段進(jìn)度,各個(gè)階段要解決的技術(shù)問題,達(dá)到的目標(biāo)和完成的期限等。

      六、技術(shù)情報(bào)資料的保密:

      包括當(dāng)事人各方情報(bào)和資料保密義務(wù)的內(nèi)容、期限和泄漏技術(shù)秘密應(yīng)承擔(dān)的責(zé)任。

      雙方可以約定,不論本合同是否變更、解除、終止,本條款均有效。

      七、其他:

      合同如果是通過中介機(jī)構(gòu)介紹簽訂的,應(yīng)將中介合同作為本合同的附件。如果雙方當(dāng)事人約定定金、財(cái)產(chǎn)抵押及擔(dān)保的,應(yīng)將給付定金、財(cái)產(chǎn)抵押及擔(dān)保手續(xù)的復(fù)印件作為本合同的附件。

      八、委托代理人簽訂本合同書時(shí),應(yīng)出具委托證書。

      九、本合同書中,凡是當(dāng)事人約定認(rèn)為無需填寫的條款,在該條款填寫的空白處劃(/)表示。

      (正文)

      依據(jù)《中華人民共和國合同法》的規(guī)定,合同雙方就______ IC自動(dòng)分選機(jī)開發(fā)__________ 項(xiàng)目的技術(shù)開發(fā),________經(jīng)協(xié)商一致,簽訂本合同。

      一、標(biāo)的技術(shù)的內(nèi)容、形式和要求:

      1.機(jī)構(gòu)部分:乙方完成機(jī)構(gòu)圖紙的繪制,機(jī)構(gòu)部分的加工組裝。

      2.控制部分:乙方完成電控圖紙的繪制,電控部分的調(diào)試及工控部分的調(diào)試。

      二、應(yīng)達(dá)到的技術(shù)指標(biāo)和參數(shù): 這一塊你來寫

      三、研究開發(fā)計(jì)劃:

      四、研究開發(fā)經(jīng)費(fèi)、報(bào)酬及其支付或結(jié)算方式:

      (一)研究開發(fā)經(jīng)費(fèi)是指完成本項(xiàng)研究開發(fā)工作所需的成本;報(bào)酬是指本項(xiàng)目開發(fā)成果的使用費(fèi)和研究開發(fā)人員的科研補(bǔ)貼。

      本項(xiàng)目研究開發(fā)經(jīng)費(fèi)及報(bào)酬預(yù)估:____4萬____________ 元

      其中:甲方提供___2萬_元,乙方提供__2萬__元。

      如開發(fā)成本實(shí)報(bào)實(shí)銷,雙方約定如下:

      (二)經(jīng)費(fèi)和報(bào)酬支付方式及時(shí)限(采用以下___3_種方式):

      ①一次總付:____________元,時(shí)間:________________

      ②分期支付:____________元,時(shí)間:________________

      ____________元,時(shí)間:________________

      ③按利潤________%提成,期限:________________

      ④按銷售額____ %提成,期限:________________

      ⑤其他方式:

      五、利用研究開發(fā)經(jīng)費(fèi)購置的設(shè)備、器材、資料的財(cái)產(chǎn)權(quán)屬:

      六、履行的期限、地點(diǎn)和方式:

      本合同自____年____月____日至____年____月____日在____________(地點(diǎn))履行。

      本合同的履行方式:

      七、技術(shù)情報(bào)和資料的保密:

      八、技術(shù)協(xié)作和技術(shù)指導(dǎo)的內(nèi)容:

      九、風(fēng)險(xiǎn)責(zé)任的承擔(dān):

      在履行本合同的過程中,確因在現(xiàn)有水平和條件下難以克服的技術(shù)困難,導(dǎo)致研究開發(fā)部分或全部失敗所造成的損失,風(fēng)險(xiǎn)責(zé)任由________承擔(dān)。(1、乙方;

      2、雙方;

      3、雙方另行商定)經(jīng)約定,風(fēng)險(xiǎn)責(zé)任甲方承擔(dān)____ %________________乙方承擔(dān)____ %

      本項(xiàng)目風(fēng)險(xiǎn)責(zé)任確認(rèn)的方式為:

      十、技術(shù)成果的歸屬和分享:

      (一)專利申請(qǐng)權(quán):

      (二)非專利技術(shù)成果的使用權(quán)、轉(zhuǎn)讓權(quán):

      十一、驗(yàn)收的標(biāo)準(zhǔn)和方式:

      研究開發(fā)所完成的成果,達(dá)到了本合同第二條所列技術(shù)指標(biāo),按____標(biāo)準(zhǔn),采用________方式驗(yàn)收,由________方出具技術(shù)項(xiàng)目驗(yàn)收證明。

      十二、違約金或者損失賠償額的計(jì)算方法:

      違反本合同約定,違約方應(yīng)當(dāng)按《中華人民共和國合同法》規(guī)定承擔(dān)違約責(zé)任。

      (一)違反本合同第____條約定,________方應(yīng)當(dāng)承擔(dān)違約責(zé)任,承擔(dān)方式和違約金額如下:

      (二)違反本合同第____條約定,________方應(yīng)當(dāng)承擔(dān)違約責(zé)任,承擔(dān)方式和違約金額如下:

      (三)十三、爭(zhēng)議的解決方法:

      在本合同履行過程發(fā)生爭(zhēng)議,雙方應(yīng)當(dāng)協(xié)商解決,也可以請(qǐng)求________進(jìn)行調(diào)解。

      雙方不愿協(xié)商、調(diào)解解決或者協(xié)商、調(diào)解不成的,雙方商定,采用以下第(____)種方式解決。

      1.提交____ 仲裁委員會(huì)仲裁;

      2.向____ 人民法院起訴。

      十四、名詞和術(shù)語的解釋:

      十五、本合同有效期限:____年____月____日至____年____月____日

      甲方:____________________

      乙方:____________________

      代表人:________

      ____年____月____日

      代表人:________

      _____年____月____日

      第四篇:設(shè)備開發(fā)流程

      設(shè)備開發(fā)流程

      一、確定開發(fā)項(xiàng)目

      1,產(chǎn)品品質(zhì)要求 2,設(shè)備生產(chǎn)效率要求 3,設(shè)備工作環(huán)境 4,開發(fā)成本

      二、分析產(chǎn)品

      1,了解產(chǎn)品生產(chǎn)工藝

      2,了解產(chǎn)品各方面尺寸要求及來料情況 3,設(shè)備使用地點(diǎn)的技術(shù)參數(shù)

      三、擬定方案

      討論、分析作出設(shè)備方案,方案包括:

      1,設(shè)備示意圖(整體示意圖,局部示意圖)2,各部分機(jī)構(gòu)簡(jiǎn)介 3,動(dòng)作說明

      4,設(shè)備技術(shù)參數(shù)

      四、方案審核

      對(duì)方案進(jìn)行審核,審核內(nèi)容包括: 1,設(shè)備可行性評(píng)估 2,設(shè)備成本評(píng)估

      3,設(shè)備生產(chǎn)效率的評(píng)估 4,各部分結(jié)構(gòu)可行性評(píng)估

      五、方案整改

      對(duì)方案審核中討論出的問題進(jìn)行整改。

      六、設(shè)計(jì)開發(fā)

      進(jìn)行機(jī)構(gòu)設(shè)計(jì),作出機(jī)器裝配圖、零件圖(零件標(biāo)注按國家標(biāo)準(zhǔn))選出執(zhí)行元器件、電控配件并列出加工零件清單和標(biāo)準(zhǔn)件請(qǐng)購單,動(dòng)作說明書。

      七、機(jī)構(gòu)審核

      對(duì)所設(shè)計(jì)出的圖紙進(jìn)行審核,審核內(nèi)容包括: 1,機(jī)器結(jié)構(gòu)配合是否合理:功能性(能力和精度)、穩(wěn)定性、安全性、人性化(操作的便利性)和外觀性。

      2,所設(shè)計(jì)機(jī)器生產(chǎn)效率是否符合客戶需求。3,機(jī)器造價(jià)。

      4,各部分機(jī)構(gòu)應(yīng)簡(jiǎn)單易于調(diào)試、維修。5,各部分零件應(yīng)盡量簡(jiǎn)單易于加工。6,各執(zhí)行元件選用是否合理。

      八、零件加工及標(biāo)準(zhǔn)件采購

      1,零件加工部零件圖進(jìn)行機(jī)器零件加工(零件加工必須嚴(yán)格按照零件圖上所示,零件精度,加工工藝進(jìn)行加工,保證零件精度及零件加工工藝)。2,采購人員按照標(biāo)準(zhǔn)件清單,聯(lián)系供應(yīng)商進(jìn)行標(biāo)準(zhǔn)件采購

      九、加工零件及標(biāo)準(zhǔn)件檢驗(yàn)入庫

      檢驗(yàn)人員按照零件圖及標(biāo)準(zhǔn)件清單,檢驗(yàn)加工零件的尺寸精度,加工工藝,標(biāo)準(zhǔn)件的型號(hào)、安裝尺寸進(jìn)行檢驗(yàn),合格后入庫

      十、機(jī)器組裝

      1,進(jìn)行機(jī)器組裝調(diào)試,按照加工零件清單及標(biāo)準(zhǔn)件清單,到倉庫領(lǐng)取加工零件及標(biāo)準(zhǔn)件。

      2,嚴(yán)格按照裝配圖,進(jìn)行機(jī)器組裝: a)各部分零件,執(zhí)行元件組裝是否正確 b)各活動(dòng)部件活動(dòng)順暢,無干涉

      c)所有的緊固件和接頭聯(lián)結(jié),確保緊固到位,聯(lián)結(jié)可靠 3,按照動(dòng)作說明書進(jìn)行機(jī)器配電,機(jī)器程序編寫及調(diào)試

      十一、機(jī)器調(diào)試

      進(jìn)行機(jī)器調(diào)試,調(diào)試完成后打樣,交客戶確定其產(chǎn)品品質(zhì)。

      十二、包裝

      1,檢查所有的緊固件和接頭聯(lián)結(jié),確保緊固到位,聯(lián)結(jié)可靠 2,清潔設(shè)備外表,粘貼必要的標(biāo)牌和標(biāo)示

      3,標(biāo)明拆分位置,理順拆分管線路,合理拆分設(shè)備 4,必要的防護(hù)(防銹、防潮)措施。

      5,準(zhǔn)備好機(jī)器備件,操作說明書,接線圖及其他技術(shù)資料

      第五篇:設(shè)備開發(fā)流程

      設(shè)備開發(fā)流程

      一、確定開發(fā)項(xiàng)目、了解客戶需求 1.產(chǎn)品品質(zhì)要求 2.設(shè)備生產(chǎn)效率要求 3.設(shè)備工作環(huán)境

      二、分析產(chǎn)品

      1.了解產(chǎn)品生產(chǎn)工藝

      2.了解產(chǎn)品各方面尺寸要求及來料情況 3.與客戶溝通產(chǎn)品生產(chǎn)過程中的注意事項(xiàng) 4.設(shè)備使用地點(diǎn)的技術(shù)參數(shù)

      三、擬定方案 工程人員討論、分析作出設(shè)備方案,方案包括: 1.設(shè)備示意圖(整體示意圖,局部示意圖)2.各部分機(jī)構(gòu)簡(jiǎn)介 3.動(dòng)作說明 4.設(shè)備技術(shù)參數(shù)

      四、方案審核 由工程人員組成審核組,對(duì)方案進(jìn)行審核,審核內(nèi)容包括: 1.設(shè)備可行性評(píng)估 2.設(shè)備成本評(píng)估

      3.設(shè)備生產(chǎn)效率的評(píng)估 4.各部分結(jié)構(gòu)可行性評(píng)估

      五、方案整改 對(duì)方案審核中討論出的問題進(jìn)行整改。

      六、客戶確定設(shè)計(jì)方案 設(shè)計(jì)方案交由客戶,客戶根據(jù)需求,對(duì)方案進(jìn)行最后確定。

      七、設(shè)計(jì)開發(fā)由工程部安排工程師進(jìn)行機(jī)構(gòu)設(shè)計(jì),作出機(jī)器裝配圖、零件圖(零件標(biāo)注按國家標(biāo)準(zhǔn))選出執(zhí)行元器件、電控配件并列出加工零件清單和

      八、機(jī)構(gòu)審核 由工程人員組成審核組,對(duì)所設(shè)計(jì)出的圖紙進(jìn)行審核,審核內(nèi)容包括:

      (1)機(jī)器結(jié)構(gòu)配合是否合理:功能性(能力和精度)、穩(wěn)定性、安全性、人性化(操作的便利性)和外觀性。

      (2)所設(shè)計(jì)機(jī)器生產(chǎn)效率是否符合客戶需求。(3)機(jī)器造價(jià)。

      (4)各部分機(jī)構(gòu)應(yīng)簡(jiǎn)單易于調(diào)試、維修。(5)各部分零件應(yīng)盡量簡(jiǎn)單易于加工。(6)各執(zhí)行元件選用是否合理。

      九、零件加工及標(biāo)準(zhǔn)件采購

      1.零件加工部零件圖進(jìn)行機(jī)器零件加工(零件加工必須嚴(yán)格按照零件圖上所示,零件精度,加工工藝進(jìn)行加工,保證零件精度及零件加工

      2.采購人員按照標(biāo)準(zhǔn)件清單,聯(lián)系供應(yīng)商進(jìn)行標(biāo)準(zhǔn)件采購

      十、加工零件及標(biāo)準(zhǔn)件檢驗(yàn)入庫 檢人員按照零件圖及標(biāo)準(zhǔn)件清單,檢驗(yàn)加工零件的尺寸精度,加工工藝,標(biāo)準(zhǔn)件的型號(hào)、安裝尺寸進(jìn)行檢驗(yàn),合格后交由倉管人員入庫。

      十一、機(jī)器組裝

      1.由裝配部安排人員進(jìn)行機(jī)器組裝調(diào)試,裝配人員按照加工零件清單及標(biāo)準(zhǔn)件清單,到倉庫領(lǐng)取加工零件及標(biāo)準(zhǔn)件。

      2.裝配人員嚴(yán)格按照裝配圖,進(jìn)行機(jī)器組裝: a).各部分零件,執(zhí)行元件組裝是否正確 b).各活動(dòng)部件活動(dòng)順暢,無干涉

      c).所有的緊固件和接頭聯(lián)結(jié),確保緊固到位,聯(lián)結(jié)可靠

      3.工控部安排電氣工程師按照動(dòng)作說明書進(jìn)行機(jī)器配電,機(jī)器程序編寫及調(diào)試

      十二、機(jī)器調(diào)試 裝配人員按照客戶提供的產(chǎn)品工程圖進(jìn)行機(jī)器調(diào)試,調(diào)試完成后打樣,交客戶確定其產(chǎn)品品質(zhì)。

      十三、包裝出貨

      1.檢查所有的緊固件和接頭聯(lián)結(jié),確保緊固到位,聯(lián)結(jié)可靠 2.清潔設(shè)備外表,粘貼必要的標(biāo)牌和標(biāo)示

      3.標(biāo)明拆分位置,理順拆分管線路,合理拆分設(shè)備 4.必要的防護(hù)(防銹、防潮)措施。

      5.準(zhǔn)備好機(jī)器備件,操作說明書,接線圖及其他技術(shù)資料方案審核時(shí)就應(yīng)列出關(guān)鍵外購件清單。比如QFD(質(zhì)量功能展開)等等。

      關(guān)于項(xiàng)目管理,一些外資公司有非常完善的流程規(guī)定和管理工具。應(yīng)該對(duì)方案做出風(fēng)險(xiǎn)評(píng)估,及做好相應(yīng)的對(duì)策。以防出現(xiàn)問題。加工零件清單和標(biāo)準(zhǔn)件請(qǐng)購單,動(dòng)作說明書。外協(xié)加工,保證零件精度及零件加工工藝)。,合格后交由倉管人員入庫

      下載linux設(shè)備驅(qū)動(dòng)程序開發(fā)總結(jié)word格式文檔
      下載linux設(shè)備驅(qū)動(dòng)程序開發(fā)總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        開發(fā)總結(jié)

        西博會(huì)總結(jié) 一. 提倡的地方 1. 數(shù)據(jù)方面: 利用Toad Data Modeler來設(shè)計(jì)數(shù)據(jù)模型;能夠非常清晰方便的了解整個(gè)系統(tǒng)表和表之間的關(guān)系。 整個(gè)項(xiàng)目的過程中,一直安排一個(gè)人來維護(hù)數(shù)據(jù)......

        設(shè)備年度總結(jié)

        設(shè) 備年 度 總 結(jié) 回顧即將過去的一年,設(shè)備部全面貫徹公司2010年TS16949的推廣,“”提高管理、提高知識(shí)、提高專業(yè)能力”的方針,以制造部“提高生產(chǎn)、降低不良、節(jié)約成本”的......

        設(shè)備情況總結(jié)

        上半月設(shè)備情況機(jī)修車間設(shè)備情況: 1、機(jī)修車間機(jī)床無驟停,焊機(jī)無損壞 2、新增設(shè)備為帶壓開孔機(jī)DJ300開孔范圍為DN150~DN300 3、500高度尺已到貨 設(shè)備維修: 1、煉焦二廠一車間修......

        設(shè)備總結(jié)

        一、螺桿擠壓機(jī)的工作原理和結(jié)構(gòu)特征: 工作原理:物料從加料口進(jìn)到螺桿的螺槽中,由于螺桿的轉(zhuǎn)動(dòng),把切片推向前進(jìn)。切片不 斷吸收加熱裝置供給的熱能;另一方面因切片與切片、切片與......

        設(shè)備年度總結(jié)

        設(shè) 備年 度 總 結(jié) 回顧即將過去的一年,設(shè)備部全面貫徹公司2010年TS16949的推廣,“”提高管理、提高知識(shí)、提高專業(yè)能力”的方針,以制造部“提高生產(chǎn)、降低不良、節(jié)約成本”的年......

        下載設(shè)備總結(jié)[范文模版]

        下載設(shè)備總結(jié) 2007年工廠設(shè)備管理工作在工廠領(lǐng)導(dǎo)的正確領(lǐng)導(dǎo)和支持下,在全廠職工的共同努力下,圓滿完成了工廠下達(dá)的設(shè)備管理指標(biāo)和交給的任務(wù)。現(xiàn)在工廠的生產(chǎn)結(jié)構(gòu)發(fā)生重要改......

        doc設(shè)備總結(jié)

        我們每每憧憬著美好與未來。就在我們收獲著夢(mèng)想又播種著希望的時(shí)候。在新的一年五月,我們?cè)诠竞涡〗愕膸ьI(lǐng)下,我們要做一個(gè)既想做事,又能做事的人;既做成事又不出事的人。 二......

        設(shè)備總結(jié)

        第一章 不單獨(dú)出題,與其他章節(jié)綜合出題,比如拉壓、彎曲等。 能根據(jù)已知力求未知力(包括受力分析和根據(jù)平衡條件列平衡方程)。 第二章 填空題、選擇題 一、變形與內(nèi)力的度量 1、......