
最近遇到两个问题,其中一个如下:问题1 我的芯片RAM为1K,但在默认的情况下可以用的只有588 Byte ,百度了一下解答是编译器默认将高512字节分配给堆栈,因此变量超出了了588就会报变量溢出。后我决定更改编译器的参数,但到变量参数更改页面发现RAM项却写着 714 ,然后我就讲714改成914,问题就解决了。那么问题来了,编译器分配的高512字节是用来干嘛的?主要是用来存放什么东西?目前由714->914的改变后,这个原来的512字节目前的大小是多少呢?芯片的RAM空间明明是1K,为什么编译器里面的参数是714? 问题2 我们公司使用的是STM8S系列和STM32F10系列的主芯片,在选型的时候一般会优先考虑性价比。IC的功耗在我们设备的运行中可忽略不计。但在编译过程中发现同样的逻辑量,编译出来的文件STM32的是STM8的好几倍。我想问下这个倍数到底是多少呢?有没有一个明确化着稍微准确点的数字,我们在芯片选型的时候会比较关注这个点 |
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
求一个STM8S207例程
初次接触STM8,请问在STVD中,为什么这个Struct会报错
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
解释有很多,简单回答就是:调用程序就要出入栈。中断更要出入栈。栈里面既放数据又放地址。。。
最后,那个堆栈深度也是可以调的。。编译器里有选项设置。默认是0x100=512。调小点够用也成。
714也可能是历史遗留问题。。大家一般都是把工程文件带设置拷来拷去的。
甚至,你可以不用堆栈,这样的话,你就只能运行一个main,且不能有中断。子函数。
第二,STM32.。。。和STM8没有可比性。。。
数据位宽就是4倍。。编译器优化程度也不一样。
反正stm32比较大是肯定的。。
正确的做法,是把你的代码写好。软件仿真调试好。然后,看出来的code有多少。。。
当然,有经验的话,你就能估计出来了。