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

正文內(nèi)容

基于arm的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-07-02 10:31本頁(yè)面

【導(dǎo)讀】機(jī)處理與存儲(chǔ)數(shù)據(jù)的最有效,最成功的技術(shù)。數(shù)據(jù)和資源共享這兩種技術(shù)結(jié)合在一起。即成為在今天廣泛應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。它是以后臺(tái)數(shù)據(jù)庫(kù)為基礎(chǔ),據(jù),通過(guò)聯(lián)網(wǎng)與服務(wù)器進(jìn)行連接,并完成數(shù)據(jù)的查詢。件主要采用友善之臂的Tiny6410開發(fā)板,外接觸摸屏。客戶端組成,采用Qt開發(fā)用戶圖形界面。服務(wù)器端使用SQLite數(shù)據(jù)庫(kù)存放數(shù)據(jù),并在??蛻舳瞬捎肔inux操作系統(tǒng),移植了無(wú)線網(wǎng)卡的。歡迎界面、用戶登錄界面。入式Linux的設(shè)置操作等。設(shè)計(jì)以學(xué)生信息查詢系統(tǒng)為例,通過(guò)運(yùn)行本系統(tǒng),實(shí)現(xiàn)了。嵌入式系統(tǒng)設(shè)計(jì)打下基礎(chǔ)。

  

【正文】 較舊的只是修正啦一些 bug 或加入了一些新的驅(qū)動(dòng)程序。開發(fā)版的內(nèi)核的變化很快,發(fā)布周期也都很短,主要是因?yàn)樾枰胤磸?fù)實(shí)驗(yàn),來(lái)驗(yàn)證各種解決方案。內(nèi)核的兩個(gè)版本相互關(guān)聯(lián)與循環(huán)。 內(nèi)核模塊結(jié)構(gòu) Linux 核心源程序通常都安裝在目錄 /usr/src/Linux下,一個(gè)目錄就是一個(gè)模塊。各個(gè)目錄的用途如下: ( 1) /include:該子目錄包含了編譯內(nèi) 核代碼時(shí)所需的大部分包含文件。各類驅(qū)動(dòng)或功能布局的頭文件在 /media、 /mtd、 /等目錄下。 ( 2) /drivers:該子目錄包含當(dāng)前版本的內(nèi)核中的所有設(shè)備驅(qū)動(dòng)代碼,里面的每個(gè)子目錄對(duì)應(yīng)一類驅(qū)動(dòng)程序,每種驅(qū)動(dòng)程序各自占有一個(gè)子目錄。 ( 3) /init:該子目錄包含了初始化內(nèi)核的代碼。 ( 4) /ipc:該子目錄包含了進(jìn)程間通信的代碼。 ( 5) /lib:該子目錄包含內(nèi)核的庫(kù)代碼,分為與體系結(jié)構(gòu)無(wú)關(guān)的內(nèi)核庫(kù)代碼和與體系結(jié)構(gòu)相關(guān)的內(nèi)核庫(kù)代碼。 ( 6) /mm:該子目錄包含所有的內(nèi)存管理代碼。 ( 7) /fs:該子目錄包含了全部文件系統(tǒng)的代碼和各種類型的文件操作 代碼。 ( 8) /arch:該子目錄包含為不同硬件平臺(tái)的體系結(jié)構(gòu)而特制的內(nèi)核代碼。 ( 9) /:該子目錄包含內(nèi)核的網(wǎng)絡(luò)部分代碼。 ( 10) /scripts:該子目錄下包含一些腳本文件。 ( 11) /kernel該子目錄包含了主內(nèi)核的代碼。 內(nèi)核的配置 配置內(nèi)核的目的是,使內(nèi)核在能夠具備支持觸摸屏、無(wú)線網(wǎng)卡、串口通信等驅(qū)動(dòng)的支持和對(duì)文件系統(tǒng)的支持等功能的基礎(chǔ)上,去掉不需要的選項(xiàng),使其占用的內(nèi)存變小,調(diào)高運(yùn)行速率,最終能夠滿足嵌入式開 發(fā)的要求。 基于 ARM 的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì) 18 本設(shè)計(jì)選用的是友善之臂提供的內(nèi)核,是一個(gè)已經(jīng)完成很多配置的可以直接在開發(fā)板上進(jìn)行使用的內(nèi)核。鑒于本設(shè)計(jì)需要使用 USB無(wú)線網(wǎng)卡,在配置內(nèi)核時(shí)就需要加載對(duì)這部分的驅(qū)動(dòng)。而由于 Linux內(nèi)核中已經(jīng)包含了眾多 USB無(wú)線網(wǎng)卡驅(qū)動(dòng),能夠直接支持本設(shè)計(jì)使用的無(wú)線網(wǎng)卡。 文件系統(tǒng) Linux系統(tǒng)將存儲(chǔ)設(shè)備劃分為若干個(gè)分區(qū),不同分區(qū)存放不同類別的文件,它以樹狀結(jié)構(gòu)管理所有目錄。系統(tǒng)啟動(dòng)必需的文件合成為根文件系統(tǒng),他們掛載在一個(gè)分區(qū)中,是 linux系統(tǒng)啟動(dòng)后掛載的第一個(gè)分區(qū)。其他分區(qū)上所有目錄、文件的集合, 也稱為文件系統(tǒng)。 嵌入式系統(tǒng)采用 Flash作為存儲(chǔ)器,由于 Flash特殊的硬件結(jié)構(gòu),必須采用專門的文件系統(tǒng)進(jìn)行操作。 本設(shè)計(jì)使用的文件系統(tǒng)是 UBIFS格式的。 UBIFS最早在 20xx年由 IBM與 Nokia的工程師 Thomas Gleixner, Artem Bityutskiy所設(shè)計(jì),專門為了解決 MTD( Memory Technology Device)設(shè)備所遇到的瓶頸。由于 Nand Flash容量的暴漲, YAFFS等皆無(wú)法再去控制 Nand Flash的空間。 UBIFS在設(shè)計(jì)與性能上均較 YAFFS JFFS2 更適合MLC NAND FLASH。 本文使用的 UBIFS文件系統(tǒng)映像的制作需要使用到 busybox。從官網(wǎng)下載的busybox源代碼,需要根據(jù)所需重新配置一下,才可以編譯使用。進(jìn)入 busybox源代碼目錄,直接使用開發(fā)板資料中的一個(gè)已經(jīng)做好了的缺省的配置文件,執(zhí)行命令: cp .config。 make后,即可在當(dāng)前目錄編譯生成 busybox目標(biāo)文件。完成了對(duì)busybox的配置和編譯后,就可以開始制作 UBIFS格式文件系統(tǒng)映像了。在/opt/FriendlyARM/mini6410/linux目錄下,執(zhí)行命令: mkubimagemlc2rootfs_qtopia_qt4 。 UBIFS格式的映像文件。 在 節(jié)燒寫完內(nèi)核后,使用 DNW下載文件系統(tǒng)映像,并完成燒寫。 開發(fā)板上安裝配置 要想在開發(fā)板上運(yùn)行 Qt的應(yīng)用程序,還需要在開發(fā)板上安裝與宿主機(jī)上相同版本的 Qt并進(jìn)行相應(yīng)的配置,步驟如下: ( 1)進(jìn)入宿主機(jī)上安裝 ,將 。并將壓縮包通過(guò)共享文件夾拷貝到 SD卡上。 ( 2)在開發(fā)板上解壓 ,要將開發(fā)板上廠商提供的 ,超級(jí)終端里運(yùn)行命令: rm/usr/local/Trolltech/。 ( 3)將 SD卡插到開發(fā)板上,進(jìn)入 opt目錄后。執(zhí)行命令 tar xvzf /sdcard/,開始解壓。 基于 ARM 的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì) 19 ( 4)將開發(fā)板的配套資料中對(duì)應(yīng)的腳本 setqt4env拷貝到 /bin,并修改權(quán)限。 ( 5)修改開機(jī)自啟動(dòng), vi /etc/。 注銷其中的 /bin/qtopia amp。一行。 ( 6)執(zhí)行命令: sync /etc/。 ( 7)至此,開發(fā)板上的運(yùn)行環(huán)境搭建成功,每次重新開機(jī)后,運(yùn)行 Qt應(yīng)用程序前要先運(yùn)行一下腳步,命令為: . /bin/setqt4env。 本章小結(jié) 本章介紹了開發(fā)板上的系統(tǒng)平臺(tái)的實(shí)現(xiàn)過(guò)程,首先介紹了 Bootloader及其啟動(dòng)流程然后介紹了 uboot及其編譯,接下來(lái)對(duì) Linux內(nèi)核進(jìn)行了較為詳細(xì)的介紹,包括內(nèi)核的版本,內(nèi)核模塊結(jié)構(gòu),內(nèi)核的配置以及其文件系統(tǒng)等方面,最后對(duì)在開發(fā)板上安裝配置 。 基于 ARM 的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì) 20 第 5 章 基于 ARM的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)功能的實(shí)現(xiàn) 系統(tǒng)方案的設(shè)計(jì) 服務(wù)器端的設(shè)計(jì)方案 服務(wù)器端的應(yīng)用程序使用 Qt進(jìn)行編寫,在 windows下直接安裝 QtSDK,實(shí)現(xiàn) Qt的使用。應(yīng)用界面的程序主要完成的任務(wù)包括:與客戶端的無(wú)線連接及數(shù)據(jù)的交互,與數(shù)據(jù)庫(kù)的連接、查詢及其數(shù)據(jù)的更新 [15]。 本設(shè)計(jì)以學(xué)生信息查詢?yōu)槔?,?shù)據(jù)庫(kù)存放的為學(xué)生的各種信息。 客戶端的設(shè)計(jì)方案 從軟硬件的角度,客戶端的設(shè)計(jì)分為兩個(gè)部分,一個(gè)是主控制器與外圍設(shè)備的連接與調(diào)試,另一個(gè)是操作系統(tǒng)及應(yīng)用程序的實(shí)現(xiàn)。根據(jù)客戶端的功能需求,本設(shè)計(jì)要用到 ARM處理器、觸摸屏及 WiFi網(wǎng)卡等。 基于 ARM的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)的客戶端采用 S3C6410處理器作為嵌入式終端的主控制部件。一部分外設(shè)是為具體功能的實(shí)現(xiàn)提供硬件支持,包括 WiFi無(wú)線網(wǎng)卡、 寸 LCD,其中 WiFi網(wǎng)卡是通過(guò) USB口與 ARM開發(fā)板進(jìn)行連接, LCD 與 ARM 開發(fā)板上的 LCD口連接。另一部分外設(shè)是系統(tǒng)調(diào)試的接口,包括一個(gè)串行接口 COM0( RS232)、一個(gè)網(wǎng)絡(luò)接口 Ether( RJ45)、一個(gè) mini USB接口組成。開發(fā)板通過(guò)串口與 PC機(jī)上的超級(jí)終端進(jìn)行連接,對(duì)整個(gè)系統(tǒng)進(jìn)行控制,并顯示調(diào)試信息。此外,配合網(wǎng)絡(luò)的使用可以加快 PC機(jī)與開發(fā)板間傳輸文件的速率。 mini USB接口主要是在更新系統(tǒng)時(shí),需要配合串口進(jìn)行使用。 客戶端的操作系統(tǒng)的實(shí)現(xiàn)在第四章中已經(jīng)描述過(guò)??蛻舳说膽?yīng)用程序是利用 Qt編寫并實(shí)現(xiàn)的用戶圖形界面 [16]。 若連接或登錄不成功,會(huì)彈出帶有提示信息的對(duì)話框,之后會(huì)返回之前的界面,不會(huì)顯示下一步的信息。選擇主界面中修改密碼的 功能后,會(huì)彈出一個(gè)新的界面,協(xié)助該功能的實(shí)現(xiàn)。 根據(jù)操作流程,結(jié)合需要實(shí)現(xiàn)的功能,本設(shè)計(jì)的思路是將客戶端與服務(wù)器之間的連接及數(shù)據(jù)交互的實(shí)現(xiàn)代碼放在主界面的程序中,再通過(guò)發(fā)射信號(hào)的方式實(shí)現(xiàn)界面間信息交互。下面將從數(shù)據(jù)的傳輸及子界面的輔助功能二個(gè)方面介紹客戶端的應(yīng)用程序,其中子界面包括歡迎界面、用戶登錄界面及修改密碼界面三個(gè)部分。 基于 ARM 的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì) 21 服務(wù)器端數(shù)據(jù)庫(kù)的實(shí)現(xiàn) 數(shù)據(jù)庫(kù)的建立 本設(shè)計(jì)使用 SQLite Database Browser生成 SQLite數(shù)據(jù)庫(kù), SQLite DatabaseBrowser是 一種免費(fèi)的輕量級(jí)數(shù)據(jù)庫(kù)工具,下載后,無(wú)須安裝,可以直接在 windows下使用。作為一款開源的可視化數(shù)據(jù)庫(kù)工具 ,SQLite Database Browser可以創(chuàng)立、設(shè)計(jì)和編輯數(shù)與 SQLite兼容的數(shù)據(jù)庫(kù)文件,生成的數(shù)據(jù)庫(kù)為 .db文件。 數(shù)據(jù)庫(kù)的使用 Qt中的 QtSql模塊提供了對(duì)數(shù)據(jù)庫(kù)的支持,通過(guò)它就可以在 Qt 中的對(duì) .db 文件進(jìn)行操作。在新建服務(wù)器端的 Qt工程時(shí),選擇 QtSql。 QtSql模塊中的眾多類基本上可以分為 3 層 :用戶接口層, SQL接口層和驅(qū)動(dòng)層。 驅(qū)動(dòng)層為具體的數(shù)據(jù)庫(kù)和 SQL接 口層之間提供了底層的橋梁 [17]; SQL 接口層提供了對(duì)數(shù)據(jù)庫(kù)的訪問,其中的 QSqlDatabase 類用來(lái)創(chuàng)建連接, QSqlQuery類可以使用SQL語(yǔ)句來(lái)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)交互,其他幾個(gè)類對(duì)該層提供了支持;用戶接口層的幾個(gè)類實(shí)現(xiàn)了將數(shù)據(jù)庫(kù)中的數(shù)據(jù)鏈接到窗口部件上。本設(shè)計(jì)針對(duì) SQL 接口層編程,主要使用 QSqlDatabase類和 QSqlQuery類。 QSqlDatabase類用于連接數(shù)據(jù)庫(kù),可以實(shí)現(xiàn)的操作包括創(chuàng)建、設(shè)置、打開、關(guān)閉、刪除。 QSqlDatabase類提供了對(duì)數(shù)據(jù)庫(kù)操作的接口,QSqlDatabase類的實(shí)例表示了一個(gè)數(shù)據(jù)庫(kù)連接。使用 addDatabase創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接,指定驅(qū)動(dòng)種類。 db=QSqldatabase::addDatabase(type), type 為數(shù)據(jù)庫(kù)驅(qū)動(dòng)的類型:本設(shè)計(jì)使用的是 QSQLITE。創(chuàng)建連接后,通過(guò)一些 setDatabaseName給此連接定義數(shù)據(jù)庫(kù)名,然后執(zhí)行 open函數(shù)創(chuàng)建實(shí)際的物理連接,在沒有執(zhí)行 open之前是無(wú)法執(zhí)行查詢操作的。 部分代碼如下: qAppaddLibraryPath(qAppapplicationDirPath ( ) + /plugins)。 QSqlDatabase defaultDB=QSqlDatabase::addDatabase(QSQLITE)。 ()。 ( )。 這段代碼實(shí)現(xiàn)的功能是打開一個(gè)指定文件名的數(shù)據(jù)庫(kù),打開成功會(huì)在窗口的一個(gè)Label中顯示 open success,否則顯示 database is not open。此外,還需要將 .db 文件放到服務(wù)器端工程文件夾下的 debug 文件夾下。若 debug文件夾下中不存在 ,運(yùn)行此段代碼后,也會(huì)在 debug文件夾下生成一個(gè)空的名為 數(shù)據(jù)庫(kù)文件。 完成了數(shù)據(jù)庫(kù)的創(chuàng)建與連接,就可以使用 QSqlQuery類來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢?;?ARM 的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì) 22 QSqlQuery類提供了一個(gè)接口,用于執(zhí)行 SQL語(yǔ)句和瀏覽查詢結(jié)果集,提供了對(duì)數(shù)據(jù)庫(kù)記錄的插入、更新、刪除等操作。要執(zhí)行一個(gè) SQL語(yǔ)句,只需要簡(jiǎn)單地創(chuàng)建一個(gè)QSqlQuery對(duì)象,然后調(diào)用 exec( )函數(shù)即可。 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn) 網(wǎng)絡(luò)環(huán)境的構(gòu)建 網(wǎng)絡(luò)傳輸是指用一系列物理介質(zhì),依據(jù)網(wǎng) 絡(luò)傳輸協(xié)議來(lái)進(jìn)行通信的過(guò)程。本設(shè)計(jì)是使用路由器作為 AP,終端通過(guò) WiFi網(wǎng)絡(luò)連接到無(wú)線局域網(wǎng)中。通過(guò)超級(jí)終端控制ARM開發(fā)板,實(shí)現(xiàn) WiFi無(wú)線網(wǎng)卡的使用,步驟如下: ( 1) 關(guān)閉有線網(wǎng)卡 DM9000。運(yùn)行的命令 ifconfig eth0 down。 ( 2) 執(zhí)行掃描命令,以搜索附近的無(wú)線網(wǎng)絡(luò): scanwifi。 ( 3) 連接使用無(wú)線網(wǎng) startwifi none FreeWifi。 FreeWifi為使用路由器設(shè)置的無(wú)線網(wǎng)絡(luò)接入點(diǎn)。 ( 4) 使用 ping命令測(cè)試一下網(wǎng)絡(luò)連接。其中步驟 1 不能被忽略,否則無(wú) 線網(wǎng)卡將不能正常使用。一般來(lái)說(shuō),系統(tǒng)默認(rèn)使用的是有線網(wǎng)卡對(duì)網(wǎng)絡(luò)進(jìn)行訪問,所以配置無(wú)線網(wǎng)卡之前,需要先把有線網(wǎng)卡 DM9000關(guān)閉。 網(wǎng)絡(luò)傳輸模式及協(xié)議 本設(shè)計(jì)選擇的傳輸模式客戶 /服務(wù)器,客戶及服務(wù)器二者共同完成工作,此模式的交互性比較強(qiáng)。 客戶端與服務(wù)器端的通信需要依據(jù)網(wǎng)絡(luò)協(xié)議。主要對(duì)比兩種常見的網(wǎng)絡(luò)協(xié)議 TCP協(xié)議和 UDP協(xié)議,這兩種傳輸協(xié)議的結(jié)構(gòu)形式不一樣,導(dǎo)致傳輸?shù)姆绞揭膊幌嗤?,但它們同屬于傳輸層協(xié)議。 TCP(Transmission Control Protocol),即傳輸控制協(xié)議,是一 種面向連接的協(xié)議。在客戶端和服務(wù)器端正式收發(fā)數(shù)據(jù)之前,必須在雙方之間建立一個(gè)通信連接。 UDP(User Datagram Protocol),即用戶數(shù)據(jù)報(bào)協(xié)議,是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的傳輸層協(xié)議。在傳輸數(shù)據(jù)報(bào)前,無(wú)須在客戶端和服務(wù)器端建立一個(gè)連接。 UDP不提供可靠性、流控或差錯(cuò)恢復(fù)功能。雖然可靠性較差,但 UDP的傳輸速度很快。 考慮到本設(shè)計(jì)對(duì)可靠性要求比較高,所以選用 TCP作為傳輸協(xié)議。 應(yīng)用程序的實(shí)現(xiàn) Qt中提供了用于網(wǎng)絡(luò)編程的 QtNetwork模塊,本設(shè)計(jì)使用其中的 QTcpSocket類和基于 ARM 的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)設(shè)計(jì) 23 QTcpServer類來(lái)實(shí)現(xiàn)客戶與服務(wù)器的 TCP/IP連接及數(shù)據(jù)交互。要使用該模塊中的類,需要在新建服務(wù)器端的 Qt工程時(shí),選擇 QtNetwork。 QTcpSocket類用來(lái)實(shí)現(xiàn)客戶端應(yīng)用程序的編寫。它是 QAbstractSocket類中的一個(gè)非常方便的子類,提供一個(gè) TCP套接字。 QTcpSocket異步工作,通過(guò)發(fā)射信號(hào)來(lái)報(bào)告狀態(tài)改變和錯(cuò)誤信息。他依靠事件循環(huán)來(lái)檢測(cè)到來(lái)的數(shù)據(jù),并且自動(dòng)刷新輸出的數(shù)據(jù)。QTcpSocket代表了兩個(gè)獨(dú)立的數(shù)據(jù)流: read( )用來(lái)讀取數(shù)據(jù), write( )用來(lái)寫入數(shù)據(jù)。 QTcpServer類用來(lái)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1