0

I'm debugging some code of the kernel init with an oscilloscope by setting up values on GPIO, what is the best way to sleep() for a given time very early, i.e, in ddr3_init() ?

Thank you

moul
  • 543
  • 3
  • 10

1 Answers1

1

You could use a busy loop that stops after a given time interval. This should sleep for one second (I'm not sure if it works, I put it together by looking at the time.h header):

#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);
Ambroz Bizjak
  • 7,809
  • 1
  • 38
  • 49