林州 发表于 2014-1-29 11:23:04

请问一下在使用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的比例是多少,和什么有关系?一般怎么处理他们的关系?

define_avr 发表于 2014-1-31 11:10:20

如果你是用iar,设置下堆栈的大小,有可能是栈默认的小了,溢出了。

xou822 发表于 2014-1-31 12:09:58

不明觉厉

林州 发表于 2014-1-31 15:45:32

无语了,一个数组定义a【300】 只要超过100,编译能通过,程序就会乱,但是内存还剩下2k呢,不明白啊!用的icc7.22真是受不了了,这个任务完成一定换IAR了。

林州 发表于 2014-1-31 15:46:45

和剩下的内存没关系,就是和那个大数组有关系。
页: [1]
查看完整版本: 请问一下在使用AVR时,变量与堆栈的大小成什么比例最好?