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

正文內(nèi)容

嵌入式汽車定位系統(tǒng)開發(fā)研究-底層研究畢業(yè)設(shè)計(jì)論文-閱讀頁

2025-07-13 13:18本頁面
  

【正文】 VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。這兩個(gè)特點(diǎn)正是 UBoot 項(xiàng)目的開發(fā)目標(biāo),即支持盡可能多的嵌入式處理器和嵌入式操作系統(tǒng)。其它系列的處理器和操作系統(tǒng)基本是在 2022 年 11 月 PPCBOOT 改名為 UBoot 后逐步擴(kuò)充的。當(dāng)前,UBoot 項(xiàng)目正在他的領(lǐng)軍之下,眾多有志于開放源碼 BOOT LOADER 移植工作的嵌入式開發(fā)人員正如火如荼地將各個(gè)不同系列嵌入式處理器的移植工作不斷展開和深入,以支持更多的嵌入式操作系統(tǒng)的裝載與引導(dǎo)。各個(gè)部分的流程圖如下:湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 15 面向目標(biāo)板的代碼修改(1)Uboot 代碼修改前提搭建了一個(gè) my2440 開發(fā)板 uboot 的框架,要使其功能實(shí)現(xiàn),1 因 2440 和 2410 的資源差不多,主頻和外設(shè)有點(diǎn)差別,所以我們就在board/samsung/下建立自己開發(fā)板的項(xiàng)目,取名叫 my2440 2 因 2440 和 2410 的資源差不多,所以就以 2410 項(xiàng)目的代碼作為模板,以后再修改,將 2410 下所有的代碼復(fù)制到 2440 下,進(jìn)入 my2440 目錄,將 my2440 下的 改名為 ,修改 Makefile 文件,命令如下:gedit board/samsung/my2440/Makefile COBJS := 回到 uboot 根目錄,建立 2440 頭文件,3 修改 uboot 跟目錄下的 Makefile 文件。4 測試編譯新建的 my2440 開發(fā)板項(xiàng)目,如果出現(xiàn) Configuring for my2440 board...則表示設(shè)置正確,編譯后在根目錄下會(huì)出現(xiàn) 文件,則 uboot 移植的第一步就算完成了(2)my2440 開發(fā)板 uboot 的 stage1 入口點(diǎn)分析。那么我們的 my2440 開發(fā)板 uboot 的這個(gè)鏈接文件就 cpu/arm920t/,打開該文件部分代碼,可以看到定義生成文件的目標(biāo)平臺(tái)是 arm,定義程序的人口點(diǎn)是_start。以上就是uboot 的 stage1 入口的過程。由于在 uboot 啟動(dòng)代碼處有兩行是 AT91RM9200DK 的 LED 初始代碼,但我們湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 my2440 上的 LED 資源與該開發(fā)板的不一致,所以我們要?jiǎng)h除或屏蔽該處代碼,再加上 my2440 的 LED 驅(qū)動(dòng)代碼,代碼如下: if defined(CONFIG_S3C2440) define GPBCON 0x56000010define GPBDAT 0x56000014define GPBUP 0x56000018 ldr r0, =GPBUP ldr r1, =0x7FF //即:二進(jìn)制 11111111111,關(guān)閉 PB 口上拉 str r1, [r0] ldr r0, =GPBCON ldr r1, =0x154FD //即:二進(jìn)制 010101010011111101 str r1, [r0] ldr r0, =GPBDAT ldr r1, =0x1C0 str r1, [r0] endif在 include/configs/ 頭文件中添加 CONFIG_S3C2440 宏 gedit include/configs/define CONFIG_S3C2440 1 /* in a SAMSUNG S3C2440 SoC */現(xiàn)在編譯 uboot,在根目錄下會(huì)生成一個(gè) 文件。湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 17 (4)在 uboot 中添加對 S3C2440 一些寄存器的支持、添加中斷禁止部分和時(shí)鐘設(shè)置部分。 }endif return((CONFIG_SYS_CLK_FREQ * m) / (p s))。湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 19 endif return((clk_powerCLKDIVN amp。}修改完畢后我們再重新編譯 uboot,然后再下載到 RAM 中運(yùn)行測試。(5)準(zhǔn)備進(jìn)入 uboot 的第二階段 ,通常,在嵌入式 bootloader 中,有兩種方式來引導(dǎo)啟動(dòng)內(nèi)核:從 Nor Flash 啟動(dòng)和從Nand Flash 啟動(dòng)。1 我們修改命令行前的名字和 Nor Flash 參數(shù)部分的定義如下:define CONFIG_SYS_PROMPT [MY2440] if 0 define CONFIG_AMD_LV400 1 define CONFIG_AMD_LV800 1 endifdefine CONFIG_SYS_MAX_FLASH_BANKS 1 ifdef CONFIG_AMD_LV800define PHYS_FLASH_SIZE 0x00100000 define CONFIG_SYS_MAX_FLASH_SECT (19) define CONFIG_ENV_ADDR(CONFIG_SYS_FLASH_BASE + 0x0F0000) endififdef CONFIG_AMD_LV400define PHYS_FLASH_SIZE 0x00080000 define CONFIG_SYS_MAX_FLASH_SECT (11) define CONFIG_ENV_ADDR(CONFIG_SYS_FLASH_BASE + 0x070000) endifdefine CONFIG_SST_39VF1601 1 define PHYS_FLASH_SIZE 0x202200 define CONFIG_SYS_MAX_FLASH_SECT (512) define CONFIG_ENV_ADDR(CONFIG_SYS_FLASH_BASE + 0x040000) 2 添加對我們 mini2440 開發(fā)板上 2M 的 Nor Flash(型號(hào)為 SST39VF1601)的支持。 FLASH_VENDMASK) |(AMD_ID_LV800B amp。elif defined(CONFIG_SST_39VF1601) //在 CONFIG_AMD_LV800 后面添加CONFIG_SST_39VF1601(SST_MANUFACT amp。 FLASH_TYPEMASK)。 j flash_info[i].sector_count。 // } // /* 2nd and 3rd are both 8 KB */ // if ((j == 1) || (j == 2)) { // flash_info[i].start[j] = flashbase + 0x4000 + (j 1) * 0x2022。 // } //} else { // flash_info[i].start[j] = flashbase + (j 3) * MAIN_SECT_SIZE。}4 修改 flash_print_info 函數(shù)如下: case (AMD_MANUFACT amp。 break。 FLASH_VENDMASK): //添加 SST39VF1601 的 printf (SST: )。case (AMD_ID_LV800B amp。 break。 FLASH_TYPEMASK): //添加 SST39VF1601 的 printf (1x SST39VF1610 (16Mbit)\n)。 5 修改 flash_erase 函數(shù)如下://if ((infoflash_id amp。 FLASH_VENDMASK)) {// return ERR_UNKNOWN_FLASH_VENDOR。 FLASH_VENDMASK) != (SST_MANUFACT amp。}///* wait until flash is ready *///chip = 0。// /* check timeout */// if (get_timer_masked () // CONFIG_SYS_FLASH_ERASE_TOUT) {// MEM_FLASH_ADDR1 = CMD_READ_ARRAY。湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 22 // break。amp。 0xFFFF) amp。// if (!chip// amp。 (result amp。 BIT_PROGRAM_ERROR)// chip = ERR。//MEM_FLASH_ADDR1 = CMD_READ_ARRAY。// goto outahere。// goto outahere。MEM_FLASH_ADDR2 = CMD_UNLOCK2。MEM_FLASH_ADDR1 = CMD_PROGRAM。*addr = data。//do {// result = *addr。// break。amp。 0x80) == (data amp。// if (!chip amp。 ((result amp。 BIT_PROGRAM_ERROR)) {// result = *addr。 0x80) == (data amp。// else// chip = ERR。//*addr = CMD_READ_ARRAY。while (1){ if ((*addr amp。 0x40)) continue。 0x80) == (data amp。 break。(6)準(zhǔn)備進(jìn)入 uboot 的第二階段(在 uboot 中添加對我們開發(fā)板上 Nand Flash 的支持)。1 在 include/configs/ 頭文件中定義 Nand 要用到的宏和寄存器,如下: define CONFIG_S3C2440_NAND_BOOT 1define NAND_CTL_BASE 0x4E000000 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 24 define STACK_BASE 0x33F00000 //定義堆棧的地址define STACK_SIZE 0x8000 //堆棧的長度大小define oNFCONF 0x00 define oNFCONT 0x04 define oNFADDR 0x0c define oNFDATA 0x10 define oNFCMD 0x08 define oNFSTAT 0x20 define oNFECC 0x2c 2 修改 cpu/arm920t/ 這個(gè)文件,使 uboot 從 Nand Flash 啟動(dòng),在上一節(jié)中提過,uboot 默認(rèn)是從 Nor Flash 啟動(dòng)的。= ~(11)) //Nand 片選使能define NAND_CHIP_DISABLE (NFCONT |= (11)) //取消 Nand 片選define NAND_CLEAR_RB (NFSTAT |= (12))define NAND_DETECT_RB { while(! (NFSTATamp。}define NAND_SECTOR_SIZE 512define NAND_BLOCK_MASK (NAND_SECTOR_SIZE 1)/* low level nand read function */int nand_read_ll(unsigned char *buf, unsigned long start_addr, int size){ int i, j。 NAND_BLOCK_MASK) || (size amp。 //地址或長度不對齊 } NAND_CHIP_ENABLE。 i (start_addr + size)。 NFCMD = 0。 0xFF。 0xFF。 0xFF。 0xFF。 for(j=0。 j++, i++) { *buf = (NFDATA amp。 buf++。 //取消片選信號(hào) return 0。添加下面兩行代碼的主要目的是防止編譯器把我們自己添加的用于 nandboot 的子函數(shù)放到 4K 之后,否則是無法啟動(dòng)的。然后先將 mini2440 開發(fā)板調(diào)到 Nor 啟動(dòng)檔,利用 supervivi 的 a 命令將 下載到開發(fā)板的 Nand Flash 中,再把開發(fā)板調(diào)到 Nand 啟動(dòng)檔,(7)現(xiàn)在進(jìn)入 uboot 的第二階段(添加 Nand Flash(K9F1208U0C)的有關(guān)操作支持)。當(dāng) uboot 的 運(yùn)行到“_start_armboot: .word start_armboot”時(shí),就會(huì)調(diào)用lib_arm/ 中的 start_armboot 函數(shù),至此 uboot 正式進(jìn)入第二階段
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1