6332|26

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教RAM分配 [复制链接]

各位大侠,小弟调试一款800*600的LCD时,OS系统文件DOWNLOAD进去就不能够显示正常:其中大约有2/5的显示是开机画面的前2/5部分.后面的显示就画屏.
    请大家帮忙看看下面的设置是否正确?
    若不正确,请问需要如何更改?根据什么进行更改?谢谢!!
MEMORY
;#define CHAIN_ADDRESS        81E40000
;        CHAIN                        $(CHAIN_ADDRESS)    00001000        RESERVED
;        pdwXIPLoc                00000000  $(CHAIN_ADDRESS)      FIXUPVAR
;;; Tarzan Debug mode

        NK                        8C300000  01D00000  RAMIMAGE
        RAM                         8E600000  01900000  RAM
; Common RAM areas

        AUD_DMA                     8c002000  00002000  RESERVED
        DRV_GLB                8c010000  00010000  RESERVED
        SD_DMA                8c028000  00008000  RESERVED
        EDBG                8c030000  00020000  RESERVED
        CAMERA                8c088000  00140000  RESERVED
        DISPLAY                8c1d0000  00100000  RESERVED   
CONFIG
......
        ROMSTART=8C300000   
        ROMWIDTH=32
        ROMSIZE=01D00000

最新回复

被分割成四个象限的图像如下,各位看看是什么原因造成的? C:\Documents and Settings\Administrator\桌面\未命名.bmp  详情 回复 发表于 2009-7-15 23:23
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个看起来没什么问题,看看你的代码里有没有和你的DISPLAY 部分重叠的地址(AC1D0000);
检查你的Lcd驱动,看看你分配的空间够不够;
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
LS的大侠,能够具体说说要看DISPLAY 部分重叠的地址(AC1D0000)在SMDK2440的哪些文件吗?
还有对于Lcd驱动,怎么确定分配的空间够不够?能够举例讲解一下吗?
本人还对WIN CE不熟悉,请多指点.
谢谢了.
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
修改config.bib中的DISPLAY所在行,例如640x480x16bpp的定义为:
DISPLAY            8c100000  00100000  RESERVED
其中8c100000是显存的地址, 00100000是显存的大小,640x480x 16(bit) = 640x480x2(byte) = 0x96000 byte ,注意这个显存的大小必须足够容纳你的分辨率需要的空间。而且要保证显存的地址+显存的大小 不能够大于前面的NK的基地址(默认为8C200000),显存的基地址也不能覆盖前面的节。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
修改配置如下,结果依然和上面问题一样.
;Tarzan Debug mode
    NK              8C2D0000  01D00000  RAMIMAGE  
    RAM             8DFD0000  01D00000  RAM
; Common RAM areas
        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
        CAMERA                        8c088000  00140000  RESERVED
        DISPLAY                        8c1d0000  00100000  RESERVED   
....
        ROMSTART=8C2D0000  
        ROMWIDTH=32
        ROMSIZE=01D00000
同时修改的其他相关内容如下:
1).....\SMDK2440\INC\s2440.h
#define FRAMEBUF_BASE (DMA_BUFFER_BASE + 0x001d0000)
#define FRAMEBUF_DMA_BASE (DMA_PHYSICAL_BASE + 0x001d0000)
2).....\S3C2440LCD\s3c2440disp.cpp
void S3C2440DISP::InitializeHardware (void)
{
......
m_VirtualFrameBuffer = (DWORD)VirtualAlloc(0, (0x100000), MEM_RESERVE, PAGE_NOACCESS);
if (m_VirtualFrameBuffer == NULL)
{
RETAILMSG(0,(TEXT("m_VirtualFrameBuffer is not allocated\n\r")));
return;
}
else if (!VirtualCopy((PVOID)m_VirtualFrameBuffer, (PVOID)gdwLCDVirtualFrameBase, (0x100000), PAGE_READWRITE
| PAGE_NOCACHE))
3).[HKEY_LOCAL_MACHINE\Drivers\Display\S3C2440\CONFIG]
        "DisplayDll"="s3c2440disp.dll"
        "LCDVirtualFrameBase"=dword:ac1d0000
        "LCDPhysicalFrameBase"=dword:301d0000
请各位大侠,指点还有什么地方修改有问题?或者没有修改到?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
学习
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

7
 
怎么没有大侠指点一下呢??
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
帖子增加到100分了哈,大侠们赶紧出来帮忙释疑吧.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
这不一定是config.bib里面的配置问题,你用的是哪家的屏,需要单独做初始化吗?可能还是场频、前肩、后肩那几个值的设定问题吧
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 y_man18 的回复:
这不一定是config.bib里面的配置问题,你用的是哪家的屏,需要单独做初始化吗?可能还是场频、前肩、后肩那几个值的设定问题吧

