本帖最后由 voidx 于 2010-6-4 10:24 编辑
探讨stm8最不爽的地方:堆栈有low limit
比如说STM207SB, 堆栈指针值是0X1400时,再执行一次PUSH A,堆栈指针就会回到0X17FF。
堆栈最大只能用1K RAM。
这如何移植 RTOS呢?用RTOS,堆栈只用1K,基本上无用。
也发现,堆栈如果跳过0X1400,再执行一次PUSH A,堆栈指针并没有回到0X17FF。
如果把堆栈移到别处,是否可行呢??
测试发现:
SP=0x1400 ,push a,SP=0x17FF
SP=0x1000 ,push a,SP=0x0FFF
SP=0x0C00 ,push a,SP=0x0BFF
SP=0x0800 ,push a,SP=0x07FF
SP=0x0400 ,push a,SP=0x03FF
SP=0x0000 ,push a,SP=0xFFFF |