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

正文內(nèi)容

基于嵌入式linux的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的研究與設(shè)計畢業(yè)論文(編輯修改稿)

2024-07-24 20:16 本頁面
 

【文章內(nèi)容簡介】 說明Table Uboot toplevel directory Description目錄特性解釋說明board開發(fā)板相關(guān)對應(yīng)不同配置的電路板(即使CPU相同)cpu平臺相關(guān)對應(yīng)不同的CPU,比如arm920t、arm925t等;在他們的子目錄下依然可以進一步細分,比arm920t下就at91rm9200、s3c24x0lib_arm類似某一架構(gòu)下的通用文件include通用函數(shù)頭文件和開發(fā)板配置文件,開發(fā)板的配置文件都放在include/configs目錄下,需要修改配置文件的宏定義Lib_generic通用庫函數(shù),比如printf.mon通用庫函數(shù),對下一層接口進行的封裝disk通用的設(shè)備驅(qū)動程序硬盤接口程序drivers各類具體設(shè)備的驅(qū)動程序libfdt支持平臺設(shè)備樹的庫dtt溫度測量或者傳感器驅(qū)動程序Fs文件系統(tǒng)nand_spl支持Uboot從Nand Flash啟動的設(shè)備驅(qū)動net各種網(wǎng)絡(luò)協(xié)議post上電自檢rtc實時時鐘doc文檔開發(fā)使用文檔examples示例程序一些測試程序,可以使用Uboot下載后運行tools工具制作SRecord、 Uboot格式映像文件的工具api_examplesAPI 的示例具體的使用API的示例程序api擴展的API一些擴展應(yīng)用的獨立的APIUboot各層目錄之間存在一定的層次結(jié)構(gòu)的,理解層次結(jié)構(gòu)對移植過程會提供一些幫助。、lib_i386和lib_mips等12種不同CPU架構(gòu)。例如比如mon/ Flash的各種命令,這些命令通過調(diào)用drivers/nand/、讀寫函數(shù)來實現(xiàn)。這些函數(shù)針對Nand Flash的共性作了一些封裝,將平臺/開發(fā)板相關(guān)的代碼用宏或者外部函數(shù)代替。而這些宏與外部函數(shù),如果與平臺相關(guān),就要在下一層次的cpu/xxx(xxx表示某型號的CPU)中實現(xiàn);如果與開發(fā)板相關(guān),就要在下一層次的board/xxx目錄(xxx表示某款開發(fā)板)中實現(xiàn)。圖 Uboot頂層目錄的層次結(jié)構(gòu) The toplevel directory hierarchy of Uboot Uboot的啟動過程Uboot啟動過程也是采用兩段式結(jié)構(gòu),其中依賴于CPU體系結(jié)構(gòu)的匯編語言代碼,比如設(shè)備初始化代碼等,通常都放在stage1中,而stage2則通常用C語言來實現(xiàn)。Uboot 的stage1通常包括以下步驟(以執(zhí)行的先后順序)[23]:l 硬件設(shè)備初始化。 l 為加載Uboot的stage2準RAM空間。 l 拷貝Uboot的stage2到RAM空間中。 l 設(shè)置好堆棧。 l 跳轉(zhuǎn)到stage2的C入口點。其部分相關(guān)代碼如下(ARM的異常向量表放在0地址開始處): b ResetHandler //復(fù)位的異常向量,定位于開始地址 b HandierUndef //未定義中斷處理 b HandlerSWI //SWl異常,跳轉(zhuǎn)到SWI異常服務(wù)程序 b HandlerPabort //指令預(yù)取中止異常 b HandlerDabort //數(shù)據(jù)訪問中止異常 b HandlerlRQ //lRQ異常,跳轉(zhuǎn)到響應(yīng)中斷服務(wù)程序初始化看門狗和外圍電路: /* 關(guān)閉看門狗 */ ldr r0, = wrCON//寄存器賦給變量r0 ldr rl, = 0x0 str rl, [RO] /* 關(guān)閉所有中斷 */ ldr r0, = INTMSK ldr rl, = 0xffffffff str rl, [RO] /* 關(guān)閉2級中斷 */ ldr r0, = INTSUBMSK ldr rl, = 0x7ff str rl, [RO] ldr r0, = LOCKTIME ldr rl, = 0xffffff str r1, [RO] /* 配置MPLL的控制寄存器 */ ldr r0, = MPLLCON/* Fin = 12MHz, Fout = 50MHz */ ldr rl, = ((M_MDIV12) + (M_PDIV4) + M_SDIV)。 str rl, [RO]Uboot的stage2通常包括以下步驟(以執(zhí)行的先后順序): l 初始化本階段要使用到的硬件設(shè)備。 l 檢測系統(tǒng)內(nèi)存映射(memory map)。 l 將kernel映像和根文件系統(tǒng)映像從Flash上讀到RAM空間中。 l 為內(nèi)核設(shè)置啟動參數(shù)。 l 調(diào)用內(nèi)核。Main()函數(shù)的主要代碼如下:MMU_Init()。 //MMU初始化ChangeClockDivider(1,1)。 //設(shè)置FCLK:HCLK: pCLK=1:2:4ChangeMPllValue(Oxal,Ox30,0xl)。 //FCLK=Port_Init。 //I/O端口初始化Isr_Init。 //中斷程序處理表初始化Uart_Init(0, 115200)。 //設(shè)置波特率等參數(shù)Uart_Select(0)。NandLoadRun()。 //從NANDFlash裝載操作系統(tǒng)While(1){……}: Uboot的啟動流程圖 Thestartupflow chart of Uboot Uboot在Mini2440上的移植移植UBoot主要內(nèi)容是對UBoot進行合理的配置。目前UBoot對很多CPU直接支持,可以查看board目錄的一些子目錄,如:board/samsung/目錄下就是對三星一些ARM處理器的支持,有smdk2400、smdk2410和smdk6400,但沒有Mini2440。因此移植之前,先選擇出UBoot已經(jīng)支持的和目標開發(fā)板硬件配置最接近的開發(fā)板,將其和目標板進行分析對比,以其作為參考模板進行移植,這樣可以大大提高移植工作的速度。模板選擇的方法是,首先選擇的處理器架構(gòu)要相同,其次比較外圍接口,找出配置最接近的[24]。閱讀Mini2440的原理圖,芯片數(shù)據(jù)手冊,移植Uboot,使得它可以運行。Table File modifying in porting與開發(fā)板代碼相關(guān)部分位于/board/mini2440目錄下 與CPU代碼相關(guān)的部分位/cpu/arm920t目錄下,該匯編程序完成對底層硬件的化頭文件與項目開發(fā)板相關(guān)的頭文件位于/include/configs目錄,完成對目標板的基本配置1.為項目創(chuàng)建新的開發(fā)板目錄。 因2440和2410的資源差不多,主頻和外設(shè)有點差別,所以我們就在board/samsung/下建立自己開發(fā)板的項目,取名叫mini2440 cd mkdir mini2440 //創(chuàng)建mini2440文件夾2.復(fù)制參考板的源碼到mini2440目錄下。 cp rf smdk2410/* mini2440/ //將2410下所有的代碼復(fù)制到2440下3.CPU相關(guān)寄存器值的修改。按照Bootloader的運行流程修改代碼,首先要修改CPU初始化相關(guān)的代碼,設(shè)置中斷向量表、禁止看門狗、配置主時鐘、關(guān)閉內(nèi)部數(shù)據(jù)和指令Cache等,因為源代碼中的某些初始值是錯誤的,或者是不合適的,如INTSUBMSK等。寄存器的具體值要通過閱讀三星公司的S3C2440A數(shù)據(jù)手冊獲得。通過修改cpu/arm920t/,來實現(xiàn)上述目的。 CPU相關(guān)寄存器值的修改Table Modify of the CPU register寄存器地址原值修改說明WTCON0x530000000x00x0禁止看門狗INTMSK0x4A0000080xffffffff0xffffffff禁止所有中斷INTSUBMSK0x4A00001C0x3ff0x7ff禁止所有子中斷CLKDIVN0x4C00001437CPU分頻系數(shù)LOCKTIME0x4C0000000xffffff0xffffff控制鎖相環(huán)MPLLCON0x4C0000045C0405C040控制CPU主頻 通過閱讀S3C2440A的數(shù)據(jù)手冊,最后確定CLKDIVN、MPLLCON寄存器的值。4.內(nèi)存相關(guān)寄存器值的修改。按照Uboot執(zhí)行流程,下一步C代碼要運行,這就需要SDRAM,因此要配置memory控制器,主要通過配置和它相關(guān)的寄存器來達到要求。S3C2440A內(nèi)部自帶了16k的數(shù)據(jù)Cache和指令。在S3C2440A內(nèi)部有一塊4K的稱之為steppingstone的SRAM,該RAM不需要初始化,選擇Nand Flash啟動和Nor Flash啟動后的地址是不一樣的,具體參考S3C2440A數(shù)據(jù)手冊。文件board/smdk2410/。S3C2440A支持4G的存儲空間,再將這4G分為8個Bank,每個bank最大支持128M,且每個bank地址使用的器件不一樣,有Flash、SDRAM、網(wǎng)卡等等。所以根據(jù)使用的不同器件來設(shè)置bank的大小位寬等等。:Table Modify of the memory register寄存器地址原值修改值說明BWSCON0x480000000x220111100x22011110說明每個bank數(shù)據(jù)寬度BANKCON00x480000040x000007000x00000700bank0讀、寫時間等參數(shù)BANKCON10x480000080x000007000x00000700bank1讀、寫時間等參數(shù)BANKCON20x4800000C0x000007000x00000700bank2讀、寫時間等參數(shù)BANKCON30x480000100x000007000x00000700bank3讀、寫時間等參數(shù)BANKCON40x480000140x000007000x00000700bank4讀、寫時間等參數(shù)BANKCON50x480000180x000007000x00000700bank5讀、寫時間等參數(shù)BANKCON60x4800001C0x000180050x00018005bank6讀、寫時間等參數(shù)BANKCON70x480000200x000180050x00018005bank7讀、寫時間等參數(shù)REFRESH0x480000240x008C07A30x008C04F4SDRAM刷新頻率BANKSIZE0x480000280x000000B10x000000B1映射到bank的地址范圍MRSRB60x4800002C0x000000300x00000030bank6模式寄存器MRSRB70x480000300x000000300x00000030bank7模式寄存器5.串口通信相關(guān)寄存器值的修改。 按照啟動流程,下一步是設(shè)置串口以便通過電腦的終端監(jiān)控Bootloader。這一步要修改或配置UART控制器,主要在文件cpu/arm920t/s3c24x0/。Table Modify of the serial register寄存器地址原值修改值說明ULCON00x500000000x30x3使用8位無校驗UCON00x500000040x2450x245UART基本控制UFCON00x500000080x070x07禁止FIFOUBRDDIV00x5000000C函數(shù)讀取函數(shù)讀取設(shè)置波特率 。其中波特率設(shè)置需要特別注意,因為源代碼中通過函數(shù)get_PCLK( )讀取S3C2440A的主頻,本課題使用主頻為400MHz,由于S3C2410和S3C2440A的UART差別不大,所以cpu/arm920t/s3c24x0/。6.S3C2440A對應(yīng)的GPIO端口控制寄存器內(nèi)容和開發(fā)板頭文件的修改。修改源文件/board/smdk2410/,參考具體開發(fā)板原理圖和數(shù)據(jù)手冊來設(shè)置值。,例如CPU、 SDRAM、串口、網(wǎng)口、Nor Flash、Nand Flash等其它配置信息。配置主要通過宏定義來完成。7.編譯?,F(xiàn)在編譯uboot。(注:使用supervivi進行下載時已經(jīng)對CPU、RAM進行了初始化,所以要在uboot中屏蔽掉對CPU、RAM的初始化),具體修改如下: /*ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_crit endif */ 、RAM的初始化。 Flash/Nor Flash啟動的Uboot實現(xiàn) 啟動加載程序是嵌入式系統(tǒng)上電后最先執(zhí)行起來的一部分代碼。一般存放在Nor flash或Nand flash中,但是這兩種flash在結(jié)構(gòu)上有很大的差別,運行在Nor Flash上的代碼一般不能兼容Nand Flash,同樣為Nand Flash編寫的代碼在Nor Flash中也無法運行。本文采用的開發(fā)板上同時配有Nor Flash和Nand Flash,因此本文給出一種可以自動識別這兩種Flash并且同時支持在這兩種Flash中啟動的方案。 Uboot從NAND Flash啟動的實現(xiàn) 由于NAND的自身特點,對NAND Flash的操作不能像對NOR F
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1