• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于AM335X與WinCE7.0平臺(tái)的內(nèi)存配置方法及應(yīng)用

      2018-09-04 09:37:16袁霞李澤銀
      軟件導(dǎo)刊 2018年6期
      關(guān)鍵詞:內(nèi)存定義芯片

      袁霞 李澤銀

      摘 要:在嵌入式領(lǐng)域,時(shí)常需針對(duì)應(yīng)用調(diào)整存儲(chǔ)設(shè)備大小及更換型號(hào),如何保證更換后系統(tǒng)正常運(yùn)行,是各BSP移植調(diào)試的核心。以運(yùn)行Windows CE7.0操作系統(tǒng)的AM3352主板為開發(fā)平臺(tái),詳細(xì)介紹了更換存儲(chǔ)芯片型號(hào)和大小后,WinCE7.0系統(tǒng)下的地址參數(shù)配置及修改虛擬地址映射關(guān)系的原理和方法。將DDR3 SDRAM芯片從H5TQ2G83DFR-G7C更換為H5TQ2G83DFR-H9C,NANDFlash芯片從H27U4G8F2DTR-BC更換為H27U1G8F2BTR-BC,通過測(cè)試驗(yàn)證了該方法可行,主板能夠正常啟動(dòng)進(jìn)入操作系統(tǒng)桌面,系統(tǒng)各應(yīng)用程序能正常運(yùn)行。該方法可為不同物理內(nèi)存大小和型號(hào)的SDRAM及NANDFlash芯片在WinCE7.0上移植與參數(shù)配置提供參考。

      關(guān)鍵詞:WinCE7.0;內(nèi)存管理;物理地址;虛擬地址;內(nèi)存參數(shù)配置

      DOI:10.11907/rjdk.173286

      中圖分類號(hào):TP301

      文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)006-0039-06

      Abstract:In embedded domain, we often need to adjust the storage device size and replace models base on the application, and how to ensure that the system startup correctly is the core of BSP porting debugging.This paper is based on the AM3352 micro-processor and WinCE7.0 operating system, introduces the principle and method about resetting the memory parameters and changing the cached address-mapping based on WinCE7.0 operating system. We change the DDR3 SDRAM chip from H5TQ2 G83DFR-G7C to H5TQ2G83DFR-H9C,and changes the NANDFlash chip from H27U4G8F2DTR-BC to H27U1G8F2bTR-BC.The feasibility of above method is proved by the test,and the device starts successfully and logsin the OS desktop, solving the problems about transplanting the different SDRAM and NANDFlash chips which contain defferent physical address size or type on WinCE7.0, and resetting the memory parameters exactly.

      Key Words:WinCE7.0; memory-mapping; physical address; cached address; reset the memory parameters

      0 引言

      在嵌入式處理器領(lǐng)域,存儲(chǔ)設(shè)備大小和型號(hào)調(diào)整是軟件調(diào)試的一大難題,如何使調(diào)整后的SDRAM和NANDFlash芯片在系統(tǒng)中正常穩(wěn)定運(yùn)行,是移植的核心。本文以某數(shù)控縫制設(shè)備主板為開發(fā)平臺(tái),該主板在英蓓特提供的Devkit8600評(píng)估板基礎(chǔ)上進(jìn)行應(yīng)用適配,以 AM3352處理器為核心,集成USB、以太網(wǎng)、串口、觸摸屏等外圍設(shè)備,運(yùn)行WinCE7.0操作系統(tǒng)[1]。為節(jié)約成本,提高資源利用率,將評(píng)估板提供的512MB SDRAM和512MB NANDFlash芯片更換,調(diào)整SDRAM大小為256MB,NANDFlash為128MB。當(dāng)內(nèi)存大小改變時(shí),尤其是內(nèi)存變小時(shí),各MEMORY段的物理地址及虛擬地址映射關(guān)系都需要進(jìn)行相應(yīng)修改,否則內(nèi)核被放在兩個(gè)內(nèi)存片上,系統(tǒng)將無法啟動(dòng)。

      本文簡(jiǎn)要介紹相關(guān)硬件開發(fā)平臺(tái),闡述并分析WinCE7.0系統(tǒng)內(nèi)存管理技術(shù),得到內(nèi)存調(diào)整及地址映射方法,并在WinCE7.0 BSP包基礎(chǔ)上進(jìn)行SDRAM與NANDFlash參數(shù)配置,修改對(duì)應(yīng)的虛擬地址映射關(guān)系,進(jìn)行詳細(xì)測(cè)試,以使主板成功啟動(dòng)且各程序正常運(yùn)行。

      1 WinCE7.0內(nèi)存管理

      Windows Embedded Compact 7簡(jiǎn)稱WinCE7.0,是一種安全可靠的實(shí)時(shí)高性能嵌入式操作系統(tǒng),將最新的網(wǎng)絡(luò)、多媒體與通信技術(shù)結(jié)合在一起封裝于小型設(shè)備中,具有搶占式多任務(wù)執(zhí)行特性和強(qiáng)大的通訊能力。WinCE7擁有Windows 7的特點(diǎn),支持虛擬內(nèi)存機(jī)制,按需分配內(nèi)存和內(nèi)存映射文件[2]。

      在WinCE7.0中,RAM(如SDRAM)、ROM(如EPPROM)和Flash Memory(如nand flash或nor flash)都被看成物理內(nèi)存。RAM在WINCE中像傳統(tǒng)的物理內(nèi)存一樣,為操作系統(tǒng)和應(yīng)用程序提供運(yùn)行及緩存空間,對(duì)于WINCE來說,BSP包通常使用配置文件config.bib定義物理內(nèi)存片含義、用途及大小。名字為RAM的段分配SDRAM給WINCE操作系統(tǒng)及應(yīng)用程序,提供運(yùn)行和緩存空間,其大小需要根據(jù)系統(tǒng)的SDRAM大小決定,在物理上必須是連續(xù)的。如果系統(tǒng)的SDRAM被分成幾片,則RAM 片只能聲明在其中一片上。而用于存儲(chǔ)操作系統(tǒng)鏡像的NK 片則沒有此限制,但當(dāng)NK 跨越兩個(gè)以上物理內(nèi)存片時(shí),系統(tǒng)啟動(dòng)會(huì)顯示這個(gè)OS 包跨越了多個(gè)物理內(nèi)存片,認(rèn)為是錯(cuò)誤的,但不影響系統(tǒng)的執(zhí)行與穩(wěn)定性,因?yàn)橄到y(tǒng)啟動(dòng)之時(shí)便會(huì)打開MMU 而使用虛擬地址,從而看到連續(xù)的內(nèi)存空間。但是如果內(nèi)核被放在兩個(gè)內(nèi)存片上,系統(tǒng)將無法啟動(dòng)。其它保留起來的內(nèi)存片一般是給驅(qū)動(dòng)程序DMA 用,由于DMA 直接用物理地址,必須保證它們?cè)谖锢砩系倪B續(xù)性。

      WINCE是32位操作系統(tǒng),虛擬尋址能力可達(dá)4GB,所有進(jìn)程共享一個(gè)4GB的虛擬地址空間。WINCE的內(nèi)存基于頁式管理, 4GB虛擬內(nèi)存空間被分為若干個(gè)頁,不同處理器支持的頁大小通常不一樣, WINCE操作系統(tǒng)支持1KB和4KB兩種頁大小。WINCE虛擬內(nèi)存的申請(qǐng)分為保留(reserve)和提交(commit)兩個(gè)過程。虛擬地址空間的保留以64KB為單位,任何一次虛擬內(nèi)存申請(qǐng)都會(huì)返回一個(gè)64KB整數(shù)倍的地址,而把虛擬內(nèi)存提交到物理內(nèi)存是以頁為單位的[3]。

      MMU是WinCE中重要的模塊,它把進(jìn)程申請(qǐng)的內(nèi)存映射到物理內(nèi)存,并且提供系統(tǒng)4GB的尋址能力。在程序啟動(dòng)時(shí),虛擬內(nèi)存按照需要及時(shí)地申請(qǐng)程序代碼空間所需要的物理內(nèi)存,而不是在程序啟動(dòng)時(shí)就把它完全加載到物理內(nèi)存中[1]。如果物理內(nèi)存是連續(xù)的,OEMAddressTable 中只需要一項(xiàng)就可以完成對(duì)內(nèi)存的地址映射。但如果BSP 運(yùn)行在SDRAM 物理上不連續(xù)的系統(tǒng)中時(shí),OEMAddressTable 中需要更多項(xiàng)將SDRAM 映射到連續(xù)的虛擬地址上,否則會(huì)大大增加尋址難度。尤其當(dāng)物理地址不連續(xù)時(shí)系統(tǒng)需要做更多工作[4]。因此在修改內(nèi)存地址參數(shù)時(shí),一個(gè)原則是保證各片物理內(nèi)存不要重疊,中間不要留空洞,以節(jié)約內(nèi)存,且映射的虛擬地址連續(xù)。

      WINCE的虛擬地址空間被分為2個(gè)2GB區(qū)域:低地址2GB是用戶空間,供應(yīng)用程序使用;高地址2GB是內(nèi)核空間,供WINCE操作系統(tǒng)本身使用。從0x80000000開始是WINCE內(nèi)核使用的虛擬地址空間。虛擬地址0x80000000~0x9FFFFFFF一段用來靜態(tài)映射所有物理內(nèi)存。也就是說WINCE會(huì)把所有物理內(nèi)存1∶1地映射到這段虛擬地址上,而這段地址一共有512M,這也就是WINCE支持物理地址最大值是512MB的由來[3]。而虛擬地址0xA0000000~0xBFFFFFFF會(huì)重復(fù)映射所有的物理內(nèi)存,該段對(duì)物理內(nèi)存映射與0x80000000一段最大的不同是,0x80000000開始的一段物理內(nèi)存有緩沖,而從0xA0000000開始的一段是沒有緩存。通常,緩沖可以提高系統(tǒng)的I/O效率,但是對(duì)于一些OAL或者bootloader中的設(shè)備驅(qū)動(dòng)程序來說,緩沖有可能會(huì)更改人們對(duì)設(shè)備的寫操作順序從而造成災(zāi)難性后果。因此在驅(qū)動(dòng)程序中如果直接訪問設(shè)備I/O或寄存器,那么通常使用0xA0000000開始的那段虛擬地址[3]。

      2 硬件平臺(tái)

      DevKit8600評(píng)估套件是深圳市英蓓特科技有限公司推出的基于德州儀器(TI)AM3359處理器的評(píng)估套件。處理器集成了高達(dá)720MHz的ARM CortexTM-A8 內(nèi)核,并提供了豐富的外設(shè)接口[5]。本文以某數(shù)控縫制設(shè)備主板為開發(fā)平臺(tái),該主板在英蓓特提供的Devkit8600評(píng)估板基礎(chǔ)上進(jìn)行應(yīng)用適配,以 AM3352處理器為核心,集成USB、以太網(wǎng)、串口、觸摸屏等外圍設(shè)備,運(yùn)行WinCE7.0操作系統(tǒng)。更換了SDRAM與NANDFlash存儲(chǔ)芯片型號(hào)及大小,并增加了相關(guān)應(yīng)用。

      2.1 AM335X處理器

      AM335X德州儀器(TI)基于 ARM CortexTM-A8內(nèi)核的32位 RISC微處理器,主頻可高達(dá)720MHZ[6],并提供豐富的外設(shè)接口,在圖像、圖形處理、外設(shè)以及諸如etherCAT和PROFIBUS的工業(yè)接口選項(xiàng)方面具備較強(qiáng)優(yōu)勢(shì),并支持Linux、WinCE、Android等高級(jí)操作系統(tǒng)[7]。本文選用AM3352處理器作為平臺(tái)核心。

      2.2 H5TQ2G83DFR SDRAM芯片

      DevKit8600的DDR3 SDRAM芯片為H5TQ2G83DFR-G7C,每片大小為256MB,Devkit8600由2片H5TQ2G8 3DFR-G7C芯片構(gòu)成,共512MB。內(nèi)存芯片更換為H5TQ2G83DFR-H9C, 每片大小為128MB,共256MB。H5TQ2G83DFR是8位同步DDR3芯片,采用分頁存儲(chǔ),每頁大小為1KB,支持動(dòng)態(tài)分配和自動(dòng)刷新[8]。

      2.3 H27U1G8F2BTR NAND Flash芯片

      H27U4G8F2DTR-BC是DevKit8600的NAND Flash芯片,大小為512M。更換H27U1G8F2BTR-BC大小為128MB。與H27U4G8F2DTR-BC芯片除了設(shè)備ID和Block個(gè)數(shù)(存儲(chǔ)空間總大?。┎灰粯油?,其它參數(shù)及原理完全一樣。H27U1G8F2BTR-BC容量為128M*8bit,包含1 024個(gè)block,每個(gè)block分為64個(gè)page,支持燒寫、擦除、ECC校驗(yàn)等操作[9]。

      3 內(nèi)存研究與應(yīng)用

      3.1 WINCE7.0內(nèi)存配置

      WINCE的內(nèi)存(包括SDRAM 及FLASH)配置包含兩個(gè)方面:源代碼(包括C和匯編)中的定義、系統(tǒng)配置文件CONFIG.BIB 中的定義[10]。

      3.1.1 源代碼內(nèi)存設(shè)置

      源代碼中需要定義內(nèi)存的物理和虛擬地址與內(nèi)存大小,對(duì)應(yīng)文件為image_cfg.h,image_cfg.inc,以及初始化名為OEMAddressTable 的結(jié)構(gòu)數(shù)組,以告知系統(tǒng)物理地址與虛擬地址的對(duì)應(yīng)關(guān)系,系統(tǒng)根據(jù)其設(shè)置生成MMU 頁表,對(duì)應(yīng)文件為addrtab_cfg.inc。

      OEMAddressTable 用來初始化系統(tǒng)中各種設(shè)備的虛擬地址與物理地址的對(duì)應(yīng)關(guān)系。OEMAddressTable 為一個(gè)結(jié)構(gòu)數(shù)組,每項(xiàng)的第一個(gè)成員為虛擬地址,第二個(gè)成員為對(duì)應(yīng)的物理地址,最后一個(gè)成員為該段空間的大小。數(shù)組最后一項(xiàng)必須全部為0,以示整個(gè)數(shù)組結(jié)束。內(nèi)核啟動(dòng)時(shí)會(huì)讀取這個(gè)數(shù)組的內(nèi)容初始化MMU 頁表,啟用MMU,從而使程序可以用虛擬地址訪問設(shè)備[11]。當(dāng)然,OEMAddressTable 中所用到的每個(gè)物理地址及虛擬地址都需要在頭文件中定義,每個(gè)BSP 中定義該值的文件不盡相同,圖1為DevKit8600 BSP包中的OEMAddressTable定義。

      3.1.2 系統(tǒng)配置文件內(nèi)存設(shè)置

      系統(tǒng)配置文件CONFIG.BIB中一般會(huì)將內(nèi)存定義成不同的段,各段用作不同用途。CONFIG.BIB文件分兩個(gè)部分,即MEMORY段(見圖2)和CONFIG段(見圖3)[12]。MEMORY段定義內(nèi)存的分片方法,CONFIG段定義系統(tǒng)其它一些屬性。

      ROMIMAGE 通過一個(gè)內(nèi)存片的屬性判斷其用途。RESERVE屬性表明該內(nèi)存供BSP自己使用,系統(tǒng)不必關(guān)心其用途;RAMIMAGE 說明它是一片存放OS IMAGE 的內(nèi)存;而RAM 則表示該內(nèi)存為RAM,系統(tǒng)可以在其中分配空間運(yùn)行程序[13]。但存放ROM的該片內(nèi)存名稱即NK 一般不要改動(dòng),因?yàn)锽IB 文件中定義將一個(gè)文件加入到哪個(gè)ROM 片(WINCE 支持將ROM IMAGE 存放在不連續(xù)的幾個(gè)內(nèi)存片中)中時(shí)會(huì)用到該名稱。

      其它保留起來的內(nèi)存片如DISPLAY段用于WINCE系統(tǒng)顯示,DRIVERS段一般是給驅(qū)動(dòng)程序DMA 用,DMA 是直接用物理地址,應(yīng)該保證它們?cè)谖锢砩系倪B續(xù)性。因此,為了保證系統(tǒng)的正確性和穩(wěn)定性,在調(diào)整內(nèi)存時(shí),RESERVED標(biāo)識(shí)的內(nèi)存區(qū)域地址和大小均不在調(diào)整范圍內(nèi),只能根據(jù)實(shí)際選用的內(nèi)存芯片大小調(diào)整NK段和RAM段的大小,并修改物理地址與虛擬地址映射關(guān)系。

      CONFIG 段中還有幾點(diǎn)需要格外注意,見表1。

      3.2 SDRAM參數(shù)配置

      根據(jù)SDRAM的調(diào)整規(guī)則,RESERVED標(biāo)識(shí)的內(nèi)存區(qū)域地址和大小均不在調(diào)整范圍內(nèi),只能根據(jù)實(shí)際選用的內(nèi)存芯片大小調(diào)整RAMIMAGE段和RAM段的大小,即調(diào)整NK段和RAM段大小,對(duì)應(yīng)代碼為wince700\bsp\AM33X_BSP\AM33X_BSP\SRC\INC\image_cfg.h中的IMAGE_WINCE_CODE_SIZE和IMAGE_WINCE_RAM_SIZE。在本W(wǎng)inCE7.0 BSP包中,SDRAM物理地址參數(shù)定義如表2。

      XLDR程序段位于SRAM中,其物理地址起始位置為0x402F 1000,也不在調(diào)整范圍內(nèi)。

      將內(nèi)存芯片更換后,SDRAM總大小為256MB, DEVICE_RAM_SIZE設(shè)置為0x10000000。經(jīng)表2和式(1)計(jì)算,括號(hào)中(RESERVED標(biāo)識(shí)段)總大小需占48.1MB,如按表2參數(shù)分配內(nèi)存,總大小需占254MB ,SDRAM幾乎無余量,系統(tǒng)無法啟動(dòng),因此需對(duì)NK段和RAM段大小進(jìn)行調(diào)整,從而對(duì)應(yīng)的物理地址也需要調(diào)整,SDRAM大小計(jì)算公式如下:

      修改原則為:所有物理地址不超過0x90000000,各段地址不重復(fù),各段總和不超過256MB,RESERVED標(biāo)識(shí)段與EBOOT段不作調(diào)整,保證各片內(nèi)存不重疊,而且中間不留空洞,以節(jié)約內(nèi)存。NK段大小根據(jù)實(shí)際應(yīng)用中NK.bin大小決定(本文需要的nk.bin約為30MB),調(diào)整NK段和RAM大小后,各段的起始地址會(huì)依次調(diào)整.在\WINCE700\platform\AM33X_BSP\SRC\inc\image_cfg.h中修改以下參數(shù):

      #define DEVICE_RAM_SIZE0x10000000 //SDRAM總大小

      #define IMAGE_WINCE_CODE_SIZE0x03FFE000//64MB,NK段(NK.BIN大?。?/p>

      #define IMAGE_WINCE_RAM_PA0x84200000

      #define IMAGE_WINCE_RAM_CA0x84200000

      #define IMAGE_WINCE_RAM_SIZE0x03000000 //48MB,RAM段

      #define IMAGE_WINCE_RAM_DISK_SIZE_HEX03000000 // RAMDISK 48 MB, RESERVED

      #define IMAGE_WINCE_DISPLAY_PA0x8C000000

      #define IMAGE_WINCE_DISPLAY_CA0x8C000000

      #define IMAGE_WINCE_DISPLAY_PALETTE_PA0x8DF00000

      #define IMAGE_WINCE_DRAM_EXT_PA0x8e000000 //0x96000000-->0x8e000000

      #define IMAGE_WINCE_DRAM_EXT_SIZE 0x01000000 //0x0a000000-->0x01000000

      其虛擬地址映射修改見下文。

      3.3 NANDFlash參數(shù)配置

      (1)添加nandflash設(shè)備信息。NANDFlash更換芯片后,需添加新的芯片參數(shù),根據(jù)芯片手冊(cè)定義設(shè)備ID、block個(gè)數(shù)、扇區(qū)數(shù)、扇區(qū)大小等參數(shù)。修改內(nèi)容如下:

      在WINCE700\platform\AM33X_BSP\SRC\bsp_common\BSPCFG\bspcfg.c文件中以下位置添加新nandflash的配置參數(shù)。

      //---------------------------------------------------

      // NAND Flash

      //---------------------------------------------------

      NAND_INFO SupportedNands[]= {

      { // MT29F2G08ABAEA --( MT29F2G16AADWP THAT IS FROM HW MANUAL )

      0xEC, //manufacturerID

      0xF1, //deviceID

      1024, //blocks

      64, //sectorsPerBlock

      2048, //sectorSize - pageSize

      1 //wordData

      },

      { //

      0xAD, //manufacturerID

      0xDC, //deviceID

      4096, //blocks

      64, //sectorsPerBlock

      2048, //sectorSize - pageSize

      1 //wordData

      },

      { // add H27U1G8F2B nandflash

      0xAD, //manufacturerID

      0xF1, //deviceID

      1024, //blocks

      64, //sectorsPerBlock

      2048, //sectorSize - pageSize

      1 //wordData

      }

      };

      (2)修改NANDflash大小。內(nèi)容如下:

      WINCE700\platform\AM33X_BSP\SRC\inc\bsp_def.h

      #define GPMC_NAND_SIZE GPMC_SIZE_32M//GPMC_SIZE_128M

      (3)修改nand存儲(chǔ)bootloader大小。WINCE700\platform\AM33X_BSP\SRC\inc\image_cfg.h根據(jù)GPMC_NAND_SIZE大小修改如下:

      #define IMAGE_XLDR_BOOTSEC_NAND_SIZE (4 * 32 * 1024) // Needs to be equal to four NAND flash blocks due to boot ROM requirements,change (4 * 128 * 1024) to (4 * 32 * 1024)

      #define IMAGE_EBOOT_BOOTSEC_NAND_SIZE IMAGE_EBOOT_CODE_SIZE // Needs to be a multiple of flash block size

      #define IMAGE_XLDR_BOOTSEC_ONENAND_SIZE (4 * 32 * 1024) // Needs to be equal to four OneNAND flash blocks due to boot ROM requirements, change (4 * 128 * 1024) to (4 * 32 * 1024)

      3.4 虛擬地址映射

      在X86和ARM處理器中,WINCE的靜態(tài)內(nèi)存映射是由OAL層中OEMAddressTable數(shù)組決定的[14],其代碼位于\WINCE700\platform\AM33X_BSP\SRC\inc\addrtab_cfg.inc,修改情況如下:

      ; Table format: cached address, physical address, size

      g_oalAddressTable

      DCD 0x87654321, g_oalCE7DeviceTable,0 ; Flag to use new CE7 mapping scheme

      DCD 0x80000000, 0x80000000, 240 ; SDRAM

      DCD 0x98000000, 0x87400000, 48 ; SDRAM for RAMDISK on second bank, change 0x90000000, 96 to 0x87400000, 48

      DCD 0x00000000, 0x00000000, 0 ; end of table

      其中第一行為SDRAM地址映射關(guān)系,虛擬地址和物理地址的起始地址均為0x80000000,size為240MB是因?yàn)镈RIVER段占用16MB,但是DRIVER段虛擬地址映射從0xA0000000開始。第二行為RAMDISK地址映射關(guān)系,虛擬地址0x98000000對(duì)應(yīng)image_cfg.h 中參數(shù)IMAGE_WINCE_RAM_DISK_CA_HEX[15],size (48MB)對(duì)應(yīng)參數(shù)IMAGE_WINCE_RAM_DISK_SIZE_HEX,為0x03000000,物理地址起始地址必須位于0x8720 0000(RAM段結(jié)束地址) 到0x8C00 0000(DISPLAY段起始地址)之間,本次修改定義物理起始地址為0x87400000。

      4 測(cè)試結(jié)果及分析

      為保證系統(tǒng)正常啟動(dòng),在硬件更換SDRAM和NANDFlash芯片后,對(duì)不調(diào)整內(nèi)存參數(shù)、按任意方法調(diào)整參數(shù)及按前文描述的修改原則及方法修改參數(shù)進(jìn)行測(cè)試,測(cè)試結(jié)果如下:

      4.1 不修改參數(shù)

      啟動(dòng)情況:?jiǎn)?dòng)失敗,如圖4所示。

      4.2 不按修改方法修改參數(shù)

      減小NK.BIN鏡像段IMAGE_WINCE_CODE_SIZE(98MB)和wince 程序運(yùn)行內(nèi)存段大小IMAGE_WINCE_RAM_SIZE(110MB),不用減小EBOOT段,即IMAGE_EBOOT_DATA_SIZE。但未修改虛擬地址映射關(guān)系:修改IMAGE_WINCE_CODE_SIZE = 0x320 0000(50MB),IMAGE_WINCE_RAM_SIZE= 0x05000000 (80MB)其它鏡像位置依次向前移動(dòng)。系統(tǒng)啟動(dòng)失敗,測(cè)試結(jié)果如圖5所示。

      4.3 按第三章修改方法修改參數(shù)

      設(shè)計(jì)依據(jù):nk.bin實(shí)際大小約30MB,display:32MB,driver:16MB,NK.BIN鏡像+RAM大小= SDRAM總大小-(DISPLAY大小+ DRIVER加載大小+ARG大小+CPU_INFO大小+EBOOT大小+RAMDISK大?。?0x73FE000(約115MB),因此內(nèi)存改小后,此NK段與RAM段總和不大于115MB。本文定義如下:

      #define IMAGE_WINCE_CODE_SIZE 0x03FFE000//64MB,NK段(NK.BIN大小)

      #define IMAGE_WINCE_RAM_SIZE 0x03000000 //48MB,RAM段

      測(cè)試結(jié)果如圖6。

      系統(tǒng)啟動(dòng)成功,進(jìn)入操作系統(tǒng)界面。

      5 結(jié)語

      以某數(shù)控縫制設(shè)備主板為開發(fā)平臺(tái),該主板在英蓓特提供的Devkit8600評(píng)估板基礎(chǔ)上進(jìn)行應(yīng)用適配,以AM3352處理器為核心,集成USB、以太網(wǎng)、串口、觸摸屏等外圍設(shè)備,運(yùn)行WinCE7.0操作系統(tǒng)。為降低成本和提高系統(tǒng)資源利用率,更換SDRAM與NANDFlash存儲(chǔ)芯片型號(hào)和大小,并針對(duì)新存儲(chǔ)芯片進(jìn)行BSP內(nèi)存配置,使系統(tǒng)內(nèi)核能夠成功啟動(dòng)進(jìn)入操作系統(tǒng)界面。本文闡述了WinCE7.0系統(tǒng)的內(nèi)存管理機(jī)制,介紹了內(nèi)存和NANDFlash移植及參數(shù)配置的可行性方法并通過應(yīng)用驗(yàn)證,可為ARM嵌入式WinCE7.0平臺(tái)設(shè)計(jì)開發(fā)人員內(nèi)存管理配置提供參考。

      參考文獻(xiàn):

      [1] EMBEST.DevKit8600 User Manual[R].英蓓特科技有限公司,2012.

      [2] 周建設(shè).Windows CE 設(shè)備驅(qū)動(dòng)及BSP開發(fā)指南[M].北京:中國(guó)電力出版社,2009.

      [3] LOONG E. WINCE內(nèi)存管理[DB/OL].http://blog.csdn.net/loongembedded/article/details/7842041,2012.

      [4] 尹成,黃永兵,胡耀文,等.Windows CE 7開發(fā)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2012.

      [5] 吳宇生. Windows Embedded CE 6.0的內(nèi)存管理(一)[DB/OL].http://blog.csdn.net/bjtuzdq/article/details/3759546.

      [6] AERNOUTS J, AERTS J.AM335X ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual [R]. Texas Instruments,2012.

      [7] JUNREN Q J. AM335X ARM CORTEX-A8 微處理器技術(shù)參考手冊(cè) (中文版詳解)1 [DB/OL]. https://blog.csdn.net/u012106397/article/details/17657075.

      [8] HYNIX .H5TQ2G83DFR-2Gb DDR3 SDRAM[R]. SK Hynix,2011.

      [9] HYNIX. H27(U_S)4G8_6F2D -4 Gbit (512M x 8 bit) NAND Flash[R]. SK Hynix,2011.

      [10] 吳宇生. Wince——配置文件. [DB/OL]http:∥blog.csdn.net/wuyusheng314/article/details/55667294.

      [11] 劉洪濤,鄒南.ARM處理器開發(fā)詳解[M].北京:電子工業(yè)出版社,2012.

      [12] 徐青陵.WINCE內(nèi)存管理[DB/OL]. https://wenku.baidu.com/view/25a1ca23ccbff121dd36830b.html.

      [13] 王亮.WINCE的內(nèi)存配置-config.bib文件的解析[DB/OL]. http:∥www.cnblogs.com/liang123/archive/2012/09/16/6325660.html.

      [14] FLANDY.WINCE6.0配置BSP內(nèi)存映射[DB/OL].http:∥download.csdn.net/download/FLandY1982/2641117.

      [15] SLDEMORT.AM335x 啟動(dòng)流程[DB/OL]. http:∥blog.csdn.net/psvoldemort/article/details/42454331.

      (責(zé)任編輯:何 麗)

      猜你喜歡
      內(nèi)存定義芯片
      “春夏秋冬”的內(nèi)存
      芯片測(cè)試
      成功的定義
      山東青年(2016年1期)2016-02-28 14:25:25
      多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
      74HC164芯片的應(yīng)用
      河南科技(2014年10期)2014-02-27 14:09:18
      基于內(nèi)存的地理信息訪問技術(shù)
      修辭學(xué)的重大定義
      山的定義
      上網(wǎng)本為什么只有1GB?
      教你正確用(十七)
      海外英語(2006年11期)2006-11-30 05:16:56
      井陉县| 东丽区| 宁安市| 鹿邑县| 大城县| 曲周县| 伊川县| 洪雅县| 黔江区| 苏尼特左旗| 安图县| 威海市| 东港市| 盐源县| 福海县| 永吉县| 南乐县| 古蔺县| 曲阳县| 汕尾市| 香河县| 马尔康县| 阆中市| 黔东| 海林市| 鸡西市| 泰宁县| 溧水县| 康定县| 罗城| 琼海市| 永嘉县| 玛多县| 铁力市| 上虞市| 正蓝旗| 浦县| 怀柔区| 仲巴县| 江山市| 休宁县|