[LKS32 软件] 调高优化等级后显示出错

[复制链接]
4547|51
 楼主| 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等级
chenqianqian 发表于 2023-11-21 08:15 来自手机 | 显示全部楼层
一般都默认优化等级,调了后不知道会出什么错,除非对你的代码很有信心。
onlycook 发表于 2024-2-21 15:30 | 显示全部楼层
OLED显示器的驱动不兼容或有问题?
laocuo1142 发表于 2024-2-21 16:00 | 显示全部楼层
可能是OLED屏幕本身有问题,或者与屏幕连接的线路有问题。
eefas 发表于 2024-3-1 19:54 | 显示全部楼层
检查Keil中的优化选项设置。确保选择了正确的优化等级(例如:-O1、-O2、-O3 或 -Os)。同时,检查其他优化选项,例如:循环展开、内联函数等,确保它们不会导致错误。
elsaflower 发表于 2024-3-1 20:08 | 显示全部楼层
可以使用printf函数或其他调试工具来记录关键变量的值和程序执行流程
robincotton 发表于 2024-3-2 00:39 | 显示全部楼层
优化是一个复杂的过程,可能会影响代码的执行和结构。
geraldbetty 发表于 2024-3-2 07:34 | 显示全部楼层
可以开启更多的警告和错误检查,以便在编译时发现更多的问题。
lzbf 发表于 2024-3-2 09:53 | 显示全部楼层
不同的优化等级对应不同的编译器优化策略。例如,0级优化通常不会对代码进行任何优化,而更高级的优化会尝试执行常数折叠、循环展开等优化手段。这些优化可能会影响代码的行为,特别是如果代码中有依赖于特定执行顺序或者内存布局的部分。
mollylawrence 发表于 2024-3-2 16:38 | 显示全部楼层
在某些情况下,优化后的代码可能会利用硬件的特性,而在目标硬件上无法正确执行。
bartonalfred 发表于 2024-3-2 18:35 | 显示全部楼层
有时,编译器可能会发出警告,这些警告可能指示潜在的问题。确保解决所有编译器警告。
sesefadou 发表于 2024-3-2 20:29 | 显示全部楼层
升优时,编译器可能会给出警告。              
kkzz 发表于 2024-3-2 22:34 | 显示全部楼层
优化可能对浮点数的处理不够准确,这可能会导致一些计算结果不准确。
uiint 发表于 2024-3-3 09:08 | 显示全部楼层
有时候可能会因为疏忽而忘记将某些重要的源文件(如.c文件)添加到工程中,或者没有正确包含必要的头文件。这可能导致在编译时出现未解析的外部符号错误
yorkbarney 发表于 2024-3-3 11:02 | 显示全部楼层
Keil的编译器通常提供多个优化等级,如-O0(无优化)、-O1(低级优化)和-O2(高级优化)。你可以尝试从-O1开始,然后逐步提高到-O2,以查看问题何时出现。
mikewalpole 发表于 2024-3-3 12:53 | 显示全部楼层
优化可能会移动代码,这可能会导致原本正常运行的代码在移动后出现错误。
rosemoore 发表于 2024-3-3 14:46 | 显示全部楼层
在提高优化等级后,可能会出现链接错误。这可能是由于编译器在优化过程中使用了某些库函数的不同版本。这
您需要登录后才可以回帖 登录 | 注册

本版积分规则

146

主题

2295

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部