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

正文內(nèi)容

基于嵌入式linux網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究與設(shè)計(jì)論文-資料下載頁(yè)

2025-06-27 23:04本頁(yè)面
  

【正文】 0。 strr0, [r1]/*讀取0x0000003c位置開(kāi)始的四個(gè)字節(jié)*/ movr1, 0x3c ldrr0, [r1]/*如果是0則是從 NANDFlash啟動(dòng)*/ cmpr0, 0 beqboot_from_nand/*如果不是0則是從NORFlash啟動(dòng)*/ bneboot_from_nor 最后:如果是Nand boot,必須要復(fù)原清零的數(shù)據(jù),因?yàn)樵贜and boot過(guò)后,會(huì)核對(duì)內(nèi)部SRAM中的4K程序,和從Nand中拷貝到SDRAM的前4K程序是否一致,如果不一致會(huì)進(jìn)入死循環(huán)。實(shí)現(xiàn)代碼如下:/* recovery */ldr r0, =(0xdeadbeef)ldr r1, =( (428)|(34)|(32) )str r0, [r1] Linux內(nèi)核的移植與定制在對(duì)嵌入式Linux內(nèi)核進(jìn)行移植和定制之前首先介紹一下一般的Linux操作系統(tǒng)的內(nèi)核組成。Linux操作系統(tǒng)由內(nèi)存管理,虛擬文件系統(tǒng),進(jìn)程調(diào)度,網(wǎng)絡(luò)接口,進(jìn)程間通信等幾個(gè)部分組成[26][27]。Linux操作系統(tǒng)內(nèi)核的功能框圖如圖 。 圖 Linux內(nèi)核功能框圖 Functionalblock diagram of theLinux kernel1.假設(shè)將壓縮的Linux內(nèi)核文件下載到了/study/mini2440/目錄下,進(jìn)行解壓操作。cd study/mini2440 tar zxvf 2.修改Makefile文件。 首先,要使Linux的默認(rèn)的平臺(tái)是arm平臺(tái),修改此目錄下的Makefile文件。大約在182行,修改成下面的代碼,使其平臺(tái)是ARM平臺(tái),交叉編譯是armlinuxexport KBUILD_BUILDHOST := $(SUBARCH)ARCH ?= arm CROSS_COMPILE ?= armlinux 3.修改機(jī)器碼。 在啟動(dòng)內(nèi)核時(shí),是根據(jù)Bootloader傳入的機(jī)器碼(MACH_TYPE),來(lái)決定應(yīng)啟動(dòng)哪種目標(biāo)平臺(tái),友善之臂Mini2440申請(qǐng)的機(jī)器碼為1999。在文件/study/mini2440/。qq2440 MACH_2440 2440 1998mini2440 MACH_MINI2440 MINI2440 1999 //機(jī)器碼。define MACH_TYPE_Q2440 1997 define MACH_TYPE_2440 1998 define MACH_TYPE_MINI2440 1999 在study/mini2440/。不過(guò)本文不使用它,直接將其刪除。 將/study/mini2440/,因?yàn)镸ini2440和smdk2440的結(jié)構(gòu)最為相似,上面的外圍電路也很相似,所以在其基礎(chǔ)上進(jìn)行修改移植。,找到MACHINE_START(S3C2440, SMDK2440)修改為下面的內(nèi)容:MACHINE_START(MINI2440, FriendlyARM MINI2440 development board)4.修改時(shí)鐘源。 void __init smdk2440_map_io(void)函數(shù)中,把其中的16934400(代表原SMDK2440目標(biāo)板上的晶振是 )改為mini2440開(kāi)發(fā)板上實(shí)際使用的12000000(代表 mini2440 開(kāi)發(fā)板上的晶振12MHz,)。 ,原來(lái)是smdk2440,所以將該文件中的所有的smdk2440替換成mini2440。除此之外,還要在mini2440_machine_init(void)函數(shù)中,把smdk_machine_init()函數(shù)調(diào)用注釋掉,因?yàn)楹竺姹疚膶⒕帉?xiě)自己的初始化函數(shù),不需要調(diào)用原來(lái)的smdk2440。5.改NandFlash分區(qū)信息。 Flash的分區(qū)信息,具體內(nèi)容如下: static struct mtd_partition mini2440_default_nand_part[] = {[0] = {//bootloader所在的分區(qū),對(duì)應(yīng)/dev/mtdblock0 .name = Uboot, .size = 0x00060000, .offset = 0, },[1] = { //uboot的參數(shù)區(qū) .name = param, .offset = 0x00060000, .size = 0x00020000, //不會(huì)影響系統(tǒng)啟動(dòng),對(duì)應(yīng)/dev/mtdblock1 },[2] = { //內(nèi)核所在的分區(qū),大小為 5M,對(duì)應(yīng)/dev/mtdblock2 .name = Kernel, .offset = 0x00080000, .size = 0x00500000, },[3] = {//文件系統(tǒng)分區(qū),主要用來(lái)存放yaffs2文件系統(tǒng)內(nèi)容對(duì)應(yīng)/dev/mtdblock3 .name = root, .offset = 0x00580000, .size = 1024 * 1024 * 1024, }, [4] = {//此區(qū)域代表了整片的nand flash,主要是預(yù)留使用 .name = nand, .offset = 0x00000000, .size = 1024 * 1024 * 1024, }}。還需要添加Nand Flash的設(shè)置表:static struct s3c2410_nand_set mini2440_nand_sets[] = {[0] = { .name = NAND, .nr_chips = 1, .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part), .partitions = mini2440_default_nand_part, },}。static struct s3c2410_platform_nand mini2440_nand_info = { .tacls = 20, .twrph0 = 60, .twrph1 = 20, .nr_sets = ARRAY_SIZE(mini2440_nand_sets), .sets = mini2440_nand_sets, .ignore_unset_ecc = 1, }。在mini2440_machine_init函數(shù)中添加平臺(tái)的數(shù)據(jù)信息: static void __init mini2440_machine_init(void){s3c24xx_fb_set_platdata(amp。mini2440_fb_info)。s3c_i2c0_set_platdata(NULL)。 = amp。mini2440_nand_info。 //添加platform_add_devices(mini2440_devices,ARRAY_SIZE(mini2440_devices))。 }6.給內(nèi)核打上yaffs2補(bǔ)丁。 并將其解壓,得到y(tǒng)affs2源代碼,然后進(jìn)入yaffs2源代碼目錄執(zhí)行:cd yaffs2 ./ c /study/mini2440/ ,可以看到已經(jīng)多了一個(gè)yaffs2目錄。 經(jīng)過(guò)前面幾步的修改,Linux已經(jīng)可以在Mini2440開(kāi)發(fā)板上運(yùn)行,下一步將根據(jù)系統(tǒng)需求定制內(nèi)核。 ,因此可以參考系統(tǒng)已有配置信息進(jìn)行定制。在Linux內(nèi)核源代碼根目錄運(yùn)行make menuconfig命令。1. 選擇System Type S3C2440 Machines選項(xiàng)。 Linux內(nèi)核基本配置 The basicconfiguration of Linuxkernel2.選擇內(nèi)核支持Yaffs2文件系統(tǒng)。選擇 FilesystemMiscellaneous filesystems選項(xiàng)。 Linux內(nèi)核的Yaffs2配置 Linux kernel configuration about Yaffs23.配置內(nèi)核使其支持USB攝像頭驅(qū)動(dòng) 本文采用的是UVC驅(qū)動(dòng)USB攝像頭,UVC是一種視頻設(shè)備的技術(shù)規(guī)范,全稱(chēng)為USB Video Class,這是一個(gè)為 USB視頻設(shè)備提供驅(qū)動(dòng)的開(kāi)源項(xiàng)目[28]。,因此只需在配置內(nèi)核編譯選項(xiàng)時(shí)把UVC驅(qū)動(dòng)編譯進(jìn)內(nèi)核即可,無(wú)需額外編寫(xiě)USB攝像頭驅(qū)動(dòng)程序。 選擇Device driversMultimedia devicesVideo capture adaptersV4L USB devices選項(xiàng),選中USB Video Class (UVC)。 Linux內(nèi)核的USB驅(qū)動(dòng)配置 The USB driver configuration of Linux kernel至此,內(nèi)核就配置完成,make zImage,在/arch/arm/boot目錄下會(huì)生成zImage文件,mkimage n 39。39。 A arm O linux T kernel C none a 0x30008000 e 0x30008000 d zImage uImage,將uImage下載到開(kāi)發(fā)板即可。 構(gòu)建嵌入式根文件系統(tǒng) 現(xiàn)在大部分開(kāi)發(fā)板都可以支持yaffs2文件系統(tǒng),它是專(zhuān)門(mén)針對(duì)嵌入式設(shè)備,特別是使用Nand flash作為存儲(chǔ)器的嵌入式設(shè)備而創(chuàng)建的一種文件系統(tǒng),早先的yaffs僅支持小頁(yè)(512byte/page)的Nand flash,使用yaffs2就可以支持大頁(yè)的 Nand flash。所謂的根文件系統(tǒng),就是創(chuàng)建各個(gè)目錄,并且在里面創(chuàng)建各種文件,比如在/bin、/sbin/目錄下存放各種可執(zhí)行的程序,在/etc目錄下存放配置文件,在/lib目錄下存放庫(kù)文件,[29][30]。 根文件系統(tǒng)目錄結(jié)構(gòu)Table The structure of root filesystem directory目錄內(nèi)容bin存放所有用戶都可以使用的基本的命令sbin存放的是基本的系統(tǒng)命令,它們用于啟動(dòng)系統(tǒng)、修復(fù)系統(tǒng)等usr里面存放的是共享、只讀的程序和數(shù)據(jù)proc這是個(gè)空目錄,常作為proc文件系統(tǒng)的掛載點(diǎn)dev該目錄存放設(shè)備文件和其它特殊文件etc存放系統(tǒng)配置文件,包括啟動(dòng)文件lib存放共享庫(kù)和可加載塊boot引導(dǎo)加載程序使用的靜態(tài)文件home用戶主目錄,包括供服務(wù)賬號(hào)鎖使用的主目錄,如FTPmnt用于臨時(shí)掛接某個(gè)文件系統(tǒng)的掛接點(diǎn),通常是空目錄。opt給主機(jī)額外安裝軟件所擺放的目錄。rootroot用戶的主目錄tmp存放臨時(shí)文件,通常是空目錄var存放可變的數(shù)據(jù) 根文件系統(tǒng)建立的具體過(guò)程如下(涉及創(chuàng)建文件、腳本的實(shí)際內(nèi)容本文不詳述):1.建立根文件系統(tǒng)的目錄。 進(jìn)入study/mini2440,創(chuàng)建一個(gè)shell的腳本用于構(gòu)建根文件系統(tǒng)的各個(gè)目錄。create_rootfs_bash,平且改變執(zhí)行的權(quán)限: chmod +x create_rootfs_bash在study/mini2440目錄下,運(yùn)行./create_rootfs_bash。2.建立動(dòng)態(tài)的鏈接庫(kù)。動(dòng)態(tài)鏈接庫(kù)直接使用友善之臂的,首先,下載友善之臂的根文件系統(tǒng)解壓后得到root_qtopia,把該文件下的Lib下的文件全部復(fù)制前一步建立的lib/文件夾下。3.編譯和安裝Busybox[31]。 Bosybox 是一個(gè)遵循GPL v2協(xié)議的開(kāi)源項(xiàng)目,它在編寫(xiě)過(guò)程對(duì)文件大小進(jìn)行優(yōu)化,并考慮了系統(tǒng)資源有限(比如內(nèi)存等)的情況,使用Busybox可以自動(dòng)生成根文件系統(tǒng)所需的bin、sbin、usr目錄和linuxrc文件。 配置busybox,這里只關(guān)心改動(dòng)的地方。執(zhí)行make menuconfig,其各個(gè)選項(xiàng)的配置如下(只列出更改的): (1)Busybox Settings Build Options [*] Build BusyBox as a static binary(no shared libs) Busybox Library Tuning (1024)Maximum length of input [*] vistyle line editing mands [*]Fancy shell promp
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1