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

正文內(nèi)容

基于嵌入式系統(tǒng)的圖形界面應(yīng)用設(shè)計范文(文件)

2025-10-25 17:57 上一頁面

下一頁面
 

【正文】 著計算機技術(shù)的發(fā)展,越來越多的嵌入式系統(tǒng)設(shè)備需要良好的人機交互界面,這需要一個高性能、高可靠、占用系統(tǒng)資源少的用戶圖形界面的支持。圖形用戶界面(GUI)是一種結(jié)合計算機科學(xué)、美學(xué)、心理學(xué)、行為學(xué),以及商業(yè)領(lǐng)域需求分析的人機系統(tǒng)工程。用戶模型包含了顯示和交互的主要特征,因此用戶圖形界面有時也僅指用戶模型。具體的嵌入式GUI一般具備如下特點: ,高度可移植 目前,嵌入式GUI的開發(fā)正處于起步階段,有許多技術(shù)難題尚待解決,因此對嵌入式圖形系統(tǒng)的研究成為嵌入式系統(tǒng)研究及發(fā)展中的一個重要內(nèi)容。嵌入式導(dǎo)航計算機主要分為兩部分:硬件電路,嵌入式操作系 統(tǒng)。嵌入式Linux有著嵌入式導(dǎo)航計算機操作系統(tǒng)需要的很多特色:支持多 任務(wù)處理、中斷處理及任務(wù)間通信,性能穩(wěn)定,剪裁性好,開發(fā)與使用都很 方便。具體工作內(nèi)容包括:(1)學(xué)習(xí)Linux操作系統(tǒng)的知識。(5)修改和裁剪Linux ,移植網(wǎng)卡驅(qū)動程序。2 硬件平臺及ARM體系結(jié)構(gòu) 處理器選擇本設(shè)計的處理器選擇高性能、低功耗的ARM9微處理器Samsung S3c2410。此外S3c2410還集成了以下片上功能:(1)16KB指令 Cache和16KB的數(shù)據(jù)Cache;(2)LCD控制器(支持STN和TFT);(3)4通道DMA;(4)3通道UART;(5)2通道USB;(6)4路PWM和 1個內(nèi)部時鐘控制器;(7)117個通用IO,24路外部中斷;(8)16位看門狗定時器;(9)RTC(實時時鐘);(10)1通道IIC/IIS控制器;(11)NAND Flash控制器;(12)PLL數(shù)字鎖相環(huán)。S3c2410還支持從NAND Flash啟動,NAND Flash具有容量大、比NOR Flash價格低等特點。數(shù)據(jù)處理指令只對寄存器進行操作,只有加載/ 存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。用以標識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。ARM微處理器的指令結(jié)構(gòu):ARM微處理器的在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。大小都為16K。嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標準化瀏覽器等Browser。(2)成本低GPL協(xié)議保證了源自Linux的嵌入式Linux也是開放源代碼的自由軟件。這樣可以極大地減小嵌入式軟件開發(fā)的時間和費用,提高系統(tǒng)可靠性。交叉開發(fā)模型如圖21所示:圖31 交叉開發(fā)模型 上位機的軟硬件配置硬件:本課題用到一臺通用PC機和一臺筆記本電腦,其硬件配置如下:PC機:CPU:P IV RAM:256MB 串口:RS232 并口:25針母頭 筆記本電腦: CPU:PM 705 RAM:768MB 網(wǎng)卡:10/100MBps自適應(yīng)網(wǎng)卡 軟件:PC機的操作系統(tǒng)為Windows XP,裝有DNW串口調(diào)試工具以及SJF2410 三星Flash燒寫工具。其中, 是 Linux 的桌面發(fā)行版之一,是當(dāng)今最為流行的桌面Linux 系統(tǒng)。Kernel:用于存放 Linux內(nèi)核源碼。(2)開發(fā)板的JTAG口通過20PIN排線與SUPER JTAG調(diào)試頭相連,再通過25PIN并口線連接到主機的LPT1口。串口調(diào)試:在本課題嵌入式系統(tǒng)中的目標開發(fā)板,采用串口調(diào)試的方法,即把串口當(dāng)作目標開發(fā)板的顯示終端,無論是打印輸出,還是管理配置輸入,都使用串口,這就需要主機系統(tǒng)裝有串口調(diào)試工具。(3)選擇“端口”——“串口(COM1)”,打開的對話框按圖23設(shè)置。 配置TFTP及NFS服務(wù)TFTP 服務(wù)簡介:TFTP(Trivial File Transfer Protocol)協(xié)議即簡單文件傳輸協(xié)議,是TCP/IP協(xié)議族中的一個用來在客戶機與服務(wù)器之間進行簡單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開銷不大的文件傳輸服務(wù)。TFTP 服務(wù)安裝與配置:(1)Ubuntu中安裝tftp工具只需在終端中鍵入命令: $ sudo aptget install tftp tftpd 其中,前者是客戶端,后者是服務(wù)器。所以,可以簡單的將它看做是一個文件服務(wù)器(file server)。(2)配置/etc/exports:NFS 掛載目錄及權(quán)限由/etc/exports 文件定義。(3)本地測試NFS:輸入以下命令可以將NFS根目錄掛載到本地的/mnt 目錄中: $ sudo mount :/home/arm/FS/myroot /mnt 此時/mnt 中的內(nèi)容應(yīng)當(dāng)與NFS根目錄中的內(nèi)容一致。出于兼容性和穩(wěn)定性考慮,本課題選擇目前比較穩(wěn)定的版本 。(3)設(shè)置環(huán)境變量:修改home目錄下的profile文件,加入如下代碼,指明交叉編譯工具的 目錄。注意,通過該交叉編譯器編譯的可執(zhí)行文件只能在 ARM 體系下執(zhí)行,不能在基于X86的普通PC上執(zhí)行。因此,在嵌入式世界里建立一個通用的Bootloader幾乎是不可能的,不同處理器構(gòu)架都有不同的 Bootloader。其中,Uboot 功能豐富,且對于ARM體系支持良好,事實上,它已成為ARM平臺上標準Bootloader。 Uboot 的獲取Uboot 的源碼可以從sourceforge網(wǎng)站下載,網(wǎng)址為:。第二類目錄是一些通用的函數(shù)或者驅(qū)動程序。啟動加載(Bootloading)模式:這種模式也稱為“自主”(Autonomous)模式。從主機下載的文件通常首先被 Bootloader保存到目標機的 RAM 中,然后再被 Bootloader 寫到目標機上的 FLASH 類固態(tài)存儲設(shè)備中。大多數(shù)Bootloader都分為階段1(stage1)和階段2(stage2)兩大部分,Uboot也不例外。由于NAND閃存控制器從NAND閃存中搬移到內(nèi)部RAM的代碼是有限的,所以,在啟動代碼的前 4K里,必須完成 S3C2410 的核心配置,并把啟動代碼的剩余部分搬到 RAM 中運行。(2)設(shè)置CPU的模式為SVC(管理模式,操作系統(tǒng)使用的保護模式)(3)關(guān)閉看門狗。其中一個功能是設(shè)置CP15寄存 器,失效指令(I)Cache和數(shù)據(jù)(D)Cache后,禁止MMU與 Cache。(9)進入C代碼:ldr pc, _start_armboot _start_armboot:.word start_armboot 其中 start_armboot 是 Uboot 運行的第一個 C 程序,在 lib_arm/ 文件中定義。(3)環(huán)境變量初始化,利用env_relocate()函數(shù)實現(xiàn)。(7)進入U-boot 的命令循環(huán),接受用戶輸入的命令,執(zhí)行相應(yīng)的工作。NULL:開發(fā)者/或經(jīng)銷商(vender)。(5)調(diào)整SDRAM的刷新率,修改 : define REFCNT 1268 HCLK為 100MHz: /*Fout = 200MHz */ define M_MDIV 0x5C define M_PDIV 0x4 define M_SDIV 0x0 添加支持 NAND Flash 啟動功能由于Uboot 不支持從NAND Flash啟動,所以將程序復(fù)制到RAM里面去需要新加代碼實現(xiàn),一般通過 copy_myself 函數(shù)實現(xiàn)。由于使用了新的 Flash 讀函數(shù),在編譯時需要重新鏈接,修改 LJD2410目錄中的Makefile文件,將原先的OBJS := 改為:OBJS := 。如果定義CFG_NAND_LEGACY,就不使用默認的nand_init,而調(diào)用自己寫的nand_init函數(shù)了,本課題選擇第二種方式。 修改 Uboot環(huán)境變量保存方式由于本課題使用NAND Flash作為外存儲器,所以Uboot 的參數(shù)存儲函數(shù)應(yīng)當(dāng)進行適當(dāng)?shù)男薷?。這樣,就可以在 Uboot 命令行中實現(xiàn)對環(huán)境變量的設(shè)置與保存。 Uboot 的燒寫及測試若開發(fā)板中沒有任何程序,則不能啟動,需要先將 Uboot 燒寫到 Flash中。本課題采用第三種方法。本課題全部選擇“0”即可。Uboot 提供了幾十個常用的命令,通過這些命令,可以對開發(fā)板進行調(diào)試,可以引導(dǎo)Linux內(nèi)核,還可以擦寫 Flash 完成系統(tǒng)部署等功能。這類的宏名稱中以“CONFIG_”開頭,區(qū)別于以“CFG_”開頭的內(nèi)部變量宏。還是以設(shè)置開發(fā)板 IP 地址為例,Uboot 提示符下輸入以下命令:LJD2410 setenv ipaddr LJD2410 saveenv 系統(tǒng)顯示:Saving Environment to NAND...Erasing Nand...Writing to Nand...done 表明新設(shè)置的環(huán)境變量已保存至Flash中的變量區(qū)。Linux 系統(tǒng)能支持如此多平臺的部分原因是因為內(nèi)核把原程序代碼清晰的劃分為體系結(jié)構(gòu)無關(guān)部分和體系結(jié)構(gòu)相關(guān)部分。(d)mm:存放體系結(jié)構(gòu)特有的內(nèi)存管理程序的實現(xiàn)。(3)/fs包含了所有的文件系統(tǒng)的代碼。(5)/init 包含了內(nèi)核的初始化代碼,內(nèi)核從此處工作。(8)/mm包含了所有內(nèi)存管理代碼。顯然,移植工作的重點就是移植arch目錄下的文件。Linux內(nèi)核的移植過程 選擇參考板內(nèi)核的移植工作主要是修改跟硬件平臺相關(guān)的代碼,一般不涉及 Linux內(nèi)核通用程序。根據(jù)以上原則,本課題選擇SMDK2410作為參考板。所以,我們在這里選擇禁止內(nèi)核ECC 校驗.,具體操作如下: 文件drivers/mtd/nand/,找到s3c2410_nand_init_chip()函數(shù),將最后一行的chipeccmode= NAND_ECC_SOFT 改為:chipeccmode= NAND_ECC_NONE CS8900a網(wǎng)卡的移植過程本課題中使用的LJD2410開發(fā)板帶有 CS8900A網(wǎng)卡芯片,并提供RJ45網(wǎng)絡(luò)接口。(2)修改/arch/arm/machs2410/,添加如下代碼:include (3)在 map_desc smdk2410_iodesc[]結(jié)構(gòu)題中添加CS8900A對于的 io 空間映射:static struct map_desc smdk2410_iodesc[] __initdata = {{ vSMDK2410_ETH_IO , pSMDK2410_ETH_IO, SZ_, MT_DEVICE }, }。amp。 Linux 內(nèi)核的剪裁配置配置內(nèi)核選項是整個移植過程中很重要的一步,本設(shè)計使用SMDK2410作為參考開發(fā)板,所以可以參考內(nèi)核中 SMDK2410 開發(fā)板的配置文件,通過以下命令將其復(fù)制到內(nèi)核根文件夾下:$ cp arch/arm/config/ 在此基礎(chǔ)上,根據(jù)本課題的實際需求進行配置增減。在各級子菜單中,選擇相應(yīng)的配置時,有 3種選擇,它們代表的含義分別如下:Y—將該功能編譯進內(nèi)核。 基本配置選項Linux內(nèi)核的各個版本配置餐單各不相同,結(jié)合本課題的實際需求,簡介下內(nèi)核的基本配置選項。(4)Bus support:包含各種總線配置選項,全部去掉。(8)Userapace binary formats:包含支持的應(yīng)用程序格式,僅保留“ELF”格式支持,去掉其它。(12)File systems:包含各種文件系統(tǒng)的支持選項,去掉“EX2”等選項,僅保留 ROM 文件系統(tǒng)支持,在“Miscellaneous filesystems”子菜單中近保留“cramfs”文件系統(tǒng)支持,并且開啟NFS文件系統(tǒng)支持,去掉其它選項。(16)Library routines:包含幾種壓縮和校驗函數(shù),保持默認。(3)Real Time Clock:時鐘驅(qū)動選項,應(yīng)選上“Samsung S3C series SoC RTC”,這樣系統(tǒng)時鐘才能正常運行。程序默認保存為“.config”,此文件位于內(nèi)核根目錄內(nèi),可以直接修改。此時 編譯好的可加載模塊也被安裝到預(yù)定位置,默認為/lib/modules。A armO linuxT kernelC nonea 0x30008000e 0x30008040d zImage 各個參數(shù)的含義:n:設(shè)置映像名A:設(shè)置體系信息O:設(shè)置操作系統(tǒng)信息T:設(shè)置映像類型c:壓縮類型a:讀入地址e:入口地址d:源映像文件。our IP is Filename ‘’Load address : 0x30008000Loading:Done其中 0x30008000 為指定的下載到內(nèi)存的地址, 就是帶有引導(dǎo)頭的內(nèi)核映像。Linux系統(tǒng)中使用“/”來唯一表示根文件系統(tǒng)的安裝路徑。在嵌入式開發(fā)過程中,通常使用這種文件系統(tǒng)搭建交叉編譯環(huán)境。因為 cramfs 不會影響系統(tǒng)讀取文件的速度,而且是一個高度壓縮的文件系統(tǒng),因此本課題最終選用cramfs作為根文件系統(tǒng)部署到開發(fā)板。研究過程中,使用了 LJD2410 型開發(fā)板,此開發(fā)板的處理器是基于 ARM920T的 Samsung S3c2410,能夠滿足嵌入式導(dǎo)航計算機的硬件需求。通過 TFTP和NFS等網(wǎng)絡(luò)服務(wù),實現(xiàn)高效連接,有利于提高開發(fā)效率。本課題選用功能強大的 Uboot 作為啟動加載程序,通過對其源代碼進行修改,使其可以正常運行于開發(fā)板,并且實現(xiàn)下載、燒寫等功能。最后,簡單介紹了系統(tǒng)部署的方法。雖然移植后的Linux系統(tǒng)可以正常運行在開發(fā)板上,能滿足設(shè)計需求。嵌入式系統(tǒng)應(yīng)用范圍:汽車,工業(yè)控制,通信設(shè)備,消費電子,商業(yè)終端,航空航天,軍事需求。第二篇:嵌入式系統(tǒng)設(shè)計與應(yīng)用第一章:嵌入式系統(tǒng)定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能,可靠性,成本,體積,功耗嚴格要求的專用計算機系統(tǒng)。本課題充分利用前人積累的經(jīng)驗,結(jié)合最新的軟件版本進行移植工作。根文件系統(tǒng)選用了Cramfs文件系統(tǒng),這種文件系統(tǒng)采用壓縮
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1