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

正文內(nèi)容

基于嵌入式linux的點餐系統(tǒng)計算機(jī)科學(xué)與技術(shù)畢業(yè)論文(編輯修改稿)

2024-12-14 05:43 本頁面
 

【文章內(nèi)容簡介】 個 I2S 總線控制器,以及 4 個PWM 定時器和 1 個內(nèi)部定時器、通用 I/O 口、實時時鐘、 8 通道 10 位 ADC 和觸摸屏接口、 USB 主、 USB 從、 SD/MMC 卡接口等。現(xiàn)在它廣泛應(yīng)用于 PDA、移動通信、路由器、工業(yè)控制等領(lǐng)域。 開發(fā)環(huán)境 絕大多數(shù)的 Linux 軟件開發(fā)都是以 本機(jī)開發(fā)方式進(jìn)行的 。由于嵌入式系統(tǒng)一般資源都比較緊張,不能在本機(jī)(即開發(fā)板)運行開發(fā)工具,因此,嵌入式系統(tǒng)的開發(fā)采用一種叫做交叉編譯調(diào)試的方式。為了 進(jìn)行交叉編譯與調(diào)試,需要在宿主機(jī)(運行編譯與調(diào)試工具的機(jī)器)上構(gòu)建一些工具與搭建合適的環(huán)境,比如安裝交 叉編譯工具鏈,建立 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ā)板 配套的光盤里 有交叉編譯工具鏈,版本號為,解壓在宿主機(jī)的 /usr/local/arm/ 目錄下。 同時,移植 mSQL 時也會 7 用到版本號為 的交 叉編譯工具鏈。 具體情況可見參考文獻(xiàn) [1]。 在編譯過程中,經(jīng)常接觸的工具除了交叉編譯工具鏈外,還有一個就是 GNU make 程序。 make 完成開發(fā)項目中自動編譯的工作。 Make 主要是通過 Makefile來完成工作的。 建立 tftp 服務(wù)器 開發(fā)板上使用 uboot 作為 BootLoader,這個 BootLoader 使用 tftp 協(xié)議從宿主機(jī)上下載文件到開發(fā)板上。為了使用 tftp 在宿主機(jī)和開發(fā)板之間傳輸文件,在宿主機(jī)上需要安裝配置 tftp 服務(wù)器。本文的宿主機(jī)安裝的是 完整版,已經(jīng)安裝有 tftp 服務(wù)器程序,僅進(jìn)行適當(dāng)?shù)呐渲眉纯伞? 在宿主機(jī)上執(zhí)行: $setup,然后選擇 System service,將其中的 tftp 一項選中,并去掉 ipchains 和 iptable 兩項服務(wù),還要選擇 Firewall configuration,選中 No firewall。左后,退出 setup,執(zhí)行 service xid restart 命令以啟動 tftp 服務(wù)。 配置 NFS 服務(wù) 網(wǎng)絡(luò)文件系統(tǒng) NFS 極大地簡化了開發(fā)與調(diào)試過程。在沒有 NFS 的情況下,一般的開發(fā)調(diào)試過程都是:編譯生成目標(biāo)板平臺的可執(zhí)行文件 → 制作 ramdisk→下載 ramdisk到開發(fā)板上 → 啟動開發(fā)板的系統(tǒng) → 運行程序。這個過程將一直重復(fù),知道程序的運行結(jié)果正確為止。有了 NFS,開發(fā)板上的系統(tǒng)可以把宿主機(jī)的某目錄當(dāng)作本機(jī)上的目錄甚至是根目錄。這樣,把宿主機(jī)上交叉編譯好的可執(zhí)行文件復(fù)制到 NFS 目錄中,在開發(fā)板上就可以運行該科執(zhí)行文件。開發(fā)調(diào)試過程變?yōu)椋壕幾g生成目標(biāo)平臺的可執(zhí)行文件 → 復(fù)制文件到 NFS 目錄 → 目標(biāo)板上 mount 操作→ 運行程序,省去了制作 ramdisk、下載 ramdisk 和重啟開發(fā)板幾個步驟,而這幾個步驟又是占整個過程絕大部分時間的,因此也 節(jié)省了大量的寶貴時間。 完全安裝版有 NFS 服務(wù)器程序,需要做一些配置才能使其可用。編輯 /etc/exports 文件,命令是 $vi /etc/exports,在該空文件中添加 /( rw),其中―/tftpboot‖是共享的目錄,也是目標(biāo)系統(tǒng)的根文件系統(tǒng)目錄: ―‖表示該服務(wù)提供給所有的主機(jī)和網(wǎng)絡(luò)。然后用命令 $/etc/服務(wù),剛才的設(shè)置就生效了。注意,在使用 NFS 服務(wù)之前應(yīng)確認(rèn)防火墻沒有限制 NFS 服務(wù),并且在系統(tǒng)服務(wù)中 portmap 服務(wù)是啟動運行的。 8 設(shè)置 mini 在 Linux操作系統(tǒng)下,使用 mini作為超級終端,因此首先必須正確配置超級終端。在宿主機(jī)端 Linux下執(zhí)行: $mini –s 圖 mini配置 1 第一次使用時需要對串口進(jìn)行配置,在選擇 ―Serial port setup‖,然后回車將出現(xiàn)如下配置菜單 ,如圖 。 參照 圖 ,相應(yīng)輸入左邊的 ―A‖、 ―B‖等字符將出現(xiàn)配置各自參數(shù)的界面,分別配置成上述設(shè)置。 設(shè)置完成后回車退出,并選擇保存 。 然后選擇 Exit菜 單,將啟動 mini程序,此時請將 JXARM92410的 UART0連接到 PC機(jī)串口并將 JXARM92410重新上電 既可 。 開發(fā)板 BootLoader BootLoader 是 在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運行之前運行的一段小程序。通過這段小程序可以初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。對于一個嵌入式系統(tǒng)來說,可能有的包括操作系統(tǒng),有的小型系統(tǒng)也可以只包括應(yīng)用程序,但是在這之前都需要 BootLoader 為它準(zhǔn)備一個正 9 確的環(huán)境。 武漢 創(chuàng)維 特 JXARM924101 使用 uboot 作為開發(fā)板的 BootLoader。 uboot是由德國 DENX 小組開發(fā)的交叉平臺 BootLoader ,其全稱為 universal BootLoader。 圖 mini配置 2 uboot 的開發(fā)目標(biāo)是支持盡可能多的嵌入式處理器和嵌入式操作系統(tǒng) 。 通過串口鏈接以后,用戶可以交互式地輸入命令和看到結(jié)果。 移植 uboot uboot 能夠支持多種體系結(jié)構(gòu)的處理器,支持的開發(fā)板也越來越多 。 因為BootLoader 是完全依賴硬件平臺的,所以在新電路板上需要移植 uboot。移植uboot 工作就是添加開發(fā)板硬件相關(guān)的文件、配置選項,然后配置編譯。在 版本中已經(jīng)有關(guān)于 S3C2410X 的移植代碼,因此只要進(jìn)行配置選擇正確的移植版本即可,本系統(tǒng)使用的是 smdk2410config 配置。到此, uboot 的移植過程就結(jié)束了,沒做什么工作,只是引用了別人的成果而已。嵌入式系統(tǒng)開發(fā)中這是一個很重要的思想:將硬件配置最接近的開發(fā)板相應(yīng)工具的源碼 做 修改并使之能在目標(biāo)板上運行 。 10 配置和編譯 uboot 進(jìn)入 uboot 所在的目錄 $ cd /home/cvtech/jx2410/ 刪除目錄下編譯的中間文件 $ make distclean 為目標(biāo)板選擇相應(yīng)的配置文件 $ make smdk2410_config 編譯 $ make 燒寫 uboot 如果當(dāng)前系統(tǒng)已經(jīng)有 uboot 燒寫到 flash,也可以通過 uboot 燒寫 。 JX2410 protect off all UnProtect Flash Bank 1 JX2410 erase 1:0 Erase Flash Sectors 00 in Bank 1 Erasing sector 0 ... done JX2410 tftp 30000000 RTL8019AS Founded! MAC : 0x80x00x3e0x260xa0x5b MAC: 0x0:0x0:0x0:0x0:0x0:0x0 TFTP from server 。 our IP address is Filename 39。39。. Load address: 0x30000000 Loading: done Bytes transferred = 126976 (1f000 hex) JX2410 30000000 0 1f000 Copy to Flash...\done 成功后重新上電,執(zhí)行的將是新的 uboot。( JX2410 表示 uboot 控制臺, 11 緊接其后的以黑體和斜體字表示的為在 uboot 控制臺上輸入的命令行,并以回車鍵結(jié)束。 ) 這種方法是在系統(tǒng)中原有的 uboot 正常的情況下進(jìn)行的,如果由于操作失敗或者中途斷電等原因?qū)е聼龑懯?,將使?uboot 無法正常啟動,因此也就不能再使用上述方法燒寫,而只能使用仿真器進(jìn)行燒寫。 12 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 平臺為例,進(jìn)行內(nèi)核代碼移植。 添加開發(fā)板平臺支持選項 ,主要修改以下幾個文件: arch/arm/machs3c2410 arch/arm/tools/machtypes arch/arm/ arch/arm/Makefile arch/arm/boot/pressed include/asmarm/archs3c2410 移植開發(fā)板驅(qū)動程序 S3C2410 屬于片上系統(tǒng),處理器芯片具備串口、顯示等外圍接口的控制器。這樣,參考板上的 設(shè)備驅(qū)動程序多數(shù)可以直接使用。但不同的開發(fā)板可以使用不同的 SDRAM、 Flash、以太網(wǎng)接口芯片等。這就需要根據(jù)硬件修改或者開發(fā)驅(qū)動程序。 13 Linux 內(nèi)核 的配置和編譯 配套光盤中 Linux源代碼在 /home/cvtech/jx2410/linux目錄中。 對于交叉開發(fā),在編譯之前要在頂層的 Makefile 中設(shè)置 ARCH 、 CROSS_COMPILE 和EXTRA_VERSION 變量,然后才能選擇配置出特定的體系結(jié)構(gòu)平臺。 ARM 平臺的例子如下: ARCH : = arm CROSS_COMPILE : = armlinux EXTRA_VERSION : = ( 1) Make menuconfig 對源代碼有相應(yīng)了解后,進(jìn)行內(nèi)核的配置,在宿主機(jī)上使用命令: $ cd /home/cvtech/jx2410/linux $make menuconfig 運行效果如圖 所示: 圖 內(nèi)核編譯 menuconfig 界面 本 設(shè)計中 只用到了調(diào)試模塊、通信模塊、人機(jī)交互模塊等一些基本的模塊,其他很多模塊都沒用到,如 A/D 及 D/A 模塊,工業(yè)控制模塊等。嵌入式系統(tǒng)中 14 資源是非常珍貴的,所以最好能以最小系統(tǒng)進(jìn)行開發(fā)。從此 需 進(jìn)行內(nèi)核裁剪。 在編譯裁剪內(nèi)核的過程中,大部分選項可以使用其缺省值,只有小部分需要根據(jù)用戶不同的需要選擇。選擇的原則是將與內(nèi)核其他部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成可加載模塊,有利于減小內(nèi)核的長度,減小內(nèi)核消耗的內(nèi) 存 ,簡化該功能相應(yīng)的環(huán)境改變時對內(nèi)核的影響;不需要的功能不選;與內(nèi)核關(guān)系緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。例如,本系統(tǒng)中沒有用到 USB 接口,就可以在內(nèi)核編譯的時候?qū)?USB 驅(qū)動模塊不選, 如圖 所示從而減小了內(nèi)核大小。需要指出的是,根據(jù)具體情況,本系統(tǒng)的根文件系統(tǒng)大于16MB,故需要修改內(nèi)核所支持的 ramdisk 的大小,這里將其修改為 20MB。 如圖 所示 。 圖 USB 配置選項 ( 2) Make dep 選擇還內(nèi)核配置選項之后,退出內(nèi)核配置主菜單,并保存配置文件。在 Linux命令終端 輸入 make dep 命令建立內(nèi)核源代碼依賴關(guān)系 。 ( 3) make zImage 編譯:可以通過 make 或者 make zImage 進(jìn)行編譯,他們的差別在于 make 15 zImage 將 make 生成的核心進(jìn)行壓縮,并加入一段解壓的啟動代碼。 生成的 Linux映像文件 zImage 保存在 /home/cvtech/jx2410/linux/arch/arm/boot/目錄下。 燒寫 Linux 映像 zImage 圖 Block device 配置選項 成功編譯 Linux 內(nèi)核后,通過 JX2410 的 uboot 將 核心下載到 SDRAM,另外內(nèi)核啟動過程將加載 RAMDISK 文件系統(tǒng),因此下載 zImage 之前,開發(fā)板需加載了根文件系統(tǒng) 。將 zImage 復(fù)制到宿主機(jī) /tftpboot/目錄下,運行命令 $ cp /home/cvtech/jx2410/linux/a
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1