在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Microwindows在基于單片機(jī)嵌入式系統(tǒng)中的移植

            Microwindows在基于單片機(jī)嵌入式系統(tǒng)中的移植

            作者: 時(shí)間:2011-01-24 來源:網(wǎng)絡(luò) 收藏

            在microwindows的配置過程中,可以利用./xconfigure命令進(jìn)入菜單配置界面,當(dāng)然也可以通過直接修改配置文件“src/config”對microwindows進(jìn)行配置。這里采用的是后者,其中幾個(gè)比較關(guān)鍵的選項(xiàng)包括體系結(jié)構(gòu)、交叉編譯器、每像素位數(shù)、幀緩沖等,具體的配置參數(shù)如下:

            (1) 關(guān)于體系結(jié)構(gòu)和編譯器選項(xiàng)

            [ 相關(guān)貼圖 ]

            (2) 每像素位數(shù)screen_pixtype= mwpf_truecolor332 對于s3c44b0x,在彩色模式下,1個(gè)字節(jié)8位(3位紅色、3位綠色、2位藍(lán)色)的圖像數(shù)據(jù)對應(yīng)一個(gè)像素點(diǎn),即像素點(diǎn)字節(jié)在存儲(chǔ)器中保存的格式為332位。因此在設(shè)定microwindows的每像素位數(shù)時(shí)將其格式設(shè)置為332,根據(jù)頭文件的定義設(shè)定為mwpf_true color332。

            (3) 幀緩沖設(shè)備由于是在嵌入式開發(fā)平臺(tái)上運(yùn)行,有別于在pc機(jī)上,此時(shí)microwindows應(yīng)該是基于幀緩沖驅(qū)動(dòng),即需要調(diào)用/dev/fb0設(shè)備,因此參數(shù)的配置應(yīng)該為:

            還有其他某些相關(guān)的配置參數(shù),應(yīng)根據(jù)實(shí)際情況進(jìn)行配置。至此,完成了對microwindows的配置工作,下面需要根據(jù)?clinux的特性,對microwindows的源代碼進(jìn)行相應(yīng)修改。具體需要修改的地方包括三個(gè)方面:

            在打開幀緩沖設(shè)備時(shí),需要調(diào)用void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize)函數(shù),將屏幕緩沖區(qū)映射到用戶地址空間。在基于pc機(jī)開發(fā)時(shí),由于在linux系統(tǒng)下,參數(shù)flags默認(rèn)為map_shared,即對映射區(qū)域的寫入數(shù)據(jù)會(huì)復(fù)制回文件內(nèi),而且允許其他映射該文件的進(jìn)程共享。由于?clinux是沒有mmu(內(nèi)存管理單元)的,因此參數(shù)flags應(yīng)為map_fixed ,即如果參數(shù)start所指的地址無法成功建立映射時(shí),則放棄映射,不對地址做修正。因此,應(yīng)該修改文件/src/drivers/scr_fb.c,將mmap()函數(shù)中的flags參數(shù)改為map_fixed。

            如果此時(shí)直接編譯經(jīng)過配置和修改源代碼的microwindows,會(huì)提示出現(xiàn)“undefined reference to ‘_ _ctor_list’”和“undefined reference to ‘_ _dtor_list’”的錯(cuò)誤。這是由于原來在libgcc中是有_ _ctor_list和_ _dtor_list參數(shù)定義的,但在?clinux的交叉編譯鏈中,該符號被刪掉。在elf2flt的link script中提供了這兩個(gè)符號的定義,使用clinux的交叉編譯鏈編譯可執(zhí)行程序就必須用-elf2flt選項(xiàng)。因此應(yīng)在編譯的選項(xiàng)里加上“-elf2flt”,修改的文件包括demos文件夾下各個(gè)相關(guān)文件夾的makefile文件。

            由于clinux缺少mmu硬件的支持,無法實(shí)現(xiàn)fork( )函數(shù),而只能使用vfork( )函數(shù),因此在含有fork( )函數(shù)的文件中應(yīng)加入相應(yīng)的條件編譯指令,用vfork( )來代替fork( )。

            以上3個(gè)修改是比較重要,至此已完成了整個(gè)microwindows在s3c44b0x嵌入式開發(fā)板中的移植,編譯即可。最后,將編譯好的演示程序復(fù)制到clinux內(nèi)核中,再編譯內(nèi)核,將編譯好的內(nèi)核映像文件下載至ram中,即可運(yùn)行演示。

            結(jié)語

            本文主要論述了microwindows的體系結(jié)構(gòu),并且介紹了在pc機(jī)上和基于s3c44b0x的嵌入式開發(fā)板上運(yùn)行的步驟和方法,指出了在開發(fā)過程應(yīng)該注意的問題。下面就可以利用相應(yīng)的開發(fā)工具開發(fā)microwindows的應(yīng)用程序,從而實(shí)現(xiàn)相應(yīng)的功能。


            上一頁 1 2 3 下一頁

            關(guān)鍵詞: 單片機(jī)

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