我采用的是上海天马微电子的6.95"TTL的LCD,不需要单独初始化.场频、前肩、后肩那几个值的设定应该是没有问题的,因为我用ADS编译的BOOT文件显示的开始画面都是正常的.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
随便把今天的调试后的DNW显示出来的内容PASS出来,方便大家分析:
FMD_WriteSector.............

FMD_ReadSector.............

memcmp.............

TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 192.168.1.108
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.0
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x40
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0xE800
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C201000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x2A0
  sgList[0].dwLength: 0xE800
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
-TOC_Write
Successfully Written

TOC_Read
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 192.168.1.108
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.0
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x40
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0xE800
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C201000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x2A0
  sgList[0].dwLength: 0xE800
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
-TOC_Read
System ready!
Preparing for download...
Using device name: 'SMDK24400'
TFTP init skipped...
QT2410 Windows CE image write............

Enter Image Start Address(use Physics Address)
[0x30200000 by Default]:0x30200000
Start Physics Address= 0x30200000
Start Virtual Address= 0x8C200000

Enter the size of NK.nb0
[0x1D00000(=29M byte)by Default]:0x1D00000
Size you entered=0x1D00000

OEMMultiBINNotify: Download BIN file information:
-----------------------------------------------------
[0]: Base Address=0x8C200000  Length=0x1D00000
-----------------------------------------------------
Ready to Go out Download Image...
Found pTOC signature.
ROMHDR at Address 8C200044h
RomHdr.ulRAMStart=8E000000h RomHdr.physfirst=8C200000h.
::OEMLaunch, ImageStart:0x8C200000, ImageLength:0x1D00000, LaunchAddr:0x8C201000
OEMLaunch: (IMAGE_TYPE_RAMIMAGE|IMAGE_TYPE_BINFS)
+WriteRegionsToBootMedia: ImageStart: 0x8C200000, ImageLength: 0x1D00000, LaunchAddr:0x8C201000
===Params OK
===dwNumRegions: 1
INFO: OEMLaunch: Found chain extenstion: '' @ 0x8C200000
Writing single region/multi-region update, dwBINFSPartLength: 30408704
dwRegionStart: 0x8C200000, dwRegionLength: 0x1D00000, dwStoreOffset: 0x0
Updateded TOC!
-WriteRegionsToBootMedia
+TOC_Write
Erasing Block: 1

FMD_WriteSector.............

FMD_ReadSector.............

memcmp.............

TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 192.168.1.108
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.0
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x40
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0xE800
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C201000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x2A0
  sgList[0].dwLength: 0xE800
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
-TOC_Write
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 192.168.1.108
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.0
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x40
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0xE800
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C201000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x2A0
  sgList[0].dwLength: 0xE800
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}

Jumping to image at virtual address 0x8C201000h
+ToPhysicalAddr:0x8C201000
-ToPhysicalAddr:0x30201000

::: Physical Launch Address: 0x30201000h
Windows CE Kernel for ARM (Thumb Enabled) Built on Mar 13 2003 at 22:52:56
ProcessorType=0920  Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c2013bc

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config set rGPGCON: fd94ffba
OEMInit Done...
Sp=ffffc7cc
Data Abort: Thread=8feed5d0 Proc=8e026858 'filesys.exe'
AKY=00000003 PC=8c23791c RA=8c237950 BVA=0407d23e FSR=00000007
Prefetch Abort: Thread=8febb46c Proc=8e026930 ''
AKY=00000005 PC=00000000 RA=03f954f4 BVA=00000000 FSR=00000005
Data Abort: Thread=8febb46c Proc=8e026930 ''
AKY=00000005 PC=03f94300 RA=03f8913c BVA=04011704 FSR=00000005
Exception 'Data Abort' Thread=8febb46c AKY=00000005 PC=60000010 BVA=04011704
R0=00000000  R1=00000000  R2=00000000  R3=00000000
R4=00000001  R5=8feff4d4  R6=00000001  R7=8feff4d4
R8=00000000  R9=00000000  R10=c202fe3c R11=03f872a0
R12=0602fe88 SP=03f954f4  Lr=03f89098  Psr=60000010
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

12
 
打错一个字,是
顺便把今天的调试后的DNW显示出来的内容PASS出来,方便大家分析:
非随便.
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
设置一下lcdsaddr2和lcdsaddr2寄存器的数值
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

14
 
顶!!
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

15
 
都已经Data Abort了,看一下OEMIint()所在的那个启动文件(也就是IniyDisplay()函数所在的那个文件,好象是),是不是IO没映射好?猜测....
呵呵
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

