如题。请耐心看完:
1. 我想知道的是程序实际使用到的空间,不是分配了多少。因此,CCS工程属性--C2000 Linker--Basic Options里面设置的,或 cmd文件里设置的,或map文件里显示的,再或Memory Allocation里面看到的。都不是我想问的。以及有帖子里讲述的哪里加断点,怎么判断堆栈是否溢出。我现在不想判断是否溢出,想知道不溢出的情况下,当前程序实际使用了多少空间的heap与stack?
2. 看到有位大神解答的,View--Stack usage,e2echina.ti.com/.../stack。
帖中说不看最大的,看总共的,我把我生成的结果,每一项加起来,有1800个字节,不到1k*16. 针对这个结果,我有两个疑问:
(1)为什么我把CCS工程属性里把stack空间设为0x0010(即很小),同时在cmd文件里也为stack分配一个这么小的空间之后,编译却没有报错?
(2)我在CCS工程属性里把stack空间设为0x0800(2k*16),同时在cmd文件里也为stack分配一个0x0800的空间后,我的电机控制程序运行正常,但当我开启以太网功能后,(确实以太网函 数内部比较复杂,类的定义及调用关系也复杂),程序就会运行崩溃,除非进一步加大stack空间到4k*16才正常。可是按照stack uasge显示的2k就肯定够了啊?
所以是不是可以怀疑stack usage 也不准,或者是也只是编译结果的静态分析,实际运行起来的stack完全不一样呢?
3.接上,有没有一种可以一边跑程序,一边在线可以监控程序实际使用了多少stack和heap的方法呢?
谢谢。