關 閉

        新聞中心

        EEPW首頁 > 安全與國防 > 設計應用 > 基于嵌入式技術的MultiBus-CPU模塊設計

        基于嵌入式技術的MultiBus-CPU模塊設計

        作者: 時間:2010-07-17 來源:網絡 收藏

          

          數組里每個元素的第1個值代表寄存器的名稱,第2個值代表要設定的數值(1個十六進制的數)。32h寄存器用于設定LCD顯示的水平像素數目,計算方法是把第2個值轉換成十進制,加1再乘以8就得出水平像素。例如,0x63換算成十進制為99,加1乘以8就是800。38h和39h寄存器分別設置成0x57和Ox02,就可以顯示600的垂直分辨率。計算方法是以39h寄存器的bitO和bitl位為高位,38h寄存器的bit0~bit7為低位,組成的一個十六進制的數,再轉換成十進制。除了要修改這3個寄存器外,34h和3Ah這兩個寄存器也會對顯示的分辨率有影響。

          幀緩沖設備也屬于字符設備,要通過“文件層一驅動層”的接口方式來對LCD進行驅動,就必須對File_operationes數據結構的參數fh_ops進行填充,并實現其對應的成員函數。本系統在include/Limix/fb.h中定義了幀緩沖區的文件操作,部分代碼如下:



          這個結構中的每一個字段都必須指向驅動程序中實現特定操作的函數。對于不支持的操作,對應的字段可以被置為NULL,或留到后續開發時再添加。本中實現特定操作的成員函數的代碼如下:



          接下來把一些調用的函數寫完整,編寫好程序后用arm-linux-gcc編譯驅動;然后對其動態加載,或靜態將其編譯到Linux內核;加載完程序后,就可以編寫應用程序進行讀/寫等操作了。

          4.2 MiniGUI的移植

          在嵌入式開發環境中,獨立的顯示操作人機界面是非常必要的。它可以使嵌入式系統對PC系統的依賴性降到最低,可以直接操作嵌入式系統并顯示運行結果。MultiBus-CPU采用標準的USB鍵盤、USB鼠標、VGA顯示器作為人機交互界面,使用習慣類同于PC機,簡易了開發者的開發過程,并且用戶的使用過程也變得簡單、快捷、易于操作。

          MiniGUI是遵循GPL條款發布的自由軟件,其目標是為基于Linux的實時嵌入式系統提供一個輕量級的圖形用戶界面支持系統。與QT/Embedded、MicoroWindows等其他GUI相比,MiniGUI的最顯著特點就是輕型、占用資源少。據稱MiniGUI能夠在CPU主頻為30MHz、僅有4 MB RAM的系統上正常運行,這是其他多種GUI所無法達到的。

          MiniGUI在AT91RM9200上的移植包括4個步驟:

          ①構建Linux交叉編譯環境。通常使用的交叉編譯工具是arm-Linux-gcc2.95.3版本。下載此交叉編譯工具后在Linux內安裝好,并且在PATH中添加/usr/local/arm-Linux/bin路徑,交叉編譯環境就構建好了。

          ②交叉編譯MiniGUI,這是最關鍵的一步。首先從網上下載MiniGUI源程序包(包括庫文件和資源文件),以及其他支持圖形界面的源程序包;然后用上一步安裝好的交叉編譯工具對其進行編譯,編譯時可指定編譯后庫文件及資源文件的安裝位置。

          ③拷貝MiniCUI資源到開發板。將第2步編譯好的庫文件及資源文件拷貝到開發板上。拷貝之前先用arm-Linux-strip命令清除文件中的調試信息,這樣就使文件體積大大縮小,可以滿足嵌入式系統的需要。

          ④板載Linux的MiniGUI環境配置。將第2步安裝好的MiniGUI配置文件MiniGUI.cfg下載到板子中,并將其中fbcon的defaultmode設置為合適的顯示模式。

        結 語

          本文基于設計了一種MultiBus-CPU模塊,能夠滿足各種嵌入式開發環境的設計要求。該模塊軟硬件均采用模塊化設計,采用國外廣泛應用的ModBus通信協議,可滿足工業現場的測控需要。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐津县| 阿荣旗| 秦安县| 岳阳市| 阿拉善盟| 日喀则市| 平顶山市| 永清县| 无为县| 沙田区| 秦皇岛市| 庆云县| 广昌县| 黄山市| 新建县| 伊金霍洛旗| 朔州市| 稷山县| 锦屏县| 湄潭县| 德州市| 琼中| 老河口市| 萍乡市| 民乐县| 兰溪市| 广平县| 恩施市| 沁源县| 郎溪县| 邛崃市| 赤峰市| 资溪县| 江永县| 南江县| 千阳县| 敦煌市| 色达县| 施秉县| 宁明县| 临湘市|