【正文】
Science in Hunan City University, YiYang, Hunan, 413000, China) Abstract: With the development of embedded systems technology, the 32bit RISC processor, such as ARM, bined with open source project of free and the embedded operating system platform of Linux which play excellent performance on embedded development bee more and more popular in embedded handheld device makers, showing a huge market value and broad application prospects in recent years. In this thesis, research and resolve issues has been done is to design a Linuxbased embedded systems of KTV VOD . This thesis mainly include the following ,It starts with the KTV backgroud and tatus quo,analyses with people39。s current demands,points out the necessity of developing the Linuxbased embedded systems of KTV ,it introduces the platform of the hardware,and it also tells us the way to establish the software development ,it describes the support platform selection of embedded ,it tells us how to pile the kernel and customize the root file ,it inform us the way to install and crosspilation the graphics system MiniGUI and the embedded database ,it analysis the programing of MiniGUI and mSQL,and how mSQL functions embedded operating procedures for program design at last,summaries the design flaws and proposes appropriate solutions. Throughout the design and implementation of the project,I runs into some issues, such as the hardware section for sata interface hard drives do not support and the usability of the software,the implementation of the graphical interface and the database , since time is limited, I failed to finish the player support, and audio driver, and ultimately it is only offord to select song. Keywords: embedded systems。MiniGUI。kernel。Li nux。mSQL DBMS 3 1 緒論 引言 當(dāng)前,各類信息極度豐富,數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高度發(fā)達,常需借助各種計算機對各類信息進行處理。同時,這些計算機不再局限于以前的 PC,而是包括形態(tài)各異、性能千差萬別的各類嵌入式系統(tǒng) —— 從基于群集的超級計算機到嵌入在冰箱中的微控制器。 后 PC 時代的到來,使得人們開始越來越多地接觸到一個新的概念 —— 嵌入式產(chǎn)品。嵌入式產(chǎn)品遍布于人們的日常生活,從手機、 PDA 到家中的空調(diào)、冰箱,從小汽車到波音飛機,甚至武器庫中的巡航導(dǎo)彈。數(shù)字時代的標(biāo)志不再是一臺一臺的 PC,而是形 態(tài)各異的嵌入式系統(tǒng)。 嵌入式 KTV 點歌 系統(tǒng)概述 本系統(tǒng)設(shè)計主要使用了 mSQL 管理數(shù)據(jù),操作系統(tǒng)使用 Linux,用戶圖形界面使用了 MiniGUI。在硬件上,選用了低功耗、高性能的 ARM9 處理器,涉及到的主要技術(shù)有嵌入式技術(shù)、數(shù)據(jù)庫技術(shù)、用戶圖形界面編程技術(shù)。 點歌系統(tǒng)由客戶端、服務(wù)器組成??蛻舳瞬捎们度胧郊夹g(shù)實現(xiàn),用戶可以通過它來查詢歌曲。服務(wù)器充當(dāng)數(shù)據(jù)管理員的角色,可以對數(shù)據(jù)進行增刪改查操作。由于人力物力財力等資源的有限,本文設(shè)計并實現(xiàn)了一個功能簡單的 KTV 點歌系統(tǒng) 。 論文的主要工作 搭 建開發(fā)平臺。安裝 Linux 和 Windows 雙操作系統(tǒng) ,熟悉 Linux 下編程。 對 Linux 內(nèi)核進行裁剪,制作根文件系統(tǒng)。 下載并安裝 MiniGUI 和 mSQL,并對他們進行配置。 進行 MiniGUI 應(yīng)用程序的編寫,做出 KTV 點歌系統(tǒng)的圖形化界面,其中包括主機端和客戶端。 進行數(shù)據(jù)庫的操作,用 C 的 API 函數(shù)與數(shù)據(jù)庫交互。 將 mSQL 嵌入到 MiniGUI 中進行程序設(shè)計。 編寫系統(tǒng)通信模塊,實現(xiàn)主機端與客戶端的交互。 交叉編譯程序,使系統(tǒng)在開發(fā)板上運行起來。 4 2 系統(tǒng)平臺分析 JXARM924101 教學(xué)實驗系統(tǒng)的硬件部分包括基本模塊、調(diào)試模塊、通信模塊、人機交互模塊、 A/D 及 D/A 模塊、工業(yè)控制模塊、 IDE/CF/SD/MMC 接口模塊、 GPRS 模塊、 GPS 模塊和擴展模塊。目標(biāo)處理器采用 Samsung 公司的S3C2410X 微處理器。主板包括 3 個 UART 接口,標(biāo)準(zhǔn) JTAG 接口, 10M/100M以太網(wǎng)卡, 2 個 USB HOST 接口, 英寸、 STN 256 色 LCD 顯示器 /觸摸屏 ,640X480 的分辨率。系統(tǒng)具有體積小、功耗低、處理能力強等特點。 開發(fā)板芯片 S3C2410X 簡介 S3C2410X 微處理器是一款 由 Samsung 公司 為手持設(shè)備 設(shè)計的低功耗、高集成度的 基于 ARM920T 核的微處理器。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中集成了以下的部件: 16KB 指令 Cache、 16KB 數(shù)據(jù) Cache、 MMU、外部存儲控制器、 LCD 控制器( STN 和 TFT)、 NAND Flash 控制器、 4 個 DMA 通道、 3 個 UART 通道、 1 個 I2C 總線控制器、 1 個 I2S 總線控制器,以及 4 個 PWM定時器和 1 個內(nèi)部定時器、通用 I/O 口、實時時鐘、 8 通道 10 位 ADC 和觸摸屏接口、 USB 主、 USB 從、 SD/MMC 卡接 口等。 開發(fā)環(huán)境 由于嵌入式系統(tǒng)一般資源都比較緊張,不能在本機(即開發(fā)板)運行開發(fā)工具,因此,嵌入式系統(tǒng)的開發(fā)采用一種叫做交叉編譯調(diào)試的方式 , 需要在宿主機上安裝 如 交叉編譯工具鏈,建立 tftp 服務(wù)器,構(gòu)建網(wǎng)絡(luò)文件系統(tǒng) nfs 等。 交叉編譯工具鏈 交叉編譯工具鏈的目的是為了在一個平臺體系結(jié)構(gòu)下能編譯、鏈接、處理和調(diào)試另一個平臺體系結(jié)構(gòu)下的程序,使得編譯生成的程序能夠在另一個平臺下運行。 Linux 使用的是 GNU的工具鏈,包括: binutils, gcc, glibc 等。 與 JXARM924101 開發(fā)板配套的光盤里有交叉編譯工具鏈,版本號為,解壓在宿主機的 /usr/local/arm/ 目錄下。同時,移植 mSQL 時也會用到版本號為 的交叉編譯工具鏈。具體情況可見參考文獻 [1]。 建立 tftp 服務(wù)器 本系統(tǒng)已安裝 tftp 服務(wù)器程序,僅需配置。 在宿主機上執(zhí)行: $setup,然后 5 選擇 System service,將其中的 tftp 一項選中,并去掉 ipchains 和 iptable 兩項服務(wù),還要選擇 Firewall configuration,選中 No firewall。 保存并 退出 setup,執(zhí)行service xid restart 命令以啟動 tftp 服務(wù)。 配置 NFS 服務(wù) 本系統(tǒng)已安裝 NFS 服務(wù)器程序,僅需配置。 編輯 /etc/exports 文件,命令是$vi /etc/exports,在該空文件中添加 /tftpboot ( rw),其中 ―/tftpboot‖是共享的目錄,也是目標(biāo)系統(tǒng)的根文件系統(tǒng)目錄 , ―‖表示目標(biāo)板的 IP 地址 。用命令 $/etc/,設(shè)置 生效。 設(shè)置 mini 在 Linux操作系統(tǒng)下,使用 mini作為超級終端,因此首先必須正確配置超級終端。在宿主機端 Linux下執(zhí)行: mini –s 圖 mini配置 1 第一次使用時需要對串口進行配置, 參照 上 圖 ,相應(yīng)輸入左邊的―A‖、 ―B‖等字符將出現(xiàn)配置各自參數(shù)的界面,分別配置成 上 述設(shè)置 , 保存 并退出后 將啟動 mini程序,此時將 JXARM92410的 UART0連接到 PC機串口并將JXARM92410上電 既可 。 6 3 定制 板上系統(tǒng) 開發(fā)板 Linux 內(nèi)核 Linux 是一個類似于 Unix 的操作系統(tǒng),不僅能夠運行在 PC 上,在嵌入式系統(tǒng)方面也有很成熟的應(yīng)用,已成為嵌入式操作系統(tǒng)的理想選擇。將 Linux 內(nèi)核移植到 ARM 的時候要打上 ARM 公司的補丁。創(chuàng)維特開發(fā)板上的系統(tǒng)打的是 補丁。該系統(tǒng)除了完成基本的內(nèi)核移植外,還完善了大量外圍設(shè)備的驅(qū)動。 移植 Linux 內(nèi)核 對于嵌入式 Linux 系統(tǒng)來說,內(nèi)核移植工作主要是修改跟硬件平臺相關(guān)的代碼,一般不涉及 Linux 內(nèi)核通用的程序。移植的難度也取決于 兩種硬件平臺的差異。 Linux 對于特定的硬件平臺的軟件就 是 BSP( Board Support Package)。 由于 Linux 內(nèi)核具備可移植性的特點,并且已經(jīng)支持了各種體系結(jié)構(gòu)的很多種目標(biāo)板,很容易從中找到 和 自己硬件類似的目標(biāo)板。參考內(nèi)核已經(jīng)支持的目標(biāo)板來移植 BSP,就如同使用模板開發(fā)程序。內(nèi)核移植工作, 主要 就是添加開發(fā)板初始化和驅(qū)動程序的代碼。這部分代碼大部分是跟體系結(jié)構(gòu)相關(guān)的,在 arch 目錄下按照不同的體系結(jié)構(gòu)管理。下面進行 ARM S3C2410 平臺內(nèi)核代碼移植。 添加開發(fā)板平臺支持選項,主要修改以下 幾個文件: arch/arm/machs3c24 arch/arm/tools/machtypes、 arch/arm/、 arch/arm/Makefile、 arch/arm/boot/pressed、 include/asmarm/archs3c2410 S3C2410 屬于片上系統(tǒng),處理器芯片具備串口、顯示等外圍接口的控制器。這樣,參考板上的設(shè)備驅(qū)動程序多數(shù)可以直接使用。但不同的開發(fā)板可以使用不同的 SDRAM、 Flash、以太網(wǎng)接口芯片等。這就需要根據(jù)硬件修改或者開發(fā)驅(qū)動程序。 Linux 內(nèi)核的配置和編譯 配套光盤中 Linux源代碼在 /home/cvtech/jx2410/linux目錄中。對于交叉開發(fā),在編譯之前要在頂層的 Makefile 中設(shè)置 ARCH、 CROSS_COMPILE 和EXTRA_VERSION 變量,然后才能選擇配置出特定的體系結(jié)構(gòu)平臺。 ARM 平臺的例子如下: ARCH : = arm 7 CROSS_COMPILE : = armlinux EXTRA_VERSION : = 配置內(nèi)核 $ cd /home/cvtech/jx2410/linux $make menuconfig 運行效果如圖 所示: 圖 內(nèi)核編譯 menuconfig 界面 啟動菜單配置工具后,選擇 Load an Alternate Configuration File 選項,然后確認(左右箭頭鍵移動選擇到 Select,然后鍵入回車鍵)。該選項將載入 jx2410的標(biāo)準(zhǔn)配置文件 configjx2410,此文件保存在 /home/cvtech/jx2410/linux 目錄下,不要修改此文件。 在提示框中鍵入 configjx2410 配置文件名,然后單擊 OK 按鈕確認,其他 配置默認,保存退出。 建立依賴關(guān)系 make dep 編譯 8 編譯:可以通過 make 或者 make zImage 進行編譯,他們的差別在于 make zImage 將 make 生成的核心進