freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢設(shè)-基于arm的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)-資料下載頁(yè)

2024-11-10 10:02本頁(yè)面

【導(dǎo)讀】本設(shè)計(jì)提出了一種以嵌入式為基礎(chǔ)的溫度采集系統(tǒng)的設(shè)計(jì)方案,使得基于嵌入式。系統(tǒng)做溫度采集終端有較好的人機(jī)交互界面和系統(tǒng)高穩(wěn)定性。內(nèi)核的架構(gòu)和根文件系統(tǒng)等相關(guān)知識(shí)。同時(shí),本設(shè)計(jì)在軟件方面主要編寫(xiě)了DS18B20. 面主要設(shè)計(jì)了DS18B20的硬件電路,搭建了嵌入式交叉開(kāi)發(fā)環(huán)境。通過(guò)綜合調(diào)試最終。特性,同時(shí),使用mini2440開(kāi)發(fā)板做嵌入式開(kāi)發(fā)平臺(tái)具有成本低,功耗低,體積小,具備了發(fā)展?jié)摿Υ?,功耗低,穩(wěn)定性高,可視化界面好,便于攜帶和功能可擴(kuò)展的特性。

  

【正文】 象層、磁盤(pán)及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個(gè)內(nèi)核不是一套完整的操作系統(tǒng)。一套基于 Linux 內(nèi)核的完整操作系統(tǒng)叫作 Linux 操作系統(tǒng),或是 GNU/Linux。 U s e r A p p l i c a t i o n sG N U C L i b r a r yS y s t e m C a l l I n t e r f a c eK e r n e l結(jié) 構(gòu) 體 系 相 關(guān) 代 碼用 戶(hù) 空 間內(nèi) 核 空 間 圖 Linux系統(tǒng)架構(gòu) 由上圖可知 Linux 系統(tǒng)構(gòu)架是由用戶(hù)空間和內(nèi)核空間兩部分組成,之所以分為兩部分主要是為了實(shí)現(xiàn)系統(tǒng)穩(wěn)定性。內(nèi)核空間和用戶(hù)空間是程序執(zhí)行的兩種不同狀態(tài),通過(guò)系統(tǒng)調(diào)用和硬件中斷能夠?qū)崿F(xiàn)從用 戶(hù)空間到內(nèi)核空間的轉(zhuǎn)移。 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –21– Linux 內(nèi)核的主要模塊 (或組件 )分以下幾個(gè)部分:存儲(chǔ)管理、 CPU 和進(jìn)程管理、 虛擬 文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)、網(wǎng)絡(luò)通信,以及系統(tǒng)的初始化 (引導(dǎo) )、系統(tǒng)調(diào)用等。 具體如圖 所示: 系 統(tǒng) 調(diào) 用 接 口 ( S y s t e m C a l l I n t e r f a c e )進(jìn) 程 管 理P r o c e s s M a n a g e m e n t虛 擬 文 件 系 統(tǒng)V r i t u a l F i l e S y s t e m內(nèi) 存 管 理M e m o r y M a n a g e m e n t網(wǎng) 絡(luò) 協(xié) 議 棧N e t w o r k S t a c k結(jié) 構(gòu)A r c h設(shè) 備 驅(qū) 動(dòng)D e v i c e D r i v e r s 圖 Linux內(nèi)核架構(gòu) ? 系統(tǒng)調(diào)用接口: SCI層為用戶(hù)提供了一套標(biāo)準(zhǔn)的系統(tǒng)調(diào)用函數(shù)來(lái)訪(fǎng)問(wèn) Linux內(nèi)核,搭起了用戶(hù)空間到內(nèi)核空間的橋梁。 ? 進(jìn)程管理:主要是實(shí)現(xiàn)了進(jìn)程的創(chuàng)建,進(jìn)程的停止,并控制進(jìn)程間的相互通信,進(jìn)程管理還包括進(jìn)程如何共享 CPU,即進(jìn)程的調(diào)度。 ? 內(nèi)存管理:主要是實(shí)現(xiàn)多個(gè)進(jìn)程安全有序地共享內(nèi)存。 ? 網(wǎng)絡(luò)協(xié)議棧:主要為 Linux系統(tǒng)提供了豐富的網(wǎng)絡(luò)協(xié)議。 ? 虛擬文件系統(tǒng): VFS隱藏了各種文件系統(tǒng)的細(xì)節(jié),為文件操作提供統(tǒng)一的接口,如圖 。 ? 設(shè)備驅(qū)動(dòng): Linux內(nèi) 核中很多代碼都在設(shè)備驅(qū)動(dòng)中, 它們控制特定 的硬件設(shè)備。 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –22– 虛 擬 文 件 系 統(tǒng)應(yīng) 用 程 序E x t 2 F A T N F S設(shè) 備 文件 圖 虛擬文件系統(tǒng)提供統(tǒng)一文件接口 內(nèi)核移植到 mini2440[8] (1) 首先到 下載一套沒(méi)有經(jīng)過(guò)移植的 源代碼,并解壓到相關(guān)目錄下,進(jìn)入目錄 ; (2) 對(duì)內(nèi)核根目錄下的 Makefile 文件進(jìn)行相應(yīng)修改,修改 CPU 類(lèi)型為 arm,編譯工具改為 armlinux, ARCH ?= arm, CROSS_COMPILE ?=armlinux; (3) 修改時(shí)鐘頻率: vi arch/arm/machs3c2440/(12020000); (4) 修改對(duì) Nand 的分區(qū)信息。要讓內(nèi)核知道 Nand Flash 的分區(qū)信息,設(shè)置成跟bootloader 一致 ; (5) 添加 DM9000 網(wǎng)卡驅(qū)動(dòng) 和其他設(shè)備驅(qū)動(dòng); (6) 用 S3C2410 的默認(rèn)配置文件 來(lái)進(jìn)行基礎(chǔ)配置然后使用 make menuconfig 來(lái)詳細(xì)配置; (7) 編譯內(nèi)核 ; 配置編譯生成 zImage[9] 使用已經(jīng)移植好的 內(nèi)核進(jìn)行 zImage 的生成,在此過(guò)程中通過(guò)內(nèi)核編譯的方式把 DS18B20 的驅(qū)動(dòng)加載到內(nèi)核當(dāng)中,而不是使用內(nèi)核模塊的方式加載驅(qū)動(dòng) 程序,然后通過(guò)內(nèi)核配置,編譯最后生成 zImage。具體過(guò)程如下: (1) 復(fù)制 DS18B20 驅(qū)動(dòng)程序 到 /,執(zhí)行如下命令: cp ./ /(2) 編輯 /: 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –23– vi /然后再一個(gè)位置添加以下內(nèi)容: config 18b20 bool “18b20” (3) vi /obj$(CONFIG_18B20) += (4) 使用 S3C2410 的配置文件進(jìn)行配置。 (5) 使用 make menuconfig 進(jìn)行詳盡配置,執(zhí)行以下命令 (6) make menuconfig ARCH=arm 然后進(jìn)入圖形窗口進(jìn)入 device drivers,在高目錄下使用空格選擇 misc device 進(jìn)入該目錄下 本設(shè)計(jì) 可以看到 18b20 這個(gè)新設(shè)備,通過(guò)空格選擇該驅(qū)動(dòng) ,退出并保存。 (7) 編譯內(nèi)核,執(zhí)行以下命令完成內(nèi)核編譯 make zImage ARCH=arm CROSS_COMPILE=armlinux編譯完成后 本設(shè)計(jì) 可以在 /。 通過(guò)以上操作 DS18B20 的驅(qū)動(dòng)已經(jīng)被編譯到內(nèi)核當(dāng)中,只要我餓們把內(nèi)核下載到開(kāi)發(fā)板下,在開(kāi)發(fā)板的 dev 目錄下可以看到設(shè)備 ds18b20,這 就 說(shuō)明 設(shè)備添加成功,如圖 所示。 圖 添加設(shè)備 DS18B20 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –24– 本章小結(jié) 在本章節(jié) 本設(shè)計(jì) 主要介 紹了一些 Linux 系統(tǒng)和 Linux 內(nèi)核的相關(guān)知識(shí),以及怎樣把Linux 內(nèi)核移植到開(kāi)發(fā)板上,但 本設(shè)計(jì) 得重點(diǎn)在于如何配置 Linux 內(nèi)核,并且編譯內(nèi)核以及通過(guò)編譯內(nèi)核來(lái)編譯 DS18B20 驅(qū)動(dòng)程序。 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –25– 6 QT 應(yīng)用程序的開(kāi)發(fā)及調(diào)試 QT 的簡(jiǎn)介 [10] Qt 是事實(shí)上的標(biāo)準(zhǔn) C++ 框架, 是一種 用于高性能的跨平臺(tái)軟件開(kāi)發(fā) 的工具 。除了擁有擴(kuò)展的 C++ 類(lèi)庫(kù)以外, Qt 還提供了 一系列簡(jiǎn)單的 可 以 用來(lái)直接 進(jìn)行 快速編寫(xiě)應(yīng)用程序的工具。此外, Qt 還具有跨平臺(tái)能力并 可以 提供國(guó)際化支持,這一切確保了 Qt 應(yīng)用程序的應(yīng)用 領(lǐng) 域是 極為廣泛 的 。 自 1995 年以來(lái), Qt C++框架一直是商業(yè)應(yīng)用程序的核心。無(wú)論是 大型 跨國(guó)公司和大型組織(例如: Adobe174。、 Boeing174。、 Google174。、 IBM174。、 Motorola174。、 NASA、 Skype174。)、還是無(wú)數(shù)小型 企業(yè) 和組織都在使用 Qt。 Qt 的類(lèi)功能全面,提供一致性接口,更易于學(xué)習(xí)使用,可減輕開(kāi)發(fā)人員的工作負(fù)擔(dān)、提高編程人員的效率。另外, Qt 一直都是完全面向?qū)ο蟮摹? Qt 提供了一系列標(biāo)準(zhǔn)窗體, 通過(guò) 使用這些部件,可以 創(chuàng)作出具有良好的人機(jī)交互界面的應(yīng)用文件 。 Qt 窗體 具有簡(jiǎn)單,易用 , 靈活的特 點(diǎn)。在遇到特殊情況時(shí),通過(guò) 派生 新子類(lèi)來(lái)滿(mǎn)足設(shè)計(jì)要求 。 窗體是用于創(chuàng)建可視化界面的一些可視化元素的集合 。 這樣的例子很多,例如: 按鈕、菜單、滾動(dòng)條、消息框以及應(yīng)用程序窗口 等 。 Qt 的窗體在“控件”或“容器”之間 沒(méi)有明顯的 區(qū)分。 所以 所有窗體既可以 當(dāng)做“ 控件 ”來(lái) 使用、又可以作為 “ 容器 ”來(lái)使用。 當(dāng)然用戶(hù)可以自定義窗口,這就需要 通過(guò) 已 有 Qt 窗體派生子類(lèi) 也可以通過(guò) 新建窗體 來(lái)實(shí)現(xiàn)。 標(biāo)準(zhǔn)窗體 屬于 QWidget 類(lèi) 或者 其子類(lèi),而自定義窗體則可通過(guò)從標(biāo)準(zhǔn)窗體派生子類(lèi)并重寫(xiě)虛函數(shù)的方式來(lái)創(chuàng)建 。 信號(hào)和槽為對(duì)象之間的通信提供了 便利條件。它們易于理解和使用,并受到 Qt Designer 的全面支持。 GUI 應(yīng)用程序要對(duì)用戶(hù)操作做出響應(yīng)。例如,當(dāng)用戶(hù)單擊菜單項(xiàng)目或者工具欄按鈕時(shí), GUI 應(yīng)用程序便會(huì)執(zhí)行某段 程序 。 其實(shí) , 本設(shè)計(jì) 更希望任何一類(lèi)對(duì)象均可彼此互相進(jìn)行信息傳遞 。編程人員 工作就是 將事件與相關(guān) 相關(guān)程序相關(guān) 聯(lián)。老的開(kāi)發(fā)工具套件(Toolkit)使用的機(jī)制不是類(lèi)型安全的,例如,容易引起 系統(tǒng) 崩潰, 不夠 靈活性而且不是面向?qū)ο蟮摹? 奇趣科技公司 提出 了一種“信號(hào)和 插 槽” 機(jī)制來(lái)解決以上問(wèn)題 。 “ 信號(hào)和 插 槽 ” 機(jī)制是一種功能強(qiáng)大的對(duì)象間 進(jìn)行信息傳遞 機(jī)制,完全可以取代 傳統(tǒng) 的開(kāi)發(fā)套件所使用的基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –26– 粗糙的回調(diào)和消息映射。信號(hào)和槽機(jī)制 相當(dāng) 靈活, 而且 使用 C++ 來(lái)實(shí)現(xiàn) 了完全面向?qū)ο蟆? 若是 使用原有 的 回調(diào)機(jī)制,將某一 段程序 與按鈕關(guān)聯(lián) 起來(lái) , 那么 必須將函數(shù)指針傳輸給該按鈕。 當(dāng) 單擊此按鈕時(shí),系統(tǒng) 便會(huì) 調(diào)用此函數(shù)。 然 而對(duì)于 傳統(tǒng) 的工具套件而言,調(diào)用此函數(shù)時(shí),它不確保將正確類(lèi)型的參數(shù)傳遞,這樣 就很有可能 導(dǎo)致 系統(tǒng)崩潰 。回調(diào)方法的另一問(wèn)題是:它將 GUI 元素與功能緊緊地 聯(lián)系 在一起,這樣 就增加進(jìn)行 獨(dú)立開(kāi)發(fā)類(lèi) 的難度,從而導(dǎo)致開(kāi)發(fā)不夠靈活 。 但 Qt 的 “ 信號(hào)和 插 槽 “ 機(jī)制 卻與傳統(tǒng)調(diào)用方法不同 。 當(dāng)有 事件 發(fā)生時(shí), 將會(huì) 觸發(fā)Qt 窗體發(fā) 射某種 信號(hào)。例如, 當(dāng) 單擊某一按鈕時(shí),該按鈕將 會(huì) 發(fā)出“ clicked”信號(hào)。編程人員要想連接一個(gè)信號(hào)可以 通過(guò) 創(chuàng)建一個(gè) “ 插 槽” 函數(shù) 來(lái)實(shí)現(xiàn) 。并 通過(guò) 調(diào)用 connect()函數(shù) 把 信號(hào)與 插槽連接 起來(lái) 。 Qt 的 “ 信號(hào)和槽 ” 機(jī)制 對(duì) 各類(lèi)彼此 之間 感知 沒(méi)有 要求,這樣 就 可以更輕松地開(kāi)發(fā)極易重新使用的類(lèi)。由于信號(hào)和 插槽都屬于類(lèi)型安全的,因此,類(lèi)型錯(cuò)誤不會(huì)被 報(bào)告為警告 從而 不會(huì) 引起系統(tǒng) 崩潰。 在運(yùn) 行 Qt 應(yīng)用程序的過(guò)程中,可以隨時(shí)添加 連接 或 者 移除連接。 另外, 可 以 為在發(fā)出信號(hào)時(shí)執(zhí)行或者 將連接設(shè)置 為 排隊(duì)稍后執(zhí)行,可 以在不同的線(xiàn)程的對(duì)象之間建立連接。 信號(hào)和 插 槽 是 通過(guò)平滑的擴(kuò)展 C++語(yǔ)法并充分利用 了 C++的面向?qū)ο筇匦詫?shí)現(xiàn)。信號(hào)和 插 槽是類(lèi)型安全的,可以重載,也可以重新實(shí)現(xiàn),可以出現(xiàn)在類(lèi)的公有區(qū)、保護(hù)區(qū)或私有區(qū)。若要使用信號(hào)和槽,必須繼承 QObject 或其子類(lèi),并在類(lèi)的定義中包括Q_OBJECT 宏。信號(hào)在類(lèi)的“信號(hào)區(qū)”聲明,而 插 槽則是在“公有槽區(qū)”、“保護(hù)槽區(qū)”或“私有槽區(qū)”中聲明的。 開(kāi)發(fā)人員既可以創(chuàng)建“對(duì)話(huà)框”樣式的應(yīng)用程序、又可以創(chuàng)建帶有菜單、工具欄、氣球幫助以及其他標(biāo)準(zhǔn)功能的“主窗口”樣式的應(yīng)用程序。 Qt Designer 提供了多種窗體模板,開(kāi)發(fā)人員可以創(chuàng)建自己的模板,確保某一應(yīng)用程序或某一系列應(yīng)用程序界面的一致性。 編程人員可以創(chuàng)建自己的自定義窗體,這些窗體可以輕松與 Qt Designer 集成。 Qt Designer 支持采用基于窗體的方式來(lái)開(kāi)發(fā)應(yīng)用程序。窗體是由用戶(hù)界面 (.ui)文件來(lái)表示的,這種文件既可以轉(zhuǎn)換成 C++ 并編譯成一個(gè)應(yīng)用程序,也可以在運(yùn)行時(shí)加以處理,從而生成動(dòng)態(tài)用戶(hù)界面。 Qt 的構(gòu)建系統(tǒng)能將用戶(hù)界面的編譯構(gòu)建過(guò)程自動(dòng)化,使設(shè)計(jì)過(guò)程更輕松。 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –27– QT 測(cè)溫應(yīng)用程序 需求分析 根據(jù)畢 設(shè)要求,要設(shè)計(jì)一個(gè)直觀(guān)的溫度采集界面,能夠?qū)崟r(shí)顯示為溫度值,所以QT 界面上能夠同時(shí)顯示時(shí)間和溫度,使得操作者能夠清楚地看到溫度值和當(dāng)前時(shí)間。應(yīng)用程序具體流程如圖 所示: 開(kāi) 始圖 形 界 面 屬 性 初始 化1 秒 定 時(shí) 器 開(kāi) 始 定 時(shí)判 斷 能 否 打 開(kāi) 設(shè)備 D S 1 8 B 2 0寫(xiě) 入 命 令 讀 取 溫 度獲 取 當(dāng) 前 系 統(tǒng) 時(shí) 間顯 示 溫 度顯 示 時(shí) 間1 秒 定 時(shí) 是 否 結(jié)束結(jié) 束YYNN 圖 應(yīng)用程序流程圖 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –28– 程序設(shè)計(jì) [11][12] 首先進(jìn)入 /opt/FriendlyARM/mini2440/x86qtopia 打開(kāi) Qt designer 進(jìn)行設(shè)計(jì) 的設(shè)計(jì), Qt designer 開(kāi)發(fā)界面如下圖 所示。 圖 利用 QT designer設(shè)計(jì)界面 從圖 可以看出使用 designer 來(lái)設(shè)計(jì) QT 界面相對(duì)比較簡(jiǎn)單,很多組件只要從工具欄里拖拽到窗口中即可。 (1) 設(shè)計(jì) ,其中顯示溫度的部分使用了 4 位 LCD 進(jìn)行顯示,根據(jù) DS18B20的數(shù)據(jù)手冊(cè)可知 DS18B20 的測(cè)溫范圍是 55176。 C 到 +125176。 C 所以低三位用來(lái)顯示溫度數(shù)值,最高位也就是第四位顯示溫度的正負(fù)。顯示時(shí)間的組件使用了標(biāo)簽,用標(biāo)簽來(lái)實(shí)時(shí)顯示時(shí)間。然后進(jìn)行信號(hào)插槽的連接即可,那么初步設(shè)計(jì) 基本 完成。本設(shè)計(jì) LCD 顯示溫度部分是信號(hào) timeout()和插槽 measure()進(jìn)行連接實(shí)現(xiàn)定時(shí)測(cè)溫的目的,而時(shí)間顯示部分是 定時(shí)器 信號(hào) timeout()和插槽 ReTime()進(jìn)行連接實(shí)現(xiàn)定時(shí)顯示時(shí)間刷新。 (2) 通過(guò)以下命令實(shí)現(xiàn) 生成 和 : uic o uic o impl (3) 通過(guò)以下命令生成項(xiàng)目文件 : progen t app o 基于 ARM 的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) –29– 修改 文件,為其中的 SOURCES= HEADERS= TARGET=mytem 若有多個(gè)就用空格隔開(kāi),并修改 IN
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1