Решил в классах вынести тела inline функций за класс, чтоб смотрелось поприличнее.
Вынес, сразу вылезла ошибка линкера:
Код
Error[e27]: Entry "TOneWire::isDevicePresent()" in module application ( Application\obj\application.r79 ) redefined in module onewire ( Application\obj\onewire.r79 )
Удивился, стал разбираться. Если тело inline функции находится внутри описания класса - то никакой ругани. Раскопал такое в portmacro.h:
Код
/* Compiler specifics. */
#define inline
#define inline
Оказвается, уважаемый автор FreeRTOS таким образом маскирует пару inline определений в tasks.h.
Мда. Вот ЭТО quirk!
inline из tasks.h был порезан вместе с дефайном - проблема исчезла. Желаю не наступать на мои грабли.