OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]Arm启动码转向__main()遇到_heap_overflow错误,w

共2条 1/1 1 跳转至

[求助]Arm启动码转向__main()遇到_heap_overflow错误,why ?

菜鸟
2004-09-14 00:34:00    评分

我现在正在使用ARM720T开发一个网络视频设备,前几天已经调好了网络部分,包括TCP/IP协议栈、Http Server等等(为省钱,没用操作系统)。但这两天又写了很多代码,在中断处理程序中将新添的中断处理加上,那么从启动代码转向__main()就会出现 "heap overflow" 问题,我修改了heap size,没用!why ?

问题详细说明:

irq_exception() {

if (是irq1) {

....

}

if (是irq2) {

.....

}

if (是irq3) {

调新写的C代码中的某一函数

}

}

如果把上面红色部分注释掉,则一切OK,如果不注释,那么不能正确执行

B __main;

同时会出现 out of heap memory 信息在"Arm7_0-console"栏中(我用的是AXD+ADS1.2)

事实上,在程序进入main()之前,我的中断根本就没enable,所以没可能执行irq_exception()函数。但这里此函数调用了另一处代码(在新写的C文件中),Arm编译器就不知搞了什么鬼了。渴求大虾回复!

注:我新写的C代码中开了近16个size为100K的byte型数组




关键词: 求助     启动     转向     遇到     overflow     错误    

菜鸟
2004-09-14 20:25:00    评分
2楼

谢谢楼上关注!

heap size 256 Words

我去掉程序中调用malloc(),free()部分,一切就OK了。我软件是在进入main()之前出问题。

如果不去掉malloc()等,我即使 heap size 加到100k也不行!惨

相关程序如下:

AREA Myheap,DATA,NOINIT,ALIGN=2

bottom_of_heap SPACE 256

__user_initial_stackheap

LDR r0,=bottom_of_heap

MOV pc,lr


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]