Второе. Пошаговая отладка в IAR работает нормально, программа-мигалка блинкает если прогонять программу по шагам нажатием кнопки "Step over". При нажатии на кнопку "Go" ничего не происходит, светодиод постоянно светиться и не мигает... Хотя, если много раз нажимать последовательно "Go" и "Break" видно, как стрелочка в окне кода останавливается на рандомных строчках программы в цикле while в блоке main, и светодиод после остановки программы либо светиться, либо нет, в зависимости от того на какой строчке произошла остановка.
И, светодиод во время выполнения отладки не мигает, но светиться как-то тускло, а когда останавливаешь зажигается немного ярче. Похоже что он мигает, но с очень большой частотой. Такое впечатление, что отладчик игнорирует задержки. Один раз мне удалось тыканьем в кнопки заставить светодиод мигать в режиме отладки, но не помню как я этого добился.
Микроконтроллер STM8S103F3P, код мигалки под спойлером взят из интернета.
Спойлер
#include <stdint.h>#define __IO volatile
typedef struct GPIO_struct
{
__IO uint8_t ODR;
__IO uint8_t IDR;
__IO uint8_t DDR;
__IO uint8_t CR1;
__IO uint8_t CR2;
}
GPIO_TypeDef;
#define GPIOB_BaseAddress 0x5005
#define GPIOB ((GPIO_TypeDef *) GPIOB_BaseAddress)
static void delay(uint32_t t)
{
while(t--) {}
}
int main(void)
{
GPIOB->DDR |= (1 << 5);
GPIOB->ODR |= (1 << 5);
while(1)
{
GPIOB->ODR |= (1 << 5);
delay(100000UL);
GPIOB->ODR &= ~(1 << 5);
delay(100000UL);
}
}