16
 
   今天看见一种怪异的想象。就是先前在4楼时配置的参数,昨天DOWNload进TARGET后,当然DNW显示就是10楼的结果。重启后,画面从开机画面跳进前面说的“其中大约有2/5的显示是开机画面的前2/5部分。”,然后就进入一个将LCD均匀4等分,左上显示白色,右上显示红色,左下显示绿色,右下显示蓝色。
    今天下午拿出来准备重新DOWNload一个OS,上电又经历上面的过程,不过居然蹦出了WIN CE系统的操作界面。
    后来重新断电、上电,就一直卡在“LCD均匀4等分,左上显示白色,右上显示红色,左下显示绿色,右下显示蓝色”,没有下文了。
    传说中的“昙花”今日居然亲眼看见开花了。

   
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

17
 
对比了3.5"(320*240)和10.4打印出来的DNW信息,发现如下部分没有完成的初始化动作,因此OS系统也就不稳定,且部分功能没有动作.
请问这个是什么原因啊?要如何进行修改呢?
FMD::FMD_Init
FMD::FMD_Init Done
PWR: Process Attach
>PWR_Init(602F1C4)
HW_Init : GetProcAddress
HW_Init : ERROR_INVALID_PARAMETER
HW_Init : InitializeCriticalSection
HW_Init : VirtualAlloc
HW_Init : pPWR->State
HW_Init : HW_InitRegisters
HW_Init : CreateEvent
HW_Init : InterruptInitialize
HW_Init : CreateThread
HW_Init : CeSetThreadPriority
HW_Init OOCS: 0x00
HW_Init INT1: 0x00
HW_Init INT2: 0x00
HW_Init INT3: 0x00
HW_Init : Donw
>PWR_Open(0x30750, 0x0, 0x3)
>PWR_IOControl(0x321000, 0x0, 0, 0x60307f0)
>PWR_Open(0x30750, 0x0, 0x3)
PWR_Close(0x30750)
384 clock
USB:OhcdPdd_Init
++InitializeOHCI
USB:*pIrq=11, *pioPortBase=0x250000
OHCD: MapIrq2SysIntr(11): 27
OHCD: Memory Object
--InitializeOHCI
SL_Open 0x36CE0 (0 opens)
SetBaudRate -> 9600
SL_Close
SL_Open 0x30BC0 (0 opens)
SetBaudRate -> 9600
SL_Close
Product ID = a00
Find CS8900 OK
reset CS8900 OK
CS8900 init OK
[CS8900] v_pIOPRegs is mapped to 3b0000

[CS8900] v_pINTRegs is mapped to 3c0000

[CS8900] v_pMEMRegs is mapped to 3d0000

Signature Error 3112
Product ID = a00
Find CS8900 OK
reset CS8900 OK
CS8900 init OK
[CS8900] rGPGCON = fd94fdba
[CS8900] rEXTINT1 = 22222242
CS8900: PermanentAddress [ 22-33-44-55-66-0f ]
CS8900: StationAddress Modified!...
[CS8900] Send ARP Request Packet
USB enable interrutp
        charlie::SDIO::SDHOST::SDCSDCardDllEntry::DLL_PROCESS_ATTACH
        charlie::SDIO::SDCInitialize+
        charlie::SDIO::SDCInitialize-
--S3C2440DISP::InitializeHardware
SDMMC config set rGPGCON: fda6fdba
Touch Init
SL_Open 0x30BC0 (0 opens)
SetBaudRate -> 9600
+SL_GetStatus 0x30BC0
[CS8900] Send ARP Request Packet
[CS8900] Send ARP Request Packet
[CS8900] Send ARP Request Packet
[CS8900] Send ARP Request Packet
[CS8900] Send IP Packet
[CS8900] Send IP Packet
[CS8900] Send ARP Request Packet
[CS8900] Send ARP Request Packet
[CS8900] Send IP Packet
[CS8900] Send IP Packet
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

18
 
你以前的屏幕是800*600的吗?
应该比这个小吧。
我觉得显存空间应该分配大一点,至少也要4M吧。

800*600*2都接近1M了。你都不知道这个显存都做了什么用。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 18 楼 wohuazhen 的回复:
你以前的屏幕是800*600的吗?
应该比这个小吧。
我觉得显存空间应该分配大一点,至少也要4M吧。

800*600*2都接近1M了。你都不知道这个显存都做了什么用。


回复:
以前的屏幕是320*240的,但是设定的显存空间(0.15MB)相对较小,
也只是适合320*240*2=0.1465<0.15MB(我调试3.5的显存设定值)。
对于800*600*2=0.916MB < 1MB
而我设定为1M,理论上讲,应该是没有问题的。

LS的说法有些具有片面性了,不过感谢你发言。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

20
 
建议检查一下硬件连接
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表