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

正文內(nèi)容

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

2025-08-04 10:55本頁面
  

【正文】 化,尤其是一些 設(shè)備的驅(qū)動程序,這從 UBoot 源碼的注釋中能體現(xiàn)這一點(diǎn)。其目前要支持的目標(biāo)操作系統(tǒng)是OpenBSD, NetBSD, FreeBSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。這兩個(gè)特點(diǎn)正是 UBoot 項(xiàng)目的開發(fā)目標(biāo),即支持盡可能多的 嵌入式處理器 和嵌入式操作系統(tǒng)。其它系列的處理器和操作系統(tǒng)基本是在 20xx 年 11 月 PPCBOOT 改名為 UBoot 后逐步擴(kuò)充的。當(dāng)前, UBoot 項(xiàng)目正在他的領(lǐng)軍之下,眾多有志于開放源碼 BOOT LOADER 移植工作的嵌入式開發(fā)人員正如火 如荼地將各個(gè)不同系列嵌入式處理器的移植工作不斷展開和深入,以支持更多的嵌入式操作系統(tǒng)的裝載與引導(dǎo)。 各個(gè)部分的流程圖如下: 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 ( 1) Uboot 代碼修改前提 搭建了一個(gè) my2440 開發(fā)板 uboot 的框架,要使其功能實(shí)現(xiàn), ① 因 2440 和 2410 的資源差不多,主頻和外設(shè)有點(diǎn)差別,所以我們就在board/samsung/下建立自己開發(fā)板的項(xiàng) 目,取名叫 my2440 ② 因 2440 和 2410 的資源差不多,所以就以 2410 項(xiàng)目的代碼作為模板,以后再修改,將 2410下所有的代碼復(fù)制到 2440下,進(jìn)入 my2440目錄,將 my2440下的 改名為 ,修改 Makefile 文件,命令如下: gedit board/samsung/my2440/Makefile COBJS := 回到 uboot 根目錄,建立 2440 頭文件, ③ 修改 uboot 跟目錄下的 Makefile 文件。 ④ 測試編譯新建的 my2440 開發(fā)板項(xiàng)目,如果出現(xiàn) Configuring for my2440 board...則表示設(shè)置正確,編譯后在根目錄下會出現(xiàn) ,則 uboot 移植的第一步就算完成了 ( 2) my2440 開發(fā)板 uboot 的 stage1 入口點(diǎn)分析。那么我們的 my2440 開發(fā)板 uboot 的這個(gè)鏈接文件就 cpu/arm920t/,打開該文件部分代碼,可以看到定義生成文件的目標(biāo)平臺是 arm,定義程序的人口點(diǎn)是 _start。以上就是 uboot 的stage1 入口的過程。 由于在 uboot 啟動代碼處有兩行是 AT91RM9200DK 的 LED 初始代碼,但我們 my2440湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 15 上的 LED 資源與該開發(fā)板的不一致,所以我們要?jiǎng)h除或屏蔽該處代碼,再加上 my2440的 LED 驅(qū)動代碼,代碼如下 : if defined(CONFIG_S3C2440) define GPBCON 0x56000010 define GPBDAT 0x56000014 define 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,在根目錄下會生 成一個(gè) 。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 ( 4)在 uboot 中添加對 S3C2440 一些寄存器的支持、添加中斷禁止部分和時(shí)鐘設(shè)置部分。 } endif return((CONFIG_SYS_CLK_FREQ * m) / (p s))。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 18 endif return((clk_powerCLKDIVN amp。 } 修改完畢后我們再重新編譯 uboot,然后再下載到 RAM 中運(yùn)行測試。 (5)準(zhǔn)備進(jìn)入 uboot 的第二階段 , 通常,在嵌入式 bootloader 中,有兩種方式來引導(dǎo)啟動內(nèi)核:從 Nor Flash啟動和從 Nand Flash啟動。 ① 我們修改命令行前的名字和 Nor Flash參數(shù)部分的定義如下: define CONFIG_SYS_PROMPT [MY2440] if 0 define CONFIG_AMD_LV400 1 define CONFIG_AMD_LV800 1 endif define CONFIG_SYS_MAX_FLASH_BANKS 1 ifdef CONFIG_AMD_LV800 define PHYS_FLASH_SIZE 0x00100000 define CONFIG_SYS_MAX_FLASH_SECT (19) define CONFIG_ENV_ADDR(CONFIG_SYS_FLASH_BASE + 0x0F0000) endif ifdef CONFIG_AMD_LV400 define PHYS_FLASH_SIZE 0x00080000 define CONFIG_SYS_MAX_FLASH_SECT (11) define CONFIG_ENV_ADDR(CONFIG_SYS_FLASH_BASE + 0x070000) endif define CONFIG_SST_39VF1601 1 define PHYS_FLASH_SIZE 0x20xx00 define CONFIG_SYS_MAX_FLASH_SECT (512) define CONFIG_ENV_ADDR(CONFIG_SYS_FLASH_BASE + 0x040000) ② 添加對我們 mini2440 開發(fā)板上 2M的 Nor Flash(型號為 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) * 0x20xx。 // } //} else { // flash_info[i].start[j] = flashbase + (j 3) * MAIN_SECT_SIZE。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 20 } ④ 修改 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)。 ⑤ 修改 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。 // 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的支持)。 ① 在 include/configs/ Nand 要用到的宏和寄存器,如下: define CONFIG_S3C2440_NAND_BOOT 1 define NAND_CTL_BASE 0x4E000000 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 23 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 ② 修改 cpu/arm920t/ 這個(gè)文件,使 uboot 從 Nand Flash啟動,在上一節(jié)中提過, uboot 默認(rèn)是從 Nor Flash啟動的。= ~(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 512 define 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++。 //取消片選信號 return 0
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1