Тут я помочь ничем не могу. IAR никогда в глаза не видел. А нельзя ли по простому: бряк на начало кода, потом бряк на вызов этой функции. Причем первый бряк не обязательно должен быть началом вообще. И можно на первом бряке сбросить счётчик тактов для удобства.
А ещё вы можете без проблем завести таймер, который будет тикать Вам хоть каждую микросекунду, а потом сделать что-то вроде GetTickCout() и в нужный момент запоминать текущее значение. При этом в главном цикле можно без труда выводить значение этой переменной(или может быть даже массива) по UART. Оверхед будет минимальным, т.к. перед вызовом функции или уже в самой функции будет просто добавлено что-то типа foo_call_time = GetTickCout(); если GetTickCout() заинлайнить - то это всего каких-то пять-десять лишних тактов(в зависимости от размера переменных и кода, обеспечивающего атомарность доступа к ним).
--------------------
The truth is out there...
|