使用keil4的程序自动优化,如直接设置为9级优化,和0级相比会导致程序错误吗

使用keil4的程序自动优化,如直接设置为9级优化,和0级相比会导致程序错误吗,第1张

有可能。优化级别越高,出问题的可能性越大。

Keil并不完美,有些优化方式存在bug;另外有些优化也并不是编程者所饥并梁需的目的,蔽碰会导致程序流程与编程预期不符。

一烂运般7级左右就够了。

说明data空间已经不够用,原蚂茄缺因是你可能有好多函数,而函数内部的局部变量又没有定义其空间,这种情况下,系统会将变量闷辩分配到你在Otions for Target 对话框里的设置的空间。如果你在下图所示中的 Memory Model 里设置成 Small:variables in DATA,则DATA空间很快便用完,导致data空间不够用。解决的办法有两种,一是通过更改Memory Model设置,可以设置成pdata或xdata,以便有足够大的空间,但这又带来新的问题,程序运行速度减慢,而且code代码也会加大,因为如果一个局部变量被存放在了xdata空间,汇编语言访问xdata空间的代码大小要比访问data空间的代码大,变量一旦很多,程序的代码也会逐渐增大;二是根据自己的要求设置变量的空间。所以这涉及到代码优化的问题,遇到具纳吵体问题时,在运行速度和代码大小之间取得适合自己的情况。

用keil写程序大森时出现滑仿仿错误解决方法:

1、在菜单栏的flash选项信纤下选择configure flash tools子菜单出现如下界面选择对应的芯片就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12516859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存