wince 启动时出现堆栈溢出

dengchonglin 2009-11-11 09:14:51
请问一下如果要修改堆栈的大小,
是不是修改 EBOOT.BIB 文件里面的
STACK 的大小就可以啦?
然后把后面的地址都重新设置初始地址就可以了?

MEMORY

; Name Start Size Type
; ------- -------- -------- ----
STACK 80000000 00010000 RESERVED
RAM 80010000 00010000 RAM
EBOOT 80020000 00040000 RAMIMAGE
RSVD 80060000 0009F000 RESERVED
ARGS 80FF0000 00001000 RESERVED

调试信息如下:
!!! Committed last page of the stack (0xd0230018), SEH bypassed, thread terminated !!!
Exception 'User Stack Overflow' (-3): Thread-Id=00920002(pth=87f95120), Proc-Id=00400002(pprc=827c9308) 'NK.EXE', VM-active=00400002(pprc=827c9308) 'NK.EXE'
PC=c003f4e0(k.coredll.dll+0x0001f4e0) RA=d0040000(???+0xd0040000) SP=d023f860, BVA=d0230018


...全文
255 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqhrs232 2012-07-27
  • 打赏
  • 举报
回复
也正在被这样的问题困扰!!!
dengchonglin 2009-11-13
  • 打赏
  • 举报
回复
!!! Committed last page of the stack (0xd0230018), SEH bypassed, thread terminated !!!
Exception 'User Stack Overflow' (-3): Thread-Id=00920002(pth=87f95120), Proc-Id=00400002(pprc=827c9308) 'NK.EXE', VM-active=00400002(pprc=827c9308) 'NK.EXE'
PC=c003f4e0(k.coredll.dll+0x0001f4e0) RA=d0040000(???+0xd0040000) SP=d023f860, BVA=d0230018
dengchonglin 2009-11-13
  • 打赏
  • 举报
回复
整个提示信息如下:
+OALPAtoVA(0x40e00000, Windows CE Kernel for ARM (Thumb Enabled) Built on Sep 25 2009 at 11:04:23
+OEMInit
INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
OEM: Force clean boot.
-OEMInit
+OEMIoControl(0x1010148, 0xd001fe24, 44, 0x0, 0, 0x0)
+OEMIoControl(0x10100b4, 0x0, 0, 0x0, 0, 0x0)
+OEMIoControl(0x1010038, 0xd00bfb50, 16, 0x0, 0, 0xd00bfb68)
+OEMIoControl(0x101008c, 0x0, 0, 0xd00bfaf0, 4, 0xd00bfaf4)
+OEMIoControl(0x10100b0, 0x0, 0, 0x0, 0, 0x0)
TrueFFS, TFFSdiskEntry(): TrueFFS DLL_PROCESS_ATTACH
TrueFFS, TFFSdiskEntry(): OS version is 6.0.
TrueFFS, TFFSdiskEntry(): return TRUE (OK)
TrueFFS, DSK_Init Drivers\Active\02
TrueFFS, DSK_Init: flinitialized = 0
TrueFFS, getBuiltInHandleByActivePath() deviceNo = 0, partitonNo = 2
TrueFFS, DSK_Init: pDisk=0xc0a0e968
TrueFFS, DSK_Init: Starting flInit()
flInit ***

*** Entering check_device() ***

Searching for NON-H3 Device...
NON-H3 Device Not found...

Searching for H3 device...
TrueFFS, flRegisterComponents(): Reading socket parameters for socket #0.
TrueFFS, checkSocketAddress(): pDisk = 0xc0a0e968, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk->registryPath = Drivers\BuiltIn\TrueFFS2, partitionNO = 2
TrueFFS, flGetDiskBaseAddres(): [START] WindowBase
TrueFFS, flGetDiskBaseAddres(): windowBase=0x0
TrueFFS, checkSocketAddress(): flashBase=0x0

Searching devices on socket #0...

++++doch_configAndID

Memory window set to 8KB

Socket #0 - ChipID OK
Device Found: H3Memory window is 8KB
Found #1 device(s)...

H3 Device found !!!


H3 Device found ***

flInit return***status_HDOC = 0
TrueFFS, DSK_Init: DiskOnChip was detected (ChipID identified).
flInit ---
socketTable[deviceNo].initialized == FALSE ---
TrueFFS, checkSocketAddress(): pDisk = 0xc0a0e968, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk->registryPath = Drivers\BuiltIn\TrueFFS2, partitionNO = 2
TrueFFS, getRegValue(): FieldName = AutoDPDMode, length = 4
TrueFFS, checkDPDMode(): autoDPD = 1

Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3TrueFFS, checkSocketAddress(): pDisk = 0xc0a0e968, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk->registryPath = Drivers\BuiltIn\TrueFFS2, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk = 0xc0a0e968, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk->registryPath = Drivers\BuiltIn\TrueFFS2, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk = 0xc0a0e968, partitionNO = 2
TrueFFS, checkSocketAddress(): pDisk->registryPath = Drivers\BuiltIn\TrueFFS2, partitionNO = 2
checkCacheSize ---
TrueFFS, DSK_Init: Couldn't set cacheSize. status is 106. Continue with default value.
checkVerifyWrite ---
ReleaseMutex ---
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, DSK_Init: this is the first partition in a socket. trying to mount it.

Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3TrueFFS, DSK_Init: Mount was done successfully. Dismounting partition and finish the initialization.
WaitForSingleObject ---
WaitForSingleObject ---
TrueFFS, DSK_INIT(): =========================
TrueFFS, DSK_INIT(): [END] pDisk = 0xc0a0e968
TrueFFS, DSK_INIT(): ========================
TrueFFS, DSK_INIT(): =========================
TrueFFS, DSK_INIT(): [END] pDisk = 0xc0a0e968
TrueFFS, DSK_INIT(): ========================
TrueFFS, DSK_Open(): DSK_Open [START]
TrueFFS, DSK_Open(): Partition was closed, trying to mount it.
TrueFFS, mountDisk(): [START] pDisk = 0xc0a0e968
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32

Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3TrueFFS, mountDisk(): absMount was done successfully.
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32

Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3TrueFFS, mountDisk(): [END], returning 0
TrueFFS, DSK_Open(): [END] returning pDisk=0xC0A0E968
TrueFFS, IO: dwIoControlCode=1
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, IO: dwIoControlCode=464896
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, IO: processing IOCTL_DISK_DEVICE_INFO
TrueFFS, getRegValue(): FieldName = Profile, length = 26
TrueFFS, IO: returned profile is 'TRUEFFS_DOC2'
TrueFFS, IO: returned dwDeviceClass is 0x
xTrueFFS, IO: returned dwDeviceType is 0x40001000
TrueFFS, IO: returned dwDeviceFlags is 0x1
TrueFFS, IO: dwIoControlCode=465956
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, IO: processing IOCTL_DISK_GET_STORAGEID
TrueFFS, IO: dwIoControlCode=465920
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, IO: dwIoControlCode=482312
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, IO: processing IOCTL_DISK_READ / IOCTL_DISK_WRITE operation.
TrueFFS, GetDiskHandle volumeNo =2, deviceNo=0, partitionNo = 2 TrueFFS, GetDiskHandle Device TrueFFS handle=32
TrueFFS, doDiskIo(): Reading 1 sectors starting at sector 0

Socket #0 - ChipID OK
Device Found: H3
Socket #0 - ChipID OK
Device Found: H3
Vichard 2009-11-13
  • 打赏
  • 举报
回复
把启动到这个错误所有的信息都贴出来看一下吧
gooogleman 2009-11-12
  • 打赏
  • 举报
回复
我也期待
guopeixin 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gooogleman 的回复:]
引用 2 楼 dengchonglin 的回复:
引用 1 楼 guopeixin 的回复:
你说的那个bib是修改eboot下的stack配置,而且仅仅修改bib还不行,还要修改汇编中sp的位置
ce下的好像大家都用默认的


