level 12
wenwutan
楼主
CPU为MPC8308,DDR2容量256MB,其中保留容量为64MB,所以vxWorks系统可用DDR2容量为196MB。在镜像配置中“RTP_CODE_REGION_START”和“RTP_CODE_REGION_SIZE”均设置为0。在telnet中使用memShow查看显示如下:
-> memShow
status bytes blocks avg block max block
-------- -------------- ---------- ---------- ----------
current
free 108529552 2 54264776 108529488
alloc 23874592 2408 9914 -
internal 408 2 204 -
cumulative
alloc 24002600 2661 9020 -
peak
alloc 23876168 - - -
value = 0 = 0x0
可用内存有100多M字节。我创建了一个很简单的RTP,只有一个main函数,函数中仅一个while(1)循环,循环体内为taskDelay(1000);将这个RTP通过WorkBench进行Debug调试,可以正常调试,然后我在main函数之外创建一个较大的全局数组,容量2MB,但函数中并没有使用,结果通过WorkBench进行Debug调试时,直接导致镜像死机,全局数组容量为1MB时,没有问题,可以下载调试。
下载RTP文件时,FTP服务器显示vxe文件已经成功下载,应该是启动的时候数组太大,导致溢出。但是镜像里配置的RTP堆大小是自动分配,空余内存有100多MB,应该足够了,为何还是会死机,只能分配1MB以下空间?
谢谢!
2013年04月27日 06点04分
1
-> memShow
status bytes blocks avg block max block
-------- -------------- ---------- ---------- ----------
current
free 108529552 2 54264776 108529488
alloc 23874592 2408 9914 -
internal 408 2 204 -
cumulative
alloc 24002600 2661 9020 -
peak
alloc 23876168 - - -
value = 0 = 0x0
可用内存有100多M字节。我创建了一个很简单的RTP,只有一个main函数,函数中仅一个while(1)循环,循环体内为taskDelay(1000);将这个RTP通过WorkBench进行Debug调试,可以正常调试,然后我在main函数之外创建一个较大的全局数组,容量2MB,但函数中并没有使用,结果通过WorkBench进行Debug调试时,直接导致镜像死机,全局数组容量为1MB时,没有问题,可以下载调试。
下载RTP文件时,FTP服务器显示vxe文件已经成功下载,应该是启动的时候数组太大,导致溢出。但是镜像里配置的RTP堆大小是自动分配,空余内存有100多MB,应该足够了,为何还是会死机,只能分配1MB以下空间?
谢谢!