Код
int main(void)
{
uint16_t result = 0;
InitAll(); // выполняем инициализацию порта
while(1)
{
result = GPIOA -> IDR & GPIO_IDR_IDR8;
}
}
{
uint16_t result = 0;
InitAll(); // выполняем инициализацию порта
while(1)
{
result = GPIOA -> IDR & GPIO_IDR_IDR8;
}
}
Компилятор выдает предупреждение:
Код
main.c(20): warning: #550-D: variable "result" was set but never used
Просмотрел файл линкера Prg_name.map, действительно, под переменную result не выделена память.
После объявления переменной как volatile предупреждение не возникает, но память по прежнему не выделяется.
Как я понимаю, приводить инициализацию портов нет смысла, ибо на выход все работает, такты подаются, светодиод моргает.
При этом в регистре IDR должно быть текущее состояние порта в не зависимости от режима работы. Я прав?
Компилятор Keil 4.50, МК STM32F103ZET6.
Спасибо за помощь.
Да, забыл указать, уровень оптимизации -00.