现在我想知道的是,
我修改这里是不是能解决上面出错的问题~!


你的bootloader的 栈和OS的栈是不同的。

所以你修改了也没有用。

不过我不懂你怎么搞成这样。

RAM 应该有分出来的了,

还有wince 给一个线程的栈大小是固定的,具体大小我忘记了。
[/Quote]

奇怪呀,没有碰到过lz说的os启动stack有问题的情况,期待答案
每个线程的貌似是64k吧
gooogleman 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dengchonglin 的回复:]
引用 1 楼 guopeixin 的回复:
你说的那个bib是修改eboot下的stack配置,而且仅仅修改bib还不行,还要修改汇编中sp的位置
ce下的好像大家都用默认的


现在我想知道的是,
我修改这里是不是能解决上面出错的问题~!
[/Quote]

你的bootloader的 栈和OS的栈是不同的。

所以你修改了也没有用。

不过我不懂你怎么搞成这样。

RAM 应该有分出来的了,

还有wince 给一个线程的栈大小是固定的,具体大小我忘记了。
dengchonglin 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guopeixin 的回复:]
你说的那个bib是修改eboot下的stack配置,而且仅仅修改bib还不行,还要修改汇编中sp的位置
ce下的好像大家都用默认的
[/Quote]

现在我想知道的是,
我修改这里是不是能解决上面出错的问题~!
guopeixin 2009-11-11
  • 打赏
  • 举报
回复
你说的那个bib是修改eboot下的stack配置,而且仅仅修改bib还不行,还要修改汇编中sp的位置
ce下的好像大家都用默认的
guopeixin 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dengchonglin 的回复:]
引用 1 楼 guopeixin 的回复:
你说的那个bib是修改eboot下的stack配置,而且仅仅修改bib还不行,还要修改汇编中sp的位置
ce下的好像大家都用默认的


现在我想知道的是,
我修改这里是不是能解决上面出错的问题~!
[/Quote]
os下没有改过,不太清楚

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