Функция calibrate_delay()
грубо измеряет, сколько инструкций процессор может выполнить в секунду. Эта функция также описана в вики о BogoMIPS , и результатом этой функции является число известных BogoMIPS. Источник функции - при инициализации / калибровке. c.
Глядя на pr_cont(...)
вызов в источнике, я предполагаю, что:
1 loops_per_jiffy / (500000/HZ) = 1 BigoMOPS
Так это означает, что:
1 loops_per_jiffy = 500000 / HZ BigoMOPS
То есть loops_per_jiffy
выглядит как число 500000 миллионов инструкций в один миг.
говорят, что я хочу задержку в 1 микросекунду, как я могу использовать это значение loops_per_jiff ie
Прочитать источник. Это реализовано для различных архитектур напр. udelay () в x86 / lib / delay. c function или udelay () для mips . Похоже, он ждет number_of_useconds_to_wait * loops_per_jiffy / 1000000 * 4 * HZ [+ 1]
петли (или что-то в этом роде).