如果取消优化,会提示超过flash最大尺寸,不取消优化打断点有些变量无法查看具体变量值
ch32使用-O0和其它选项比如-Og,-Os,-O1等选项尺寸差别非常大
离线
阻止编译器对部分代码进行优化即可,实现方式有两种:
一、对变量添加 volatile 关键字后该变量即不会被优化掉;
二、用#pragma GCC optimize 预处理指令指示部分代码的优化等级,如:
#pragma GCC push_options
#pragma GCC optimize("O0")
// 强制指明O0优化的代码区域
#pragma GCC pop_options
最近编辑记录 海石生风 (2025-07-23 12:47:54)
离线
@海石生风
使用二,单步调试不乱跳了,变量也都能看到了,看来二是整个函数都不优化了
一的话会乱跳。
离线
SDI_Printf可以打印变量,不用关心优化级别
离线
SDI_Printf可以打印变量,不用关心优化级别
开始试过SDI_Printf,有个问题,使用mounRiver studio调试的时候会卡死,使用WCH-LinkUtility没问题
离线