我现在正在使用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型数组