首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

wince5.0+2440 由64M改为128M的有关问题

2013-08-04 
wince5.0+2440 由64M改为128M的问题各位大侠好:最近在弄这个这个内存的扩展工作,硬件已经进行了修改,软件

wince5.0+2440 由64M改为128M的问题
各位大侠好:

   最近在弄这个这个内存的扩展工作,硬件已经进行了修改,软件的具体修改工作如下:

1.fw.s
HandleFIQ是存放着FIQ服务程序入口地址的地址,内存多了64M,所以要加上64M的内存。

HandleFIQ   EQU   0x33ffff1c   
改成

HandleFIQ   EQU   0x37ffff1c   
这个文件第二个要改的地方

ldr     r3, = (0x8C000000 - 0x30000000) 
改成

ldr     r3, = (0x88800000 - 0x30000000) 
2.map.a

    DCD 0x80000000, 0x02000000, 30 ; 30 MB SROM(SRAM/ROM) BANK 0 
    DCD 0x82000000, 0x08000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 1 
    DCD 0x84000000, 0x10000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 2 
    DCD 0x86000000, 0x18000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 3 
    DCD 0x88000000, 0x20000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 4 
    DCD 0x8A000000, 0x28000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 5 
    DCD 0x8C000000, 0x30000000, 64 ; 64 MB DRAM BANK 0,1 
改成

    DCD 0x80000000, 0x02000000, 30 ; 30 MB SROM(SRAM/ROM) BANK 0 
    DCD 0x82000000, 0x08000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 1 
    DCD 0x84000000, 0x10000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 2 
    DCD 0x86000000, 0x18000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 3 
    DCD 0x88000000, 0x20000000, 4   ; 32 MB SROM(SRAM/ROM) BANK 4 
    DCD 0x88400000, 0x28000000, 4   ; 32 MB SROM(SRAM/ROM) BANK 5 
    DCD 0x88800000, 0x30000000, 128 ; 128 MB DRAM BANK 0,1 
3.reg2440.a

;Bank 6 parameter 
B6_MT EQU 0x3 ;SDRAM 
B6_Trcd EQU 0x1 ;3clk ; over 180M 
B6_SCAN EQU 0x1 ;9bit

;Bank 7 parameter 
B7_MT EQU 0x3 ;SDRAM 
B7_Trcd EQU 0x1 ;2clk 
B7_SCAN EQU 0x1 ;9bit


改成




;Bank 6 parameter 
B6_MT EQU 0x3 ;SDRAM 
B6_Trcd EQU 0x1 ;3clk ; over 180M 
B6_SCAN EQU 0x2 ;10bit

;Bank 7 parameter 
B7_MT EQU 0x3 ;SDRAM 
B7_Trcd EQU 0x1 ;2clk 
B7_SCAN EQU 0x2 ;10bit

4.s2440.h

#define DMA_BUFFER_BASE   0xAC000000 
改成

#define DMA_BUFFER_BASE   0xA8800000 
5.platform.reg

[HKEY_LOCAL_MACHINE\Drivers\Display\S3C2410\CONFIG] 
"DisplayDll"="s3c2410disp.dll" 
"LCDVirtualFrameBase"=dword:ac100000 
"LCDPhysicalFrameBase"=dword:30100000 
改成

[HKEY_LOCAL_MACHINE\Drivers\Display\S3C2410\CONFIG] 
"DisplayDll"="s3c2410disp.dll" 
"LCDVirtualFrameBase"=dword:a8900000 
"LCDPhysicalFrameBase"=dword:30100000 
6.config.bib

; NK Start address 
#define NKSTART 8C200000 
#define NKLEN 01800000 ;02000000

#define RAMSTART 8DA00000 ;8E200000 
#define RAMLEN 02600000 ;01E00000 
改成

; NK Start address 
#define NKSTART 88a00000 
#define NKLEN 01800000 ;02000000

#define RAMSTART 8a200000 ;8E200000 
#define RAMLEN 06600000 ;06600000 
继续

AUD_DMA       8c002000 00002000 RESERVED 
DRV_GLB       8c010000 00010000 RESERVED 
DBGSER_DMA    8c022000 00002000 RESERVED 
SER_DMA       8c024000 00002000 RESERVED 
IR_DMA        8c026000 00002000 RESERVED 
SD_DMA     8c028000 00008000 RESERVED 
EDBG          8c030000 00020000 RESERVED 
CPXIPCHAIN    8c050000 00008000 RESERVED 
SLEEP_BUFF 8c058000 00004000 RESERVED 
DISPLAY       8c100000 00100000 RESERVED    
改成



AUD_DMA       88802000 00002000 RESERVED 
DRV_GLB       88810000 00010000 RESERVED 
DBGSER_DMA    88822000 00002000 RESERVED 
SER_DMA       88824000 00002000 RESERVED 
IR_DMA        88826000 00002000 RESERVED 


SD_DMA     88828000 00008000 RESERVED 
EDBG          88830000 00020000 RESERVED 
CPXIPCHAIN    88850000 00008000 RESERVED 
SLEEP_BUFF 88858000 00004000 RESERVED 
DISPLAY       88900000 00100000 RESERVED     
到此内核修改结束


但是该过之后WINCE不能正常启动,我的DEBUG版本下的系统启动信息如下:
......................
fhg******************************
Booting Windows CE version 5.00 for (ARM)
&pTOC = 88a0a14c, pTOC = 8a9686d4, pTOC->ulRamFree = 8b271000, MemForPT = 00000000

Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 6028, Secondary pages: 0, Filesystem pages = 3014

Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 8b272000, extension: 00002000, length: 0178c000
Sp=ffffc7cc
ARMInit done.
Windows CE KernelInit

然后就停止在此处不往下执行了,不止到是什么问题,请各位大侠帮忙了!
[解决办法]
1.ldr r3, = (0x8C000000 - 0x30000000) 
改成

ldr r3, = (0x88800000 - 0x30000000) 
---》这个不需要修改啊。

2.DCD 0x8C000000, 0x30000000, 64 ; 64 MB DRAM BANK 0,1 
---》值需要修改为DCD 0x8C000000, 0x30000000, 128 ;而且后面的依次增加64M,也就是0想0想04000000,比如修改之前是
DCD 0x90800000, 0x48000000,  1  ; Memory control register
那应该改为
DCD 0x94800000, 0x48000000,  1  ; Memory control register
而不是像楼主那样修改

3.s2440.h
#define DMA_BUFFER_BASE 0xAC000000 
---》这个不需要改

还有好一些,我就不列举了,一看就知道楼主的BSP包是之前非标准的BSP包,我们现在的产品也有类似的BSP包,我也做过SDRAM从64M升级到128M,我做了记录,楼主如有需要,我可以把这个记录文档发给你,就是关于怎么从64M升级到128M的。

热点排行