请问一下在使用AVR时,变量与堆栈的大小成什么比例最好?
sram size is 4096 bytes (4KB)sram used for
- variables = 2504 (0x9C8) bytes from 0x0100 to 0x0AC7
- heap, s/w stack = 1562 (0x61A) bytes from 0x0AC8 to 0x10E1
- h/w stack = 30 (0x1E) bytes from 0x10E2 to 0x10FF
eeprom size is 4096 bytes (4KB)
no eeprom area found
变量用了2504
堆栈1562
堆栈 30
这样的情况下,程序会莫名其妙的不正常。
sram size is 4096 bytes (4KB)
sram used for
- variables = 2104 (0x838) bytes from 0x0100 to 0x0937
- heap, s/w stack = 1962 (0x7AA) bytes from 0x0938 to 0x10E1
- h/w stack = 30 (0x1E) bytes from 0x10E2 to 0x10FF
这样的话就可以了。variables和heap, s/w stack的比例是多少,和什么有关系?一般怎么处理他们的关系? 如果你是用iar,设置下堆栈的大小,有可能是栈默认的小了,溢出了。 不明觉厉 无语了,一个数组定义a【300】 只要超过100,编译能通过,程序就会乱,但是内存还剩下2k呢,不明白啊!用的icc7.22真是受不了了,这个任务完成一定换IAR了。 和剩下的内存没关系,就是和那个大数组有关系。
页:
[1]