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

正文內(nèi)容

基于arm平臺(tái)的lniux系統(tǒng)移植畢業(yè)設(shè)計(jì)論文-資料下載頁(yè)

2025-06-24 15:38本頁(yè)面
  

【正文】 ARM開(kāi)發(fā)板啟動(dòng)參數(shù)在ARM開(kāi)發(fā)板的uboot啟動(dòng)后查看參數(shù) printenv設(shè)置ARM開(kāi)發(fā)板的參數(shù) setenv bootcmd nand read 0x30008000 0x80000 0x200000\。 bootm setenv bootargs root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200保存參數(shù)設(shè)置 saveenv重啟ARM開(kāi)發(fā)板 reset 第五章 設(shè)備驅(qū)動(dòng) 設(shè)備驅(qū)動(dòng)的概念設(shè)備驅(qū)動(dòng)程序?qū)?fù)雜的硬件抽象成一個(gè)結(jié)構(gòu)良好的設(shè)備,并通過(guò)提供統(tǒng)一的程序接口為系統(tǒng)的其它部分提供使用設(shè)備的能力和方法。設(shè)備驅(qū)動(dòng)程序(應(yīng)該只是)為系統(tǒng)的其它部分提供各種使用設(shè)備的能力,使用設(shè)備的方法應(yīng)該由應(yīng)用程序決定。Linux下對(duì)外設(shè)的訪問(wèn)只能通過(guò)驅(qū)動(dòng)程序。硬件的相關(guān)性決定了支持所有硬件設(shè)備的設(shè)備驅(qū)動(dòng)是不存在的,但是設(shè)備驅(qū)動(dòng)的組成大致相同,了解設(shè)備驅(qū)動(dòng)的組成對(duì)于設(shè)備驅(qū)動(dòng)開(kāi)發(fā)有很大的幫助。一般來(lái)說(shuō),所有的硬件設(shè)備都可以用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用來(lái)進(jìn)行打開(kāi),關(guān)閉和讀寫(xiě)。Linux對(duì)于驅(qū)動(dòng)程序有統(tǒng)一的接口,以文件的形式定義系統(tǒng)的驅(qū)動(dòng)程序:Open、Release、read、write、ioctl…驅(qū)動(dòng)程序是內(nèi)核的一部分,可以使用中斷、DMA等操作,驅(qū)動(dòng)程序需要在用戶態(tài)和內(nèi)核態(tài)之間傳遞數(shù)據(jù)圖51 設(shè)備驅(qū)動(dòng)與各部分聯(lián)系圖Linux的硬件設(shè)備分為三類:字符設(shè)備,塊設(shè)備和網(wǎng)絡(luò)設(shè)備。顧名思義,字符設(shè)備沒(méi)有緩沖區(qū),可以直接讀寫(xiě);塊設(shè)備只能一個(gè)或者數(shù)個(gè)塊的讀寫(xiě),可以隨機(jī)存??;網(wǎng)絡(luò)設(shè)備通過(guò)BSDunix的socket套接字接口訪問(wèn),在系統(tǒng)和驅(qū)動(dòng)之間通過(guò)專門(mén)的數(shù)據(jù)結(jié)構(gòu)(sk_buff)進(jìn)行數(shù)據(jù)通信。Linux的設(shè)備驅(qū)動(dòng)程序主要由三個(gè)部分組成:(1) 初始化子程序該程序首先完成設(shè)備驅(qū)動(dòng)的配置,然后檢查驅(qū)動(dòng)的硬件設(shè)備是否已經(jīng)連接上,是否已經(jīng)驅(qū)動(dòng),如果一切正常,則初始化相關(guān)的軟硬件。(2) 服務(wù)I/O請(qǐng)求的子程序這個(gè)子程序主要是對(duì)輸入輸出進(jìn)行服務(wù),實(shí)現(xiàn)了對(duì)文件系統(tǒng)的調(diào)用。(3) 中斷服務(wù)子程序中斷是設(shè)備驅(qū)動(dòng)中的重點(diǎn)和難點(diǎn)。在Linux系統(tǒng)中,中斷并不是從中斷向量表中調(diào)用,而是由Linux系統(tǒng)來(lái)接收硬件的中斷信號(hào),然后由系統(tǒng)來(lái)調(diào)用相關(guān)的中斷服務(wù)子程序。 Linux網(wǎng)絡(luò)應(yīng)用中最重要的就是網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,一般來(lái)說(shuō)網(wǎng)絡(luò)設(shè)備是一個(gè)物理硬件,如以太網(wǎng)卡,但是有的時(shí)候網(wǎng)絡(luò)設(shè)備也可以是一個(gè)軟件,如回送設(shè)備。網(wǎng)絡(luò)適配器又稱網(wǎng)卡,是計(jì)算機(jī)與外界互聯(lián)網(wǎng)聯(lián)通的媒介,是局域網(wǎng)中連接計(jì)算機(jī)和傳輸介質(zhì)的接口,主要負(fù)責(zé)數(shù)據(jù)的封裝和解封、鏈路管理、編碼與譯碼功能。Linux網(wǎng)絡(luò)驅(qū)動(dòng)程序的體系結(jié)構(gòu)從上到下可以分為發(fā)送和接收數(shù)據(jù)的網(wǎng)絡(luò)協(xié)議接口層、定義網(wǎng)絡(luò)協(xié)議數(shù)據(jù)結(jié)構(gòu)的網(wǎng)絡(luò)設(shè)備接口層、數(shù)據(jù)包發(fā)送和接收的設(shè)備驅(qū)動(dòng)功能層以及提供傳輸媒介的網(wǎng)絡(luò)媒介層。網(wǎng)絡(luò)驅(qū)動(dòng)程序體系結(jié)構(gòu)圖52 Linux 網(wǎng)絡(luò)驅(qū)動(dòng)程序體系結(jié)構(gòu)圖 DM9000 網(wǎng)卡驅(qū)動(dòng)移植Linux內(nèi)核中具有網(wǎng)絡(luò)協(xié)議接口層和網(wǎng)絡(luò)設(shè)備接口層的代碼,所以移植網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序主要的工作是完成數(shù)據(jù)包發(fā)送和接收的設(shè)備驅(qū)動(dòng)功能層的功能。Linux內(nèi)核代碼里面已經(jīng)支持了DM9000的網(wǎng)卡驅(qū)動(dòng),所以不需要再額外的寫(xiě)網(wǎng)卡驅(qū)動(dòng)程序,只需要在已有的網(wǎng)卡驅(qū)動(dòng)程序中添加相應(yīng)的平臺(tái)信息,然后做一定程度的修改和補(bǔ)充。(1)配置網(wǎng)卡驅(qū)動(dòng)修改“”。具體做法:(a) vim arch/arm/machs3c2410/(b),用于定義端口地址和中斷號(hào)等設(shè)備信息static struct resource s3c_dm9ks_resource[] = {[0] = {.start = 0x10000000,.end = 0x10000040,c.flags = IORESOURCE_MEM,},[1] = {.start = IRQ_EINT2,.end = IRQ_EINT2,.flags = IORESOURCE_IRQ,},}。struct platform_device s3c_device_dm9ks = {.name = s3c2410dm9ks,.id = 1,.num_resources = ARRAY_SIZE(s3c_dm9ks_resource),.resource = s3c_dm9ks_resource,}。(c)在“struct platform_device *smdk2410_devices[] __initdata”末尾加入網(wǎng)卡數(shù)據(jù):amp。s3c_device_dm9ks,(d)將新的“”和“”拷貝到“/”文件夾內(nèi),替換舊的文件。 cp /dm9000.* drivers/net/(2)在內(nèi)核中配置網(wǎng)卡中信息使它編譯在內(nèi)核中。Device Drivers224。[*] Network device support224。[*] Ethernet (10 or 100Mbit)224。* Generic Media Independent Interface device support ASIX AX88796 NE2000 clone support[ ] ASIX AX88796 external 93CX6 eeprom support SMC 91C9x/91C1xxx support*DM9000 support Broad 440x/47xx ethernet support圖53 網(wǎng)卡配置圖在板子上ping 主機(jī)得到下面結(jié)果,說(shuō)明網(wǎng)卡驅(qū)動(dòng)移植成功。[smdk2410ZYW ] ping Found DM9000 ID:90000a46 at address 10000000 !DM9000 work in 16 bus widthbdbi_entaddr: 08:00:3e:26:0a:5b[eth_init]MAC:8:0:3e:26:a:5b:host is alive LCD 設(shè)備驅(qū)動(dòng)移植隨著多媒體技術(shù)的發(fā)展,消費(fèi)類電子的用戶界而從傳統(tǒng)的二色界而進(jìn)入現(xiàn)在的多彩界面。自從iphone 一代手機(jī)的問(wèn)世,高清多彩用戶界面技術(shù)是突飛猛進(jìn),然而LCD就是這種技術(shù)發(fā)展的成果。高分辨率的LCD的屏越來(lái)越多的被用到嵌入式系屮,Unux系統(tǒng)的幀緩存允許改變緩存區(qū)的內(nèi)容,但是必須是在上層應(yīng)用程序在圖形模式下來(lái)執(zhí)行的,這樣使得用戶可以在屏幕上對(duì)應(yīng)用程序進(jìn)行觸摸操作,然后產(chǎn)品更容易使用,代替了傳統(tǒng)的物理按鍵,節(jié)省了硬件成本,同時(shí)也提供了產(chǎn)品的質(zhì)量。(1)LCD移植步驟修改“”。具體做法:(a) vim arch/arm/machs3c2410/(b)include asm/arch/include linux/(c)static struct s3c2410fb_display up2410_fb[] __initdata ={{.lcdcon5 = (112)|(111)|(19)|(18)|(10),.type = (35),.width = 640,.height = 480,.pixclock = 39721,.xres = 640,.yres = 480,.bpp = 16,.left_margin = 40,.right_margin = 32,.hsync_len = 32,.vsync_len = 2,.upper_margin = 35,.lower_margin = 5,},}。static struct s3c2410fb_mach_info up2410_fb_info __initdata ={.displays = up2410_fb,.num_displays = 1,.default_display = 0,.gpcup = 0xffffffff,.gpcup_mask = 0x0,.gpccon = 0xaaaaaaaa,.gpccon_mask = 0x0,.gpdup = 0xffffffff,.gpdup_mask = 0x0,.gpdcon = 0xaaaaaaaa,.gpdcon_mask = 0x0,.lpcsel = 0,}。(d),在“smdk2410_init”函數(shù)的末尾一行添加:s3c24xx_fb_set_platdata(amp。up2410_fb_info)。(2)在內(nèi)核中配置LCD,使它編譯在內(nèi)核中。Device Drivers 224。Graphics support 224。* Support for frame buffer devices 224。*S3C2410 LCD framebuffer supportDevice Drivers 224。Graphics support 224。 [*] Bootup logo224。 [*] Standard black and white Linux logo[*] Standard 16color Linux logo[*] Standard 224color Linux logo到此移植完成。結(jié)論至此,一個(gè)簡(jiǎn)單的移植就完成了,讓linux系統(tǒng)跑在了ARM平臺(tái)上。環(huán)境的搭建對(duì)嵌入式開(kāi)發(fā)真的影響很大,沒(méi)有一個(gè)好的完整的開(kāi)發(fā)環(huán)境是搞不了嵌入式的。在這次移植中遇到很多問(wèn)題,在移植uboot的時(shí)候重復(fù)做了好多遍,或許是自己在重復(fù)相同的錯(cuò)誤,在百度和谷歌的強(qiáng)大功能的幫助下,歷時(shí)兩天才把它移植成功。因?yàn)殚_(kāi)發(fā)環(huán)境的不同,也是遇到很多錯(cuò)誤,我使用了硬盤(pán)安裝最新版ubuntu ,在里面搭建交叉編譯環(huán)境, ,因?yàn)榘姹咎?,編譯的過(guò)程中也是遇到無(wú)數(shù)問(wèn)題,修改了好多的函數(shù)。移植內(nèi)核時(shí)出現(xiàn)錯(cuò)誤,在編譯時(shí)使用make命令,也是版本太高的問(wèn)題,出了一堆錯(cuò)誤,后來(lái)在谷歌幫助下加了一條函數(shù)才解決錯(cuò)誤。也給以后的嵌入式開(kāi)發(fā)者留下點(diǎn)經(jīng)驗(yàn),高版本的nake,還有交叉編譯鏈很容易出錯(cuò)。由于個(gè)人能力有限,還有好多設(shè)備驅(qū)動(dòng)程序沒(méi)有移植,按鍵驅(qū)動(dòng),觸摸屏驅(qū)動(dòng),視頻解碼,攝像頭等,希望在以后可以自己能力夠了可以移植成功。在此附上部分開(kāi)發(fā)過(guò)程遇到的錯(cuò)誤,給愛(ài)好嵌入式相關(guān)愛(ài)好者一點(diǎn)點(diǎn)經(jīng)驗(yàn)。在編譯內(nèi)核時(shí)出現(xiàn)問(wèn)題一、arch/arm/configs/s3c2410_defconfig .configroot@Thinkpad:/home/follow/Desk/kernal/ make menuconfigMakefile:434: *** mixed implicit and normal rules: deprecated syntaxMakefile:1503: *** mixed implicit and normal rules: deprecated syntaxmake: *** No rule to make target 39。menuconfig39。 停止。在網(wǎng)上找到解決方法說(shuō)make太新,版本太高 修改前:434行 config %config: scripts_basic outputmakefile FORCE修改后:434行 %config: scripts_basic outputmakefile FORCE 修改前:1503 行 / %/: prepare scripts FORCE 修改后:1503 行 %/: prepare scripts FORCE問(wèn)題二、scripts/:134: recipe for target 39。scripts/kconfig/lxdialog/39。 failedmake[1]: *** [scripts/kconfig/lxdialog/] Error 1Makefile:435: recipe for target 39。menuconfig39。 failedmake: *** [menuconfig] Error 2該錯(cuò)誤是Ubuntu 系統(tǒng)缺少一個(gè)庫(kù)文件,解決辦法aptget install libncurses5dev問(wèn)題三、kernel/: In function `timespec_add_ns39。:/home/yaowei/Desktop/kernal/:174: undefined reference to `__udivdi339。/home/yaowei/Desktop/kernal/:179: undefined reference to `__umoddi339。/home/yaowei/Desktop/kernal/:174: undefined reference to `__udivdi339。/home/yaowei/Desktop/kernal/:179: undefined reference to `__umoddi339。make: *** [.tmp_vmlinux1] 錯(cuò)誤 1 這個(gè)是因?yàn)橄到y(tǒng)問(wèn)題,32位與64為不一樣,解答辦法include /* The following asm() prevents the piler from * optimising this loop into a modulo operation.*/ asm( : +r(ns))。參考文獻(xiàn)(1)中文專著[1].鳥(niǎo)哥(著),王世江(改編).鳥(niǎo)哥的Linux私房菜:基礎(chǔ)學(xué)習(xí)篇(第三版)[M].人民郵電出版社。2010[2].(第一版)[M].[3].文全剛, :基于ARM體系結(jié)構(gòu)(第2版)[M].[4].:軟件設(shè)計(jì)與優(yōu)化(第1版)[M].[5].:[M].[6].(第2版)[M].(2)中文學(xué)術(shù)論文[1]王彥堂. 基于ARM的嵌入式Linux系統(tǒng)研究與應(yīng)用[D]. 山東大學(xué), 2007.[2]田磊. 基于ARM的嵌入式Linux
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1