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

正文內(nèi)容

遠(yuǎn)程溫度監(jiān)控項(xiàng)目設(shè)計(jì)方案-資料下載頁(yè)

2025-04-26 07:50本頁(yè)面
  

【正文】 flash 分為三個(gè)部分分別是 832KB、704KB 和 512KB,前面兩個(gè)部分是內(nèi)核鏡像和romfs 文件系統(tǒng),后面的 512KB 是給 JFFS2 文件系統(tǒng),linux 系統(tǒng)啟動(dòng)的時(shí)候再將25JFFS2 掛載。在設(shè)置好之后就可以編譯 uboot,使用命令 make LPC2468OEM_Board_config 先配置文件,然后再 make。編譯完之后,在 uboot 根目錄下生成 ,然后通過JFlash 將 uboot 燒寫進(jìn)內(nèi)部 flash,設(shè)置好串口工具,即可看到 uboot 的啟動(dòng)信息。如下:圖 264 uClinux 系統(tǒng)的移植UCLINUX 表 示 MICROCONTROL “微 控 制 器 領(lǐng) 域 中 的 LINUX 系統(tǒng) ”, 是 LINEO 公 司 的 主 打 產(chǎn) 品 , 同 時(shí) 也 是 開 放 源 碼 的 嵌 入 式 LINUX 的 典 范 之 作 。UCLINUX 主 要 是 針 對(duì) 目 標(biāo) 處 理 器 沒 有 存 儲(chǔ) 管 理 單 元 MMU( MEMORY MANAGEMENT UNIT) 的 嵌 入 式 系 統(tǒng) 而 設(shè) 計(jì) 的 。 它 已 經(jīng) 被 成 功 地 移 植 到 了 很 多 平 臺(tái) 上 。uClinux 系 統(tǒng) 多 采 用 Romfs 文 件 系 統(tǒng) , Romfs 是 一 種 相 對(duì) 簡(jiǎn) 單 、 占 用 空 間 較 少的 文 件 系 統(tǒng) 。 空 間 的 節(jié) 約 來 自 于 兩 個(gè) 方 面 : 首 先 內(nèi) 核 支 持 Romfs 文 件 系 統(tǒng) 比 支 持ext2 文 件 系 統(tǒng) 需 要 更 少 的 代 碼 ; 其 次 romfs 文 件 系 統(tǒng) 相 對(duì) 簡(jiǎn) 單 , 在 建 立 文 件 系 統(tǒng)超 級(jí) 塊 ( Superblock) 需 要 更 少 的 存 儲(chǔ) 空 間 。 Romfs 是 只 讀 的 文 件 系 統(tǒng) , 禁 止 寫 操作 , 因 此 系 統(tǒng) 同 時(shí) 需 要 虛 擬 盤 ( RAMDISK) 支 持 臨 時(shí) 文 件 和 數(shù) 據(jù) 文 件 的 存 儲(chǔ) 。隨 著 技 術(shù) 的 發(fā) 展 , 近 年 來 日 志 文 件 系 統(tǒng) 在 uClinux 系 統(tǒng) 上 得 到 了 較 多 的 應(yīng) 用, 其 中 以 支 持 NOR FLASH 的 JFFS、 JFFS2 文 件 系 統(tǒng) 和 支 持 NAND FLASH 的 YAFFS最 為 流 行 。 這 些 文 件 系 統(tǒng) 都 支 持 掉 電 文 件 保 護(hù) , 同 時(shí) 支 持 標(biāo) 準(zhǔn) 的 MTD 驅(qū) 動(dòng) 。因 此 , 本 文 的 uclinux 文 件 系 統(tǒng) 采 用 的 是 romfs+jffs2, 系 統(tǒng) 系 統(tǒng) 之 后 在 將jffs2 分 區(qū) 掛 載 。 基本內(nèi)核的移植(1)解壓 uClinux 源碼并將原來的 linux 內(nèi)核源碼刪除;tar –zxvf rm r uClinuxdist/rm r uClinuxdist/rm r uClinuxdist/(2)解壓 內(nèi)核打上相關(guān)補(bǔ)丁并且移動(dòng)到 uclinux 相關(guān)目錄;tar jxvf tar –zxvf | patch p0cat | patch p0mv uClinuxdist/(3) 安裝 LPC2468 BSP; tar –zxvf 在/否則編譯會(huì)出錯(cuò)。然后 make menuconfig 除了 SDRAM 和 Flash 基地址需要改變之外其它的按照默認(rèn)的即可如圖:27圖 編譯內(nèi)核:make linux;編譯庫(kù):make lib_only;編譯用戶程序:make user_only;制作 romfs:make romfs;生成鏡像:make image;最后 make,之后,如果再修改的話只編譯相應(yīng)的選項(xiàng)即可,節(jié)省時(shí)間。在 uClinuxdist/images 下生成 romfs 鏡像 。在 uClinuxdist/ 下生成內(nèi)核鏡像 vmlinux,此時(shí)的 vmlinux 并不能直接使用,還要對(duì)其進(jìn)一步的處理。為了方便寫了個(gè) shell:/bin/shbuild uImage for uclinuxpiaozhiyearmlinuxobjcopy O binary R .note R .ment S vmlinux gzip 9 /home/piaozhiye/0xa0008000 e 0xa0008000 n linux d 第一個(gè)是將 vmlinux 轉(zhuǎn)換成 的二進(jìn)制格式。第二個(gè)是用 gzip 壓縮 生成 。第三個(gè)是使用編譯 uboot 生成的 mkimage 將 轉(zhuǎn)換成 。下面是 mkimage 的用法:Usage: /home/piaozhiye/28 l == list image header information /home/piaozhiye/[x] A arch O os T type C p a addr e ep n name d data_file[:data_file...] image A == set architecture to 39。arch39。 O == set operating system to 39。os39。 T == set image type to 39。type39。 C == set pression type 39。p39。 a == set load address to 39。addr39。 (hex) e == set entry point to 39。ep39。 (hex) n == set image name to 39。name39。 d == use image data from 39。datafile39。 x == set XIP (execute in place)現(xiàn)在 uClinux 基本上可以運(yùn)行了,不過此時(shí) flash 驅(qū)動(dòng)、網(wǎng)卡等驅(qū)動(dòng)都沒有,只是在串口打印出一些相關(guān)信息。通過 tftp 下載鏡像:首先將內(nèi)核和 romfs 鏡像復(fù)制到 TFTP 根目錄下然后使用命令:下載內(nèi)核到 a1000000:tftp a1000000 下載 romfs 到 a1800000:tftp a1800000 romfs在內(nèi)存中運(yùn)行:bootm a1000000 Linux nor flash 驅(qū) 動(dòng) 移 植 Linux mtd 簡(jiǎn)介MTD(memory technology device 內(nèi) 存 技 術(shù) 設(shè) 備 )是 用 于 訪 問 memory 設(shè) 備( ROM、 flash) 的 Linux 的 子 系 統(tǒng) 。 MTD 的 主 要 目 的 是 為 了 使 新 的 memory 設(shè) 備 的驅(qū) 動(dòng) 更 加 簡(jiǎn) 單 , 為 此 它 在 硬 件 和 上 層 之 間 提 供 了 一 個(gè) 抽 象 的 接 口 。 MTD 的 所 有 源代 碼 在 /drivers/mtd 子 目 錄 下 。 將 CFI 接 口 的 MTD 設(shè) 備 分 為 四 層 ( 從 設(shè) 備 節(jié) 點(diǎn) 直到 底 層 硬 件 驅(qū) 動(dòng) ) , 這 四 層 從 上 到 下 依 次 是 : 設(shè) 備 節(jié) 點(diǎn) 、 MTD 設(shè) 備 層 、 MTD 原 始 設(shè)備 層 和 硬 件 驅(qū) 動(dòng) 層 。一、Flash 硬件驅(qū)動(dòng)層:硬件驅(qū)動(dòng)層負(fù)責(zé)在 init 時(shí)驅(qū)動(dòng) Flash 硬件,Linux MTD設(shè)備的 NOR Flash 芯片驅(qū)動(dòng)遵循 CFI 接口標(biāo)準(zhǔn),其驅(qū)動(dòng)程序位于 drivers/mtd/chips子目錄下。NAND 型 Flash 的驅(qū)動(dòng)程序則位于/drivers/mtd/nand 子目錄下。 二、MTD 原始設(shè)備:原始設(shè)備層有兩部分組成,一部分是 MTD 原始設(shè)備的通用代碼,29另一部分是各個(gè)特定的 Flash 的數(shù)據(jù),例如分區(qū)。 三、MTD 設(shè)備層:基于 MTD 原始設(shè)備,linux 系統(tǒng)可以定義出 MTD 的塊設(shè)備(主設(shè)備號(hào) 31)和字符設(shè)備(設(shè)備號(hào) 90) 。MTD 字符設(shè)備的定義在 中實(shí)現(xiàn),通過注冊(cè)一系列 fileoperation 函數(shù)(lseek、open、close、read、write) 。MTD 塊設(shè)備則是定義了一個(gè)描述 MTD 塊設(shè)備的結(jié)構(gòu) mtdblk_dev,并聲明了一個(gè)名為 mtdblks 的指針數(shù)組,這數(shù)組中的每一個(gè) mtdblk_dev 和 mtd_table 中的每一個(gè) mtd_info 一一對(duì)應(yīng)。 四、設(shè)備節(jié)點(diǎn):通過 mknod 在/dev 子目錄下建立 MTD 字符設(shè)備節(jié)點(diǎn)(主設(shè)備號(hào)為90)和 MTD 塊設(shè)備節(jié)點(diǎn)(主設(shè)備號(hào)為 31) ,通過訪問此設(shè)備節(jié)點(diǎn)即可訪問 MTD 字符設(shè)備和塊設(shè)備?,F(xiàn)在的 NorFlash 大多支持 CFI 或者 JEDEC 這樣的規(guī)范,根據(jù)這些規(guī)范可以自動(dòng)檢測(cè)出芯片的一些參數(shù)并進(jìn)行讀寫,所以 uClinux 將這些規(guī)范的驅(qū)動(dòng)實(shí)現(xiàn)單獨(dú)放在mtd/chips 目錄下。也就是說這個(gè)目錄下放的是芯片的通用驅(qū)動(dòng)代碼,這些代碼本身是不會(huì)主動(dòng)去檢測(cè)芯片的存在的,它僅僅是注冊(cè)了一個(gè)驅(qū)動(dòng)供其它模塊調(diào)用。在通用規(guī)范的基礎(chǔ)上,每個(gè)不同的廠商有不同的實(shí)現(xiàn),且芯片在不同的系統(tǒng)中可能有不同的參數(shù),如基地址,位寬等。uClinux 將這部分獨(dú)立出來放在 mtd/maps 下。這個(gè)目錄下的代碼將根據(jù)芯片實(shí)現(xiàn)的不同規(guī)范調(diào)用相應(yīng)的 chips 驅(qū)動(dòng)。因此 chips 下的模塊必須先于 maps 下的模塊初始化。我們主要做的工作是在 map 目錄下填寫map_info 結(jié)構(gòu)體,并作相應(yīng)的初始化。 Nor flash 驅(qū)動(dòng)移植開發(fā)板 nor flash 分分區(qū)如下://driver/mtd/maps//*…………一些頭文件*/define WINDOW_SIZE 0X202200 //2MB define WINDOW_ADDR 0X80000000 // 基地址define BUSWIDTH2 //16/8define PROBETYPES {cfi_probe,NULL} //探測(cè)接口類型define MSG_PREFIX LPC2468NOR://printk 前綴define MTDID lpc2468nor://MTD 驅(qū)動(dòng)struct map_info lpc2468nor_map ={.name = lpc2468nor_flash,.size = WINDOW_SIZE,.bankwidth = BUSWIDTH,30.phys = WINDOW_ADDR}。ifdef CONFIG_MTD_PARTITIONSstatic struct mtd_partition static_partitions[]={{.name = kernel,//內(nèi)核鏡像.offset = 0,.size = 0xd0000},{.name = romfs,//romfs 做根文件系統(tǒng).offset = 0xd0000,.size = 0xb0000},{.name = jffs2,//用于 JFSS2 文件系統(tǒng),系統(tǒng)啟動(dòng)之后掛載該分區(qū).offset = 0x180000,.size = 0x80000,}}。endifdefine NUM_PARTITIONS ARRAY_SIZE(lpc2468nor_partitions)static struct mtd_info *mymtd。static int mtd_parts_nb = 0。static struct mtd_partition *mtd_parts = 0。//norflash 驅(qū)動(dòng)模塊的初始化代碼static int __init init_lpc2468nor_map(void){ static const char *rom_probe_types[] = PROBETYPES。const char **type。const char *part_type = 0。 printk(KERN_NOTICE MSG_PREFIX 0x%08x at 0x%08x \n,WINDOW_SIZE,WINDOW_ADDR)。// 將物理地址映射到 linux 的內(nèi)核空間 = ioremap(WINDOW_ADDR, WINDOW_SIZE)。if(!){printk(MSG_PREFIX Failed to ioremap_nocache\n)。}// 填充 read, write, copy_from, copy_to 幾個(gè)函數(shù)指針為默認(rèn)值。simple_map_init(amp。lpc2468nor_map)。mymtd = 0。type =rom_probe_types。for(。 !mymtd amp。amp。 *type 。 type++){/* do_map_probe 這個(gè)函數(shù)位于 drivers/mtd/chips/,用于查找指定名稱的 chip_driver,并調(diào)用它完成芯片的檢測(cè)。*/31mymtd = do_map_probe(*type, amp。lpc2468nor_map)。}if(mymtd){ mymt
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1