Цитата(MK2 @ Feb 27 2015, 13:21)

Тогда как скажите объяснить iar что бы он заинлайнил эту ф-цию, но и оптимизацией не выкинул пустой цикл?!
Код
void inline generation() const
{
GPIO_PinOutToggle(gpioPortB, 13);
for(uint16_t i = 0; i < 0x2; i++);
GPIO_PinOutToggle(gpioPortB, 13);
}
1. за задержки на пустых циклах надо сразу отрывать сами знаете что. В этом случае генофонд человечества будет медленно, но улучшаться.
1.1 на сколько тактов задержки благородный дон рассчитывает в цикле данной конструкции?
1.2 платформозависимые кунштюки обычно плохо ложатся на платформонезависимый код, поэтому используют платформозависимые решения, типа asm "nop"
2. читать книжки про спецификатор volatile.
3. по возможности сделать эту функцию static
4. inline это всего лишь рекомендация, которой не всегда можно следовать. Например, что будет, если попытаться взять адрес заинлайненой функции ?