在MCUXpresso(NXP-eclipse)上使用-o0,在调试时我仍然遇到“优化”问题

时间:2019-06-10 10:08:31

标签: c++

我正在使用针对NXP uP(MCUExpresso)调整的Eclipse与目标NXP uP调试c ++代码。 我设置了“无”优化,并在c ++编译器上手动强制使用了参数“ -o0”,但是在调试时由于“已优化”而未显示某些变量。

我能做什么?

在编译时这里只有一小部分调试控制台

11:58:06 **** Incremental Build of configuration Debug for project xxxx ****
make -r -o0 -j8 all 
Invoking: MCU C++ Compiler
arm-none-eabi-c++ -D__NEWLIB__ -D__CODE_RED -DCPP_USE_HEAP -DTARGET_MBED_LPC1768 -DDEVICE_ERROR_PATTERN=1 -D__MBED__=1 -DDEVICE_I2CSLAVE=1 -DTARGET_LIKE_MBED -DTARGET_NXP -DTARGET_LPC176X -DDEVICE_PORTIN=1 -D__CMSIS_RTOS -DDEVICE_RTC=1 -DTOOLCHAIN_object -DMBED_BUILD_TIMESTAMP=1479310415.64 -DTOOLCHAIN_GCC -DDEVICE_CAN=1 -DTARGET_LIKE_CORTEX_M3 -DTARGET_CORTEX_M -DARM_MATH_CM3 -DDEVICE_ANALOGOUT=1 -DTARGET_UVISOR_UNSUPPORTED -DTARGET_M3 -DDEVICE_PWMOUT=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_I2C=1 -DDEVICE_PORTOUT=1 -D__CORTEX_M3 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_LPC1768 -DTOOLCHAIN_GCC_CR -DDEVICE_PORTINOUT=1 -DDEVICE_SERIAL_FC=1 -DTARGET_RELEASE -D__MBED_CMSIS_RTOS_CM -DDEVICE_SLEEP=1 -DDEVICE_SPI=1 -DDEVICE_ETHERNET=1 -DDEVICE_SPISLAVE=1 -DDEVICE_ANALOGIN=1 -DDEVICE_SERIAL=1 -DDEVICE_SEMIHOST=1 -DDEVICE_DEBUG_AWARENESS=1 -DDEVICE_LOCALFILESYSTEM=1 -I

[...]


 -O0 -g -Wall -c -std=gnu++98 -fno-rtti -Wvla -DTARGET_MBED_LPC1768 -DDEVICE_ERROR_PATTERN=1 -D__MBED__=1 -DDEVICE_I2CSLAVE=1 -DTARGET_LIKE_MBED -DTARGET_NXP -DTARGET_LPC176X -DDEVICE_PORTIN=1 -D__CMSIS_RTOS -DDEVICE_RTC=1 -DTOOLCHAIN_object -DMBED_BUILD_TIMESTAMP=1479310415.64 -DTOOLCHAIN_GCC -DDEVICE_CAN=1 -DTARGET_LIKE_CORTEX_M3 -DTARGET_CORTEX_M -DARM_MATH_CM3 -DDEVICE_ANALOGOUT=1 -DTARGET_UVISOR_UNSUPPORTED -DTARGET_M3 -DDEVICE_PWMOUT=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_I2C=1 -DDEVICE_PORTOUT=1 -D__CORTEX_M3 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_LPC1768 -DTOOLCHAIN_GCC_CR -DDEVICE_PORTINOUT=1 -DDEVICE_SERIAL_FC=1 -DTARGET_RELEASE -D__MBED_CMSIS_RTOS_CM -DDEVICE_SLEEP=1 -DDEVICE_SPI=1 -DDEVICE_ETHERNET=1 -DDEVICE_SPISLAVE=1 -DDEVICE_ANALOGIN=1 -DDEVICE_SERIAL=1 -DDEVICE_SEMIHOST=1 -DDEVICE_DEBUG_AWARENESS=1 -DDEVICE_LOCALFILESYSTEM=1 -include mbed_config.h -c -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -fmessage-length=0 -fno-exceptions -fno-builtin -ffunction-sections -fdata-sections -funsigned-char -MMD -fno-delete-null-pointer-checks -fomit-frame-pointer -mcpu=cortex-m3 -mthumb -Os -mcpu=cortex-m3 -mthumb -D__NEWLIB__ -MMD -MP 

[...]

Invoking: MCU C++ Linker

[...] 

Memory region         Used Size  Region Size  %age Used
       MFlash512:       52304 B       512 KB      9.98%
        RamLoc32:        7316 B      32568 B     22.46%
      RamAHB_USB:          0 GB        16 KB      0.00%
      RamAHB_Eth:          0 GB        16 KB      0.00%

[....]

11:58:20 Build Finished (took 14s.814ms)

例如:

void serialExPollTimerLoopBack(){
    int elap = SerialEXTimeCount.read_ms();
    if ((SerialNumByteRx > 0) && (elap > SERIAL_RCVTIME)){
            // do something
    }
}

变量elap无法在“ if”上使用断点进行调试

0 个答案:

没有答案