Использование такой функции для ARM возможно только при отключенном MAM (MEMORY ACCELERATOR MODULE), иначе точное время выполнения функции предсказать невозможно. А выключать MAM не резонно. Поэтому таким способом задержек никто и не пользуется.
Можно конечно калибровать задержку при инициализации программы, но это уже посложней, да и абсолютной точности не гарантирует. Так например реализованы короткие задержки в ядре линукс.
Мне кажется, что для небольшого проекта все-таки лучший вариант изыскать способ и использовать таймер тикающий с нужной частотой. Собственно я так в своих проектах и делаю.