我正在使用SDCC为STM8微控制器进行编译。编译以下文件会产生一个看似不必要的div指令--这在STM8上非常慢。 char a[1];
char b;
void foo() __interrupt(1) {
char c = a[0];
b = c >> 0;
}
void main() {
} 使用sdcc -mstm8 file.c编译会产生以下程序集: _foo:
clr a
div x, a
ld a, _a+0
ld _b+0, a
iret 这个函数看起来像预期的那样工作,但是我不明白为什么需要前两条
我使用的是STM32多维数据集集成开发环境,我经常看到一个错误对话框,上面写着:
failed to insert all hardware breakpoints;
you may have requested too many hardware breakpoints/watchpoints
我知道我使用的ARM Cortex M0+只支持4个硬件断点,因此出现了错误,但这通常是不够的。我该如何解决这个问题,并设置4个以上的断点?
请注意,我以前使用过STM8 (与IAR EWB),这是一个更有限的MCU,但我可以使用任意多的断点。