Как спать () из ядра 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);
Другие вопросы по тегам