打印
[LKS32 软件]

调高优化等级后显示出错

[复制链接]
849|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Bowclad|  楼主 | 2023-11-9 19:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个OLED调高优化等级后就不显示,这是什么原因啊?

使用特权

评论回复
沙发
小小蚂蚁举千斤| | 2023-11-16 13:59 | 只看该作者
线路故障了?

使用特权

评论回复
板凳
forgot| | 2023-11-17 09:58 | 只看该作者
调高优化等级指的是什么,系统中OLED的任务的优先级吗?

使用特权

评论回复
地板
鸥芯电驱港港| | 2023-11-20 09:28 | 只看该作者
keil优化等级调高,有些语句可能优化掉了,导致一些语句不执行了,就会出现这种情况。建议优化等级不要超过2等级

使用特权

评论回复
5
chenqianqian| | 2023-11-21 08:15 | 只看该作者
一般都默认优化等级,调了后不知道会出什么错,除非对你的代码很有信心。

使用特权

评论回复
6
onlycook| | 2024-2-21 15:30 | 只看该作者
OLED显示器的驱动不兼容或有问题?

使用特权

评论回复
7
laocuo1142| | 2024-2-21 16:00 | 只看该作者
可能是OLED屏幕本身有问题,或者与屏幕连接的线路有问题。

使用特权

评论回复
8
eefas| | 2024-3-1 19:54 | 只看该作者
检查Keil中的优化选项设置。确保选择了正确的优化等级(例如:-O1、-O2、-O3 或 -Os)。同时,检查其他优化选项,例如:循环展开、内联函数等,确保它们不会导致错误。

使用特权

评论回复
9
elsaflower| | 2024-3-1 20:08 | 只看该作者
可以使用printf函数或其他调试工具来记录关键变量的值和程序执行流程

使用特权

评论回复
10
robincotton| | 2024-3-2 00:39 | 只看该作者
优化是一个复杂的过程,可能会影响代码的执行和结构。

使用特权

评论回复
11
geraldbetty| | 2024-3-2 07:34 | 只看该作者
可以开启更多的警告和错误检查,以便在编译时发现更多的问题。

使用特权

评论回复
12
lzbf| | 2024-3-2 09:53 | 只看该作者
不同的优化等级对应不同的编译器优化策略。例如,0级优化通常不会对代码进行任何优化,而更高级的优化会尝试执行常数折叠、循环展开等优化手段。这些优化可能会影响代码的行为,特别是如果代码中有依赖于特定执行顺序或者内存布局的部分。

使用特权

评论回复
13
mollylawrence| | 2024-3-2 16:38 | 只看该作者
在某些情况下,优化后的代码可能会利用硬件的特性,而在目标硬件上无法正确执行。

使用特权

评论回复
14
bartonalfred| | 2024-3-2 18:35 | 只看该作者
有时,编译器可能会发出警告,这些警告可能指示潜在的问题。确保解决所有编译器警告。

使用特权

评论回复
15
sesefadou| | 2024-3-2 20:29 | 只看该作者
升优时,编译器可能会给出警告。              

使用特权

评论回复
16
kkzz| | 2024-3-2 22:34 | 只看该作者
优化可能对浮点数的处理不够准确,这可能会导致一些计算结果不准确。

使用特权

评论回复
17
uiint| | 2024-3-3 09:08 | 只看该作者
有时候可能会因为疏忽而忘记将某些重要的源文件(如.c文件)添加到工程中,或者没有正确包含必要的头文件。这可能导致在编译时出现未解析的外部符号错误

使用特权

评论回复
18
yorkbarney| | 2024-3-3 11:02 | 只看该作者
Keil的编译器通常提供多个优化等级,如-O0(无优化)、-O1(低级优化)和-O2(高级优化)。你可以尝试从-O1开始,然后逐步提高到-O2,以查看问题何时出现。

使用特权

评论回复
19
mikewalpole| | 2024-3-3 12:53 | 只看该作者
优化可能会移动代码,这可能会导致原本正常运行的代码在移动后出现错误。

使用特权

评论回复
20
rosemoore| | 2024-3-3 14:46 | 只看该作者
在提高优化等级后,可能会出现链接错误。这可能是由于编译器在优化过程中使用了某些库函数的不同版本。这

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

116

主题

1988

帖子

1

粉丝