【正文】
掛在操作系統(tǒng)中的設備都使用了設備驅動程序,要使一個設備成為應用程序可以訪問的設備,必須在文件系統(tǒng)中有一個代表此設備的設備文件,通過使用設備文件,就可以對外部設備進行具體的操作。驅動程序加載到linux內核里設備驅動程序寫完后,就可以加到linux的內核中了,這需要修改linux的源碼,然后重新編譯linux內核。他們的原型如下:put_user(data,ptr)。read 方法實現(xiàn)的是從內核地址空間向用戶空間中的數(shù)據(jù)傳輸,為了實現(xiàn)這個目的,還需要在read方法中調用兩個子方法:copy_to_user()、access_ok(),它們在asm/中定義,原型如下:unsigned long copy_to_user(void_user *to,const void *from,unsigned long count)。內核自動維護一個計數(shù)器以標識設備驅動的使用情況。用戶程序不能直接使用這些“方法”,而是通過“系統(tǒng)調用”間接調用“方法”實現(xiàn)對硬件的操作。當設備的驅動程序使用了如下的函數(shù)方式,則設備驅動可以動態(tài)的加載和卸載。int requesr_irq(unsigned irq,void(*handler)(int ,void *,struct pt_regs*),unsigned long flags,const char * device,void * dev_id)。一般來說,每個設備要定義一個設備變量,用來保存設備相關的參數(shù)。(7) poll一般用于查詢設備是否可讀可寫或處于特殊的狀態(tài)。如果沒有這個函數(shù),write系統(tǒng)調用程序返回一個EINVAL。unsigned long (*get_unmapped_area)(struct file*,unsigned long,unsigned long, unsigned long, unsigned long)。 int(*flush) (struct file*)。 loff_t (* llseek) (struct file* , loff_t,int)。字符設備和塊設備的主要區(qū)別是:在對字符設備發(fā)出讀寫請求時,實際的硬件I/O一般就緊接著發(fā)生了;塊設備利用一塊系統(tǒng)內存作為緩沖區(qū),當用戶進程對設備請求滿足用戶要求時,就返回請求的數(shù)據(jù)。mknod harddiak b 3 0file /dev/had/dev/had: block special (3/0)用mknod 命令可以創(chuàng)建設備文件,創(chuàng)建時指定主設備號和輔設備號。這種信息由三部分構成:第一部分包括設備的類型,第二部分是一個“主設備號”(Major),第三部分是一個“輔(或者從)設備號”(Minor)。Character型設備文件常指直接讀/寫、沒有緩沖區(qū)的字符設備,而Block設備文件常常指那些需要以塊(如512B)的方式寫入的設備,Socket(網絡插件)型設備文件指的是網絡設備訪問的BSD Socket接口。但是它的塊又不是固定大小的,大到數(shù)百甚至數(shù)千字節(jié),小到幾個字節(jié)。內核把字符設備看成是可順序訪問的連續(xù)字節(jié)流,它在單個字符的基礎上接收和發(fā)送數(shù)據(jù),數(shù)據(jù)緩沖系統(tǒng)?;谠O備驅動程序的功能和編譯特點,應具有的特性如下:(1)由一系列函數(shù)和數(shù)據(jù)構成,它既要與硬件設備進行通信又要遵循操作系統(tǒng)內核提供的統(tǒng)一接口;(2)它要管理好用戶程序與外設之間的數(shù)據(jù)流和控制流;(3)是一個自包含組件,能夠動態(tài)地加入到操作系統(tǒng)或被內核刪除;(4)屬于內核的可定制部分,通過設備文件賴于用戶程序打交道。嵌入式linux驅動程序的基本結構和標準的linux的結構基本一致,也支持模塊化模式,所以,大部分驅動程序編程模塊化形式,而且,要求可以在不同的體系結構上安裝。 下載文件系統(tǒng)輸入:loadyaffs –e root u,回車。(3)重新下載vivi通過dnw下載vivi有兩種方法,本設計使用方法二。用串口電纜線連接主機和ARM板的串口,從Nand Flash啟動系統(tǒng),點菜單Configuration,設置串口。若要卸載并口,可右鍵點擊giveio(COM3)卸載。當用真實賬號登錄以后,其登錄的目錄為用戶自己的目錄,該目錄在系統(tǒng)建立帳號時系統(tǒng)就自動建立,它可以訪問整個目錄結構。FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層,即應用層,它使用TCP傳輸而不是UDP,這樣FTP客戶在和服務器建立連接前要經過“三次握手”的過程,是一種面向連接,可靠的數(shù)據(jù)傳輸協(xié)議。嵌入式系統(tǒng)也可以使用硬盤和光盤,但是這與嵌入式系統(tǒng)的便攜特性相違背,所以一般用Flash作為存儲介質。除此,還可以配置其他項。Linux操作系統(tǒng)一般由內核、shell、文件結構和實用工具4個主要部分組成。每種不同體系結構的處理器都有不同的Bootloader。但是構建或移植一個Bootloader,從某種意義上來說,對所有的Linux系統(tǒng)都是一個最普通的任務。特定于用戶的應用程序。包括固化在固件中的啟動代碼(可選)和Bootloader兩大部分。另外,結合國內實情,當前國家對自主操作系統(tǒng)的大力支持,也為源碼開放的LINUX的推廣提供的廣闊的發(fā)展前景。 安裝交叉編譯器。本設計所設置的共享文件夾是:F/mag文件夾。第三個運放是雙輸入單輸出的運算放大器,它的放大倍數(shù)推導過程如下:當V01單獨作用的時候,輸出V0為: (313)也就是普通的運算放大器負放大。要濾除有害的因素,也可以通過其他的途徑,比如說:增大電容值可以加大濾除的效率,但是當電容值增大到一定程度的時候,器濾波的效果就不會對這電容值的增大而增加,所以電容值就要選取合適的值,不能太大,也不能太小,這樣不但能有效的濾除有害因素,還能節(jié)省我們的成本。根據(jù)該熱電偶的分度表,則可從分度表上查得,將此值與測量值求和,即可計算出,在查該熱電偶的分度表,即可求得工作端溫度t[9]。因此,還需采用其他修正方法來補償冷端溫度t0≠0℃時對測溫的影響。其優(yōu)點是:①測量精度高。 所以: (33) 熱電偶的測溫電路 熱電偶的測溫原理熱電偶選用的是鎳鉻鎳硅熱電偶,分度號為K。在這種情況下,室溫稍有變動,我們就能準確地得出室溫變動的幅度,這樣更有利于我們的測量,使得我們的測量結果有更小的誤差。但由于客觀因素,使封裝后的變換器靈敏度可能有所偏離。傳感器的種類繁多,在本次設計中所要用到的是溫度傳感器,要選擇適當?shù)膫鞲衅饕詽M足設計要求。它將JTAG 電路與內核邏輯電路聯(lián)系起來,同時隔離內核邏輯電路和芯片引腳。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試。電容器可以用電流來充電;同時,電容的充放電需要一定的時間,雖然對于內存基本單位中的電容來說這個時間很短,~,但這個期間內存是不能執(zhí)行存取操作的?,F(xiàn)在內存架構是處于同一列的基本存儲單元共用一條列地址線,而處于同一行的基本存儲單元共用一條行地址線,組成一個基本單元構成的矩陣框架。SDRAM具有單位空間存儲容量大和價格便宜的優(yōu)點,已經廣泛應用在各種嵌入式系統(tǒng)中。擦除NOR器件時是以64~128KB的塊進行的,執(zhí)行一個寫入/擦除操作的時間為1~5s;擦除NAND器件是以8~32KB的塊進行的,執(zhí)行相同的操作最多只需要4ms。 Flash模塊Flash存儲器是一種可在的系統(tǒng)的(InSystem)進行電擦寫,掉電后信息不丟失的存儲器。ARM9系列于1997年問世。目標機可能是某種形式的系統(tǒng)仿真器,通過在宿主機上運行目標機的仿真軟件,整個調試過程可以在一臺計算機上運行。調試器與被調試的程序一般運行在同一臺計算機上,調試器是一個單獨運行著的進程,它通過操作系統(tǒng)提供的調試接口來控制被調試的進程。與一般軟件開發(fā)的區(qū)別在于軟件實現(xiàn)的編譯和調試兩部分。嵌入式linux提供了完善的網絡技術支持,μC/OSII操作系統(tǒng)也成為實時操作系統(tǒng)或RTOS,使用它作為開發(fā)工具將會使實時應用程序變得相對容易。 ARM 。目前嵌入式系統(tǒng)的應用已經發(fā)展到了嵌入式處理器與操作系統(tǒng)相結合的階段,本設計就是將ARM處理器與Linux操作系統(tǒng)相結合實現(xiàn)的。關鍵詞: ARM;linux;內核;驅動;溫度監(jiān)測 內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文)Embedded System of Temperature Testing Based on ARMAbstractWith the development of science, embedded system develops at a fast speed. Embedded system has been applied to all aspects, which has brought great convenience to people39。其中嵌入式處理器常是單片機或微控制器;支撐硬件主要包括存儲介質、通信部件和顯示部件;嵌入式軟件則包括支撐硬件的驅動程序、操作系統(tǒng)、支撐軟件以及應用中間件等。調試接口也是嵌入式系統(tǒng)不可缺少的一部分。嵌入式系統(tǒng)的系統(tǒng)資源緊缺,存儲空間、處理器運行速度等很有限,并且沒有相關的編譯工具,因此,嵌入式系統(tǒng)的開發(fā)需要借助宿主機來編譯出目標機的執(zhí)行代碼。調試器通過串口、并口、網絡、JTAG等控制被調試進程。SecurCore是第5個產品系列,是專門為安全設備而設計的。ARM940T包含一個更小的數(shù)據(jù)指令Cache和一個MPU。任何Flash器件進行寫入操作前必須先進行擦除。NOR主要用在代碼存儲介質中,NAND適合于數(shù)據(jù)存儲[22]。基本存儲單元是內存芯片中存儲信息的最小單位,每個存儲單元可以存儲1bit的信息,并且有一個由行地址和列地址共同定義的唯一的地址。一個電容可以存儲一定量的電子或者電荷,一個充電的電容器被認為是邏輯上的1,而“空”的電容器則是0。標準的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。在硬件結構上,JTAG 接口包括兩部分:JTAG 端口和控制器。嵌入式系統(tǒng)的Flash芯片的地址線、數(shù)據(jù)線和控制信號線接到嵌入式系統(tǒng)帶JTAG接口的微處理器相應的引腳上,在對Flash編程時,PC機上運行的程序控制PC機發(fā)送指令或數(shù)據(jù)到嵌入式系統(tǒng)微處理器內部的邊界掃描寄存器里,再把此數(shù)據(jù)或指令通過JTAG專用指令傳送到Flash,從而將代碼寫入Flash中[22]。 AD590 的特點是:(1) 兩端器件:電壓輸入,電流輸出;(2) 線性電流輸出:1μA/K;(3) 較寬的檢測范圍: 55~ + 155℃;(4) 極好的線性:在工作范圍內非線性誤差 177。在測室溫時,室溫為n度,那輸出的電壓為:V0=+n,單位為mv。在上圖中,我們用的是兩級的負放大:第一級是放大倍數(shù),第二級的作用是使輸出為正。K型熱電偶是氧化性較強的賤金屬熱電偶。當導體A和B的兩個執(zhí)著點1和2之間存在溫差時,兩者之間便產生電動勢,因而在回路中形成一個大小的電流,這種現(xiàn)象稱為熱電效應。設熱電偶工作端溫度為t,冷端為。他們的作用是濾除電磁波等有害因素。推導過程如下:我們假設上面的運放器的輸出為V01,輸入為Vi1;下面的運放器的輸出為V02,輸入為Vi2;最后的運放器的輸出為V0。同一個體系可以運行不同的操作系統(tǒng);同樣,同一個操作系統(tǒng)也可以在不同的體系結構上運行。成功后,可在/mnt/hgfs目錄下看到共享文件夾:mag。 then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /usr/local/arm/ fi(3)重新啟動系統(tǒng)并以root身份登錄(4)在終端命令行輸入armlinuxgcc v檢查編譯器是否安裝: armlinuxgcc –v回車后,顯示如下信息則說明交叉編譯器已安裝: Reading specs from /usr/local/arm/ gcc version 20010315(release) Linux操作系統(tǒng)微處理器產生以來,價格低廉、結構小巧的CPU和外設連接提供了穩(wěn)定可靠的硬件架構,那么限制嵌入式系統(tǒng)發(fā)展的瓶頸就突出表現(xiàn)在了軟件方面。Linux對廠商不偏不倚而且成本極低,能夠很快成為用于各種設備的操作系統(tǒng)。通常用Ramdisk作為根文件系統(tǒng)。Bootloader是系統(tǒng)加電后運行的第一段代碼。在一個基于ARM的嵌入式系統(tǒng)中,系統(tǒng)在上電或復位時通常都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的Bootloader。 內核通常操作系統(tǒng)由內核和一些系統(tǒng)服務程序(命令解釋、庫文件、鏈接和編譯程序等)組成。移植好操作系統(tǒng)后,應用程序的編寫就十分方便了。make zImage編譯內核中的文件,生成內核,執(zhí)行時間約為3 min。FTP的全稱是FileTrnasefrPortocol(文件傳輸協(xié)議),是專門用來傳輸文件的協(xié)議。其登錄目錄為匿名FTP服務器的根目錄v//ar助。Windows下燒寫vivi到NAND Flash中,需要安裝主機并口和Jflash開發(fā)軟件等,虛擬機和主機均安裝物理并口,但是為虛擬機安裝的是打印機端口LPT1,為主機安裝的是并口giveio(COM3),故兩個并口使用時不會發(fā)上沖突。[3]BIOS燒寫完畢,拔下JTAG電纜。在vivi模式下分區(qū)格式化Flash:在vivi模式下輸入命令: bon part 0 192K 1216K對板子進行分區(qū)。方法一:接上串口電纜,輸入命令:load flash kernel x,使用Serial PortTransmi