Как спать () из ядра init?
Я отлаживаю некоторый код инициализации ядра с помощью осциллографа, устанавливая значения в GPIO, что является лучшим способом sleep()
на данное время очень рано, т. е. в ddr3_init()
?
Спасибо
1 ответ
Решение
Вы можете использовать занятый цикл, который останавливается через заданный интервал времени. Это должно спать на одну секунду (я не уверен, что это работает, я собрал это вместе, посмотрев на заголовок time.h):
#include <linux/time.h>
struct timespec start_ts = current_kernel_time();
s64 start = timespec_to_ns(&start_ts);
do {
struct timespec now_ts = current_kernel_time();
s64 now = timespec_to_ns(&now_ts);
} while (now - start < 1000000000ULL);