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

正文內(nèi)容

基于arm嵌入式系統(tǒng)的觸摸屏驅(qū)動(dòng)程序開發(fā)-文庫吧資料

2025-06-13 15:21本頁面
  

【正文】 ck\n)。 } 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 22 頁 clk_enable(adc_clock)。 if (!adc_clock) { printk(KERN_ERR failed to get adc clock source\n)。 static int __init gt2440ts_init(void){ struct input_dev *input_dev。 } } return IRQ_HANDLED。touch_timer, jiffies+1)。 iowrite32(ioread32(base_addr+S3C2410_ADCCON) | S3C2410_ADCCON_ENABLE_START, base_addr+S3C2410_ADCCON)。 count++。 yp += data1 amp。 xp += data0 amp。 if (OwnADC) { data0 = ioread32(base_addr+S3C2410_ADCDAT0)。 } 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 21 頁 static irqreturn_t stylus_action(int irq, void *dev_id) { unsigned long data0。ADC_LOCK)。 } else { OwnADC = 0。 S3C2410_ADCDAT0_UPDOWN))。amp。 updown = (!(data0 amp。 data0 = ioread32(base_addr+S3C2410_ADCDAT0)。 if (down_trylock(amp。 unsigned long data1。 } } } static struct timer_list touch_timer = TIMER_INITIALIZER(touch_timer_fire, 0, 0)。 up(amp。 iowrite32(WAIT4INT(0), base_addr+S3C2410_ADCTSC)。 input_report_abs(dev, ABS_PRESSURE, 0)。 } else { count = 0。 iowrite32(S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST, base_addr+S3C2410_ADCTSC)。 yp = 0。 input_sync(dev)。 input_report_key(dev, BTN_TOUCH, 1)。 input_report_abs(dev, ABS_X, xp)。 if (updown) { if (count != 0) { xp = 2。 (!(data1 amp。 S3C2410_ADCDAT0_UPDOWN)) amp。 data1 = ioread32(base_addr+S3C2410_ADCDAT1)。 int updown。 } static void touch_timer_fire(unsigned long data) { unsigned long data0。 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 19 頁 s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON)。 static inline void gt2440_ts_connect(void) { s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPG12_XMON)。 static int OwnADC = 0。 static int count。 static long xp。 Linux 嵌入式系統(tǒng)教程 . 北京:北京航空航天大學(xué)出版社, 2021 [5]魏永明等譯 . LINUX 設(shè)備驅(qū)動(dòng)程序 . 北京:中國電力出版社, 2021 [6]張曉林等 . 嵌入式系統(tǒng)設(shè)計(jì)與實(shí)踐 . 北京:北京航空航天大學(xué)出版社, 2021 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 18 頁 附錄 A 驅(qū)動(dòng)源程序 驅(qū)動(dòng)源程序 /* */ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include linux/ include asm/ include asm/ include plat/ include mach/ define S3C2410TSVERSION 0x0101 define WAIT4INT(x) (((x)8) | S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | S3C2410_ADCTSC_XY_PST(3)) define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0)) static char *gt2440ts_name = GT2440 TouchScreen。 總之,我相信有付出就有回報(bào)! 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 16 頁 致謝 本課題的研究探討以及論文撰寫一直都是在 雷俊紅 老師的細(xì)心指導(dǎo)下進(jìn)行的,可以說其中的每個(gè)環(huán)節(jié)都傾注了 雷俊紅老師的智慧和心血,在此 表示感謝。 接下來,我對(duì)在這次課程設(shè)計(jì)中遇到的問題和解決方法進(jìn)行個(gè)總結(jié): 1. 目標(biāo)板和宿主機(jī)不能 Ping 通 解決方法: (1) 看交叉網(wǎng)線是否接觸正常 (2) 檢查開發(fā)板上的網(wǎng)口驅(qū)動(dòng)是否掛載 (3) 開發(fā)板的 IP 地址必須要和宿主機(jī)的 IP 地址在一個(gè) IP 段內(nèi),例如 .*和 .**就在一個(gè) IP 段內(nèi) (4) 關(guān)閉 Linux 的防火墻 2. 使用 NFS 共享目錄時(shí),掛載共享目錄不成功 解決方法: (1) 檢查目標(biāo)板和宿主機(jī)是否能 Ping 通(這是基礎(chǔ)) (2) 查看 NFS 服務(wù)和端口監(jiān)聽服務(wù)的狀態(tài)(命令分別是/etc/),如果是關(guān)閉請打開(命令分別是 /etc/) 3. 由于對(duì) Linux 內(nèi)核不熟悉,所以在分析觸摸屏的驅(qū)動(dòng)代碼時(shí),遇到了不少問題 解決方案: (1) 通過對(duì)網(wǎng)上的教學(xué)視頻和資料的學(xué)習(xí),初步了解了其構(gòu)架 (2) 分析代碼中所用到的函數(shù)和宏定義 4. makefile 的編寫問題,經(jīng)常出錯(cuò) 這個(gè)問題不好解決,因?yàn)?makefile 文件的編寫比較難,不是短時(shí)間能解決的。應(yīng)用相當(dāng)來說不是太難,只要注意到一些特有的函數(shù) ,庫文件,問題不是太大。 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 15 頁 第五章 結(jié)束語 本次畢業(yè) 設(shè)計(jì)順利完成了 觸摸屏 驅(qū)動(dòng)開發(fā)的設(shè)計(jì),完成了 畢業(yè) 設(shè)計(jì)的基本要求。 (2) 通過網(wǎng)絡(luò)文件系統(tǒng) NFS 執(zhí)行 方法:前提是先按照 節(jié)搭建好 NFS 服務(wù)器系統(tǒng),然后在超級(jí)終端中輸入命令 mount –t nfs –o nolock :/home/share /mnt/nfs 為宿主機(jī)的 IP 地址 , /home/share 是宿舍機(jī)上的共享目錄;/mnt/nfs 是目標(biāo)機(jī)上的共享目錄。 ( 2) .驅(qū)動(dòng)程序?qū)崿F(xiàn)過程 建立觸摸屏程序 ,首先實(shí)現(xiàn)加載和卸載部分,在驅(qū)動(dòng)加載部分:啟用 ADC 所需要的時(shí)鐘、映射 IO 口、申請中斷( 觸摸屏中斷和 ADC 中斷 ) 、初始化輸入設(shè)備、將輸入設(shè)備注冊到 輸入 子系統(tǒng)中。下面用圖形來描述一下這三者的關(guān)系吧! 圖 輸入子系統(tǒng)結(jié)構(gòu)圖 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 13 頁 驅(qū)動(dòng)程序的實(shí)現(xiàn) 原理與 步驟 ( 1) .驅(qū)動(dòng)程序的實(shí)現(xiàn)原理 在 Linux 中, Input 設(shè)備用 input_dev 結(jié)構(gòu)體描述,定義在 中。其中設(shè)備驅(qū)動(dòng)層提供對(duì)硬件各寄存器的讀寫訪問和將底層硬件對(duì)用戶輸入訪問的響應(yīng)轉(zhuǎn)換為標(biāo)準(zhǔn)的輸入事件,再通過核心層提交 層給事件處理層;而核心層對(duì)下提供了設(shè)備驅(qū)動(dòng)層的編程接口,對(duì)上又提供了事件處理層的編程接口;而事件處理層就為我們用戶空間的應(yīng)用程序提供了統(tǒng)一訪問設(shè)備的接口和驅(qū)動(dòng)層提交來的事件處理。 最后使用 /etc/監(jiān)聽服務(wù),再用 /etc/服務(wù)和端口監(jiān)聽服務(wù) 使之配置生效。 接下來運(yùn)行命令 gedit /etc/exports 在打開的 NFS 服務(wù)的配置文件中添加以下內(nèi)容: /home/share (rw,sync,no_root_squash) 其中: /home/share 表示 NFS 共享目錄,它可以作為開發(fā)板的根文件系統(tǒng) 是開發(fā)板的 IP 地址,注意 IP 地址前有空格。 當(dāng)所有的參數(shù)都設(shè)置好后,超級(jí)終端就配置好了 。 超級(jí)終端會(huì)要求你為新的連接取個(gè)新的名字,我在配置的時(shí)候取的是“ tty”。 接下來彈出來的窗口,選擇“取消”。 建立交叉編譯環(huán)境 將 拷貝到目錄 /opt 下,然后進(jìn)入該目錄,執(zhí)行解壓命令: mv /opt cd /tmp tar xvzf –C 然后再運(yùn)行如下命令: gedit /root/.bashrc 在打開的文件的末尾加上如下內(nèi)容: export PATH=$PATH:/opt/usr/locla/arm/ 然后保存退出 重新登錄 Redhat 系統(tǒng),使以上設(shè)置生效,在命令行輸入 armlinuxgcc –v, 會(huì)出現(xiàn) armlinuxgcc 的版本號(hào),這說明交叉編譯環(huán)境已經(jīng)安裝成功。因此嵌入式系統(tǒng)軟件的開發(fā)通常采用交叉編譯的方式。 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 10 頁 第三章 嵌入式系統(tǒng)開發(fā)環(huán)境的搭建 絕大多數(shù) 的軟件開發(fā)都是以本地編譯方式進(jìn)行的,即在本機(jī)上開發(fā)編譯、本機(jī)上運(yùn)行的方式。完成設(shè)備注冊加載之后,系統(tǒng)將設(shè)備驅(qū)動(dòng)加載到內(nèi)核中,在用戶空間的用戶應(yīng)用程序就可以通過調(diào)用驅(qū)動(dòng)程序的功能接口函數(shù)對(duì)該設(shè)備進(jìn)行操作。命令格式為: mknod /dev/設(shè)備名 type major minor type 為設(shè)備類型, c 為字符設(shè)備; b 為塊設(shè)備。 ② 設(shè)備進(jìn)入點(diǎn) 對(duì)每個(gè)設(shè)備都要定義一個(gè)設(shè)備進(jìn)入點(diǎn),該設(shè)備進(jìn)入點(diǎn)的名稱稱為設(shè)備名。 (2)設(shè)備驅(qū)動(dòng)程序的加載過程 ① 設(shè)備號(hào) 嵌入式 Linux 系統(tǒng)通過設(shè)備號(hào)來區(qū)分不同設(shè)備,設(shè)備號(hào)分為主設(shè)備 (0~255)和次設(shè)備。 設(shè)備驅(qū)動(dòng)程序運(yùn)行在內(nèi)核空間,而用戶應(yīng)用程序則運(yùn)行在用戶空間。對(duì)于不同的硬件設(shè)備,其對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序也是不同的。 網(wǎng)絡(luò)接口設(shè)備文件通常指網(wǎng)絡(luò)設(shè)備訪問的接口。 字符設(shè)備文件通常指不需要緩沖就能夠直接讀寫的設(shè)備,它們以字節(jié)為單位進(jìn)行讀寫。 嵌入式驅(qū)動(dòng)程序基礎(chǔ) (1)設(shè)備驅(qū)動(dòng)程序概述 ① 設(shè)備文件 嵌入式 Linux 的一個(gè)重要特點(diǎn)就是將所有的設(shè)備都當(dāng)做文件進(jìn)行處理,所以設(shè)備驅(qū)動(dòng)程序也就是設(shè)備文件。 (3).最后按“【 Esc】”,則當(dāng)前模式轉(zhuǎn)入命令行模式,并在低行中輸入“: wq”進(jìn)入低行模式。 (2).在命令行模式下輸入 i 進(jìn)入插入模式。 西安文理學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 第 8 頁 軟件基本操作 (1).進(jìn)入 Vi,即在命令行下輸入 Vi 文件名。 低行模式:在該模式下,光標(biāo)位于屏幕的低行。 命令行模式:在該模式中可以通過上下移動(dòng)光標(biāo)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1