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

正文內(nèi)容

基于linux操作系統(tǒng)下rtc驅(qū)動開發(fā)-文庫吧資料

2025-06-11 08:39本頁面
  

【正文】 統(tǒng)下 RTC 驅(qū)動開發(fā) 20 第 8 章 結(jié)論 本論文中對 Linux的發(fā)展跟 現(xiàn)狀進行了了解,還在對課題基于 Linux操作系統(tǒng)下 RTC驅(qū)動開發(fā)的基礎(chǔ)上對 Linux內(nèi)核進行了大致的分析,并在課題最后進行了相對于 RTC驅(qū)動模塊的應(yīng)用層測試軟件的編寫。 實際運行及結(jié)果 將生成的 .ko 模塊和應(yīng)用層測試程序 qq 下載的目標(biāo)板,運行過程如圖 72: 用 insmod 裝載模板。 運行步驟 通過編寫的 Makefile 及 armlinuxgcc 編譯生成 文件,如圖 71。 rtc_foperations rtc 基本的文件操作 : static const struct file_operations rtc_foperations = { .owner = THIS_MODULE, .llseek = null, .read = read, .poll = poll, .unlocked_ioctl = ioctl, .open = openfile, .release = release, .fasync = fasync, }。 類本身就是一個高度面向?qū)ο蟮漠a(chǎn)物 , 而用戶空間就可以在不知道如何實現(xiàn)的情況下直接得到結(jié)果, 驅(qū)動程序 也 不 用 直接處理 ,只要調(diào)用就行了。 return 0。 rtc_sysfs_init(rtc_class)。rtc_devt, 0, RTC_DEV_MAX, rtc)。 int err。 }。 int yday。 int year。 int mday。 int min。分別是注冊字符設(shè)備的 ,定義操作函數(shù)的 和提供接口說明的 。這種方式更快,也節(jié)省了內(nèi)核資源,控制了內(nèi)核的大小,而模塊一旦被插入內(nèi)核,就和其他被直接初始化到內(nèi)核中的模塊一樣了。 case RTC_PIE_ON: ... break。 蚌埠學(xué)院本科畢業(yè)設(shè)計(論文) 15 case RTC_SET_TIME: ... break。 圖 61 cmd參數(shù) 構(gòu)造命令編號的宏: _IO() 給沒有參數(shù)的命令; _IOR() 給從驅(qū)動中讀數(shù)據(jù)的命令; _IOW() 給寫入數(shù)據(jù)的命令; _IOWR() 用于雙向傳輸。 基于 Linux 操作系統(tǒng)下 RTC 驅(qū)動開發(fā) 14 ⑶ file_operations 的主要成員: struct module *xxx: 指向模塊本身 open: 提供打開設(shè)備的函數(shù)接口; release:提供關(guān)閉設(shè)備的函數(shù)接口; read: 實現(xiàn)從設(shè)備上讀取數(shù)據(jù)的函數(shù)接口; write: 實現(xiàn)向設(shè)備上寫入數(shù)據(jù)的函數(shù)接口; ioctl: I/O 控制函數(shù); llseek: 定位讀寫指針位置并把他們輸出出來; ⑷ ioctl 函數(shù) 為設(shè)備驅(qū)動程序執(zhí)行用戶空間的“命令”提供了一個特有的接口用來設(shè)置或者讀取設(shè)備的具體信息。 /*不常用 */ }。 /*不常用 */ dev_t xxx。 /*所屬模塊 */ struct file_operations *xxx。 ⑴ cdev 結(jié)構(gòu)體 struct cdev { struct kobject xxx。 在該設(shè)備號不再使用之后,釋放并刪除它,以節(jié)約內(nèi)核資源。 ⑸ 動態(tài)分配主設(shè)備號: include linux/ //這是 Linux 內(nèi)核中有關(guān)設(shè)備號的頭文件 int alloc_chrdev_resion(dev_t *, unsigned int , unsigned int , char *rtc); 這是內(nèi)核自動分配一個設(shè)備好給 rtc。//獲得主設(shè)備號 MINOR(dev_t rtc)。 ⑶ 設(shè)備編號的內(nèi)部表達 ? dev_t 類型 (32 位,其中主設(shè)備號 12 位,次設(shè)備號 20 位 ): 是屬于 Linux 內(nèi)核編程的專有類型,用來保存設(shè)備編號。 ⑵ 次設(shè)備號由內(nèi)核使用,用于正確確定設(shè)備文件所指的設(shè)備。 字符設(shè)備開發(fā)基本步驟 ⑴ 向內(nèi)核 確定主該設(shè)備的主次設(shè)備號 ⑵ 實現(xiàn)字符驅(qū)動程序: ? 填充 file_operations 結(jié)構(gòu)體 ? 實現(xiàn)模塊加載函數(shù)用以注冊字符設(shè)備 ? 實現(xiàn)模塊卸載函數(shù)完成模塊的釋放和刪除 ⑶ 創(chuàng)建設(shè)備文件節(jié)點 主、次設(shè)備號 [11] ⑴ 主設(shè)備號是內(nèi)核識別一個設(shè)備的標(biāo)識 。 模塊加載函數(shù) : static int __init initialization_rtc(void) { /* 初始化代碼 */ } 基于 Linux 操作系統(tǒng)下 RTC 驅(qū)動開發(fā) 12 module_init(initialization_rtc)。 ⑸ EXPORT_SYMBOL()—— 模塊導(dǎo)出符號(可選) 這個函數(shù)括號內(nèi)也放置著數(shù)量不等參數(shù),也就是 符號(可以是 函數(shù)或變量),而在這個模塊結(jié)束之后,其他模塊就可以通過這個符號使用本模塊中這些到處的參數(shù),變量或函數(shù)。 ⑶ MODULE_LICENSE()—— 模塊許可證聲明 ( 必須 ) 這一段函數(shù)就是描述內(nèi)核將要加載的模塊的工作權(quán)限 , 如果在加載模塊時不聲明LICENSE,內(nèi)核就會報警: kernel tainted,意思就是 內(nèi)核被污染。 insmod 將模塊動態(tài)加載到正在運行內(nèi)核; rmmod 程序移除模塊; Linux 內(nèi)核模塊的程序結(jié)構(gòu): ⑴ module_init()—— 加載模塊函數(shù)(必須) 使用 insmod 命令加載模塊時,內(nèi)核就會執(zhí)行該模塊的加載函數(shù),也就是說這就是整個模塊函數(shù)的入口,就是通過它來完成模塊的初始化相關(guān)工作。 I2C 總線在傳送數(shù)據(jù)過程中共有三種類型信號,它們分別是開始信號、結(jié)束信號和應(yīng)答信號 [9]。本文就是 介紹基于 I2C總線的 Linux字符設(shè)備驅(qū)動。 I2C 總線簡介 I2C總線是一種由 Philips公司開發(fā)的兩線式串行總線標(biāo)準(zhǔn),用于鏈接微控制器及其外圍設(shè)備。另外一鐘新接口是基于 Linux 設(shè)備驅(qū)動程序的。另外如果 RTC 擁有了 IRQ 中斷并且可以定時,那么 RTC 還可以作 為一個鬧鐘用來在內(nèi)核睡眠時喚醒內(nèi)核。當(dāng) Linux內(nèi)核啟動時,都要通過 RTC 來進行初始化,從 RTC 中讀取時間保存到系統(tǒng)中,得到系統(tǒng)時間。硬件時間指的就是 RTC 芯片自主維護的時間,因為 RTC 芯片是電池供電的,所以在硬件平臺掉電后時間表不會丟失。 基于 Linux 操作系統(tǒng)下 RTC 驅(qū)動開發(fā) 10 第 5 章 RTC 芯片 RTC 芯片簡述 RTC(real time clock)實時時鐘,顧名思義,擁有真實時間的時鐘,其實它的主要作用就是在操作系統(tǒng)沒有工作的時候自主維護時間表,并在需要的時候給操作 系統(tǒng)提供系統(tǒng)時間。 ⑻ /lib 該目錄是編譯默認(rèn)路徑,包含了內(nèi)核絕大部分的庫文件與代碼。 ⑹ /documentation 該目錄下是對每個目錄作用的具體說明的文檔以 及一些功能的實例,就相當(dāng)于產(chǎn)品說明書。 ⑷ /init 該目錄中包含內(nèi)核的所有硬件初始化代碼,這是內(nèi)核所有工作的起點,像是 和 這兩個 C 語言程序的編譯入口文件就在其中,同時也是是所有進程的最初父進程。 ⑵ /include 該目錄包括編譯核心所需要的大部分 頭文件,也是 Linux 下程序編譯的查找默認(rèn)路徑。(假設(shè)相對于 ): 圖 41 Linux 根目錄 其中有幾個比較重要的需要著重了解: ⑴ /drivers 驅(qū)動目錄,該目錄是所有被加載到內(nèi)核的設(shè)備驅(qū)動的程序。 蚌埠學(xué)院本科畢業(yè)設(shè)計(論文) 9 第 4 章 Linux 內(nèi)核 現(xiàn)在自己的當(dāng)前目錄,即 ~目錄下,解壓自己的內(nèi)核源代碼: tar xvzf 解壓 Linux 內(nèi)核源碼包,在當(dāng)前目錄下生成一相應(yīng)的文件夾 ,這就是該內(nèi)核的所有實現(xiàn)代碼。 就是 通過Boot Loader 來實現(xiàn) 初始化硬件設(shè)備,從而 給操作 系統(tǒng) 提供了 一個合適的軟硬件環(huán)境,并為調(diào)用它做好準(zhǔn)備 。 從 網(wǎng)站下載 Linux 的內(nèi)核源代碼 。在獲得 Red Hat 的 iso 文件后,在創(chuàng)建的虛擬機中安裝該 Linux 操作系統(tǒng)。 512M 的內(nèi)存空間。 虛擬機 其實就 是 在主機中占用一塊內(nèi)存在主機的硬件平臺上搭建一個類似主機的運行環(huán)境, 在 VMware 中,你可以在一個 以主機的分割的內(nèi)存為基礎(chǔ)的 窗口中加載一臺 虛擬機 ,運行自己的 操作系統(tǒng)和 應(yīng)用程序 ,而不影響主機任何操作 。 Tiny210 硬件配置 如圖 21: 蚌埠學(xué)院本科畢業(yè)設(shè)計(論文) 7 軟件支持 ⑴ Superboot210 ⑵ Android + ⑶ Android ⑷ WindowsCE6 基于 Linux 操作系統(tǒng)下 RTC 驅(qū)動開發(fā) 8 第 3 章 移植前準(zhǔn)備 軟件平臺的搭建 虛擬機的安裝 在有了硬件平臺的支持下( Tiny210 開發(fā)板)開始進行軟件平臺的搭建。 S5PV210內(nèi)部集成了PowerVR SGX540高性能圖形引擎,支持 3D 圖形流暢運行,并可流暢播放 1080P 大尺寸視頻 [4]。 基于 Linux 操作系統(tǒng)下 RTC 驅(qū)動開發(fā) 6 第 2 章 Tiny210 開發(fā)板 Tiny210 簡介 Tiny210是一款高性能的 Cortex A8核心板,它由廣州友善之臂設(shè)計 、生產(chǎn)和發(fā)行銷售。 ⑺ 支持多種平臺 Linux 作為一種嵌入式操作系統(tǒng),在各種移動裝置上應(yīng)用廣泛。 ⑹ 可靠的安全、穩(wěn)定性能 Linux 采取了許多 安全技術(shù)措施 為內(nèi)部信息安全提供了保障。 ⑸ 豐富的網(wǎng)絡(luò)功能 Unix 最大的優(yōu)勢就是其強大的網(wǎng)絡(luò)功能,而從 Unix 衍生出來的 Linux 系統(tǒng)也繼承蚌埠學(xué)院本科畢業(yè)設(shè)計(論文) 5 了它在網(wǎng)絡(luò)功能上的優(yōu)勢。 ⑷ 良好的界面 因為現(xiàn)在 Windows 系統(tǒng)的強烈影響, Linux 同時具有可以通過鍵盤輸入相應(yīng)的指令來進行操作的字符界面和類似 Windows 圖形界面的 XWindow 系統(tǒng)提供的圖形界面。這保證了各用戶的相對獨立,之間互不影響,都對于自己的文件設(shè)備有自己的權(quán)利。正是由于這一點,每時每刻,每一次的技術(shù)進步,每一種新平臺面世,都有來自世界各地的精英都參與了 Linux 的更新和實現(xiàn),無數(shù)的靈感 跟不斷進步的技術(shù)與編程思想,讓 Linux有了無窮的可能性,并在無數(shù)程序員的努力下不斷壯大。 ⑵ 完全免費,發(fā)展迅速 Linux 是一款完全免費的操作系統(tǒng)。 Linux 的特性 ⑴ 完全兼容 因為 Linux 兼容了 標(biāo)準(zhǔn),所以一些常見的 Windows 的程序完全可以在Linux 上無障礙運行,這也 為用戶從 Windows 轉(zhuǎn)到 Linux 提供了方便。直到現(xiàn)在,Linux 還是提供網(wǎng)站服務(wù)供應(yīng)商最常使用的平臺。主流的Linux 發(fā)型版有 Ubuntu, Red Hat 等等 。 Linux 發(fā)行版 通常來講,一個 Linux 的發(fā)行版不僅僅是指 Linux 內(nèi)核,還包括了使用 Linux 的軟件的安裝工具,以及各種工具軟件,而在一些特定的版本中中也有一些特定軟件,只不過現(xiàn)在都習(xí)慣于把它們統(tǒng)稱為 Linux 發(fā)行 版。直到今天,包括現(xiàn)在的 Red Hat公司在內(nèi)的很多公司都會在發(fā)布許多 Linux 的新版本時選擇了這個日子。這段消息就是直到今日都廣為流傳的被稱為 Linux 的誕生宣言。 而在 萊納斯 8 月 25 日發(fā)布的消息中,他第一次向外界透露出有開發(fā)免費的操作系統(tǒng)的意向,可是它并不會象 GNU 那種現(xiàn)在已經(jīng)在行業(yè)中成型的系統(tǒng)那樣專業(yè),而代碼量不會很大 [1]。 在 1991 年 初 ,萊納 斯 在學(xué)習(xí) MINIX的 操作系統(tǒng) 的時候產(chǎn)生了 開發(fā)一個新的 屬于自己的理想中的 操作系統(tǒng)的想法。對于萊納斯 來說,已經(jīng) 等不及了 。甚至MINIX 也因為版權(quán) 開始需要購買 才能 獲得源代碼。蘋果的操作系統(tǒng) MacOS 的是無疑是最好的性能,但價格高,沒有人可以輕易接近。 在它推出的前 10 年內(nèi) , MSDOS 操作系統(tǒng)主宰了整個計算機操作系統(tǒng)界 。減少了開發(fā)的復(fù)雜性,縮短了開發(fā)時間,且具有很強的可擴展、可移植性。在對實際項目 RTC 驅(qū)動開發(fā)的分析設(shè)計的基礎(chǔ)上,采用了以動態(tài)模塊加載方式的字符設(shè)備驅(qū)動模型。 目 錄 中文摘要 ..................
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1