<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于TQ2440和Linux的觸摸屏的驅動研究

          基于TQ2440和Linux的觸摸屏的驅動研究

          作者: 時間:2012-03-16 來源:網(wǎng)絡 收藏

          2 程序

          2.1 建立嵌入式系統(tǒng)開發(fā)環(huán)境

          建立此開發(fā)環(huán)境的步驟為:

          (1)在Windows XP SP3系統(tǒng)下安裝虛擬機vmware5.5.3,在虛擬機里安裝Redhat9.0系統(tǒng)。在Redhat9.0系統(tǒng)下編譯開發(fā)板所需的鏡像和文件,使用虛擬機工具實現(xiàn)了Windows和Redhat的文件共享,在Windows系統(tǒng)下可以直接下載鏡像和文件到開發(fā)板上。

          (2)使用Windows XP SP3自帶的超級終端,并使用串口線連接PC和開發(fā)板。這樣就可以在PC上對開發(fā)板進行相關的操作。

          (3)本次實驗開發(fā)板使用的是2.6.30.4內核,而Redhat9.0系統(tǒng)是2.4.20.8內核,所以需要下載適合開發(fā)板的編譯器。下載最新版本的支持EABI技術的交叉編譯器(本次實驗使用的是EABI_4.3.3_2009版本),復制到Redhat9.0系統(tǒng)目錄/opt/EABI_4.3.3_2009/下,打開系統(tǒng)文件/etc/profile(可在終端使用命令vim /etc/profile),添加相應語句(本次實驗使用vim命令打開profile文件,在第20行添加語句pathmunge/opt/EABI_4.3.3_2009/4.3.3/bin)讓編譯器生效,這樣就可以在PC上交叉編譯開發(fā)板所需要的文件。至此開發(fā)環(huán)境已經(jīng)建立。

          2.2 內核的移植

          本次實驗使用的boatload是天嵌公司自己開發(fā)的u-boot,用J-TAG燒寫方式寫入NOR Flash,然后便可以使用u-boot自帶的USB下載(需要在Windows下安裝USB下載程序)功能下載開發(fā)板上需要的Linux內核鏡像了,這樣方便而且高效。下載Linux2.6.30.4內核源代碼,復制到Redhat9.0系統(tǒng)目錄/opt下,并解壓。在目錄/opt/linux2.6.30.4/目錄下便可以進行修改和編譯開發(fā)板上需要的內核鏡像。在移植之前,需要移植板載256 MB NAND Flash的驅動、yaffs文件系統(tǒng),這樣便完善了串口驅動程序,最后移植LCD屏的驅動。

          2.3 驅動程序

          Linux系統(tǒng)將存儲器和外設分為字符設備、塊設備、網(wǎng)絡設備三大類。觸摸屏屬于字符設備,以串行順序依次進行訪問。在Linux系統(tǒng)中,以文件名的形式在/dev目錄下建立觸摸屏設備文件, 應用程序可以通過系統(tǒng)調用函數(shù)open()打開此文件,建立起與設備的連接,然后通過函數(shù)read()、write()、release()、ioctl()等常規(guī)的文件操作對目標設備進行操作。Linux為了把所有的設備當作文件系統(tǒng)進行管理,為所有的文件及設備文件定義了統(tǒng)一的操作函數(shù)接口file_operations,每個文件都通過指向file_operations結構的指針字段與它自己的函數(shù)集相關聯(lián)。file_operations中成員為一系列指向各操作函數(shù)的指針,這些操作函數(shù)主要負責系統(tǒng)調用的實現(xiàn),不同類型的設備文件系統(tǒng)有不同類型的file_operations結構[4]。觸摸屏的 file_operations 結構定義為:
          static struct file_operation s3c2410_fops=
          {
          owner: THIS_MODULE,
          open: s3c2410_ts_open,//打開
          read: s3c2410_ts_read,//讀坐標
          release:
          s3c2410_ts_release,
          #ifdef USE_ASYNC
          Fasync:s3c2410_ts_fasync,//fasync()函數(shù)
          #endif
          poll:s3c2410_ts_poll,//輪詢
          }

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();