From 1b4b8bb856542d3ce4450fa4b567e65a6c9119e9 Mon Sep 17 00:00:00 2001 From: Mark Charlebois Date: Thu, 19 Mar 2015 10:13:44 -0700 Subject: [PATCH] Linux: in printf cast uint64_t to unsigned long long When printing a uint64_t type using %llu, this works on a 32bit system, but on a 64bit machine uint64_t is an unsigned long. The compiler complains about unmatching types. The time times in PX4 should likely have been unsigned long long and not uint64_t as that type changes per architecture. Signed-off-by: Mark Charlebois --- src/modules/mavlink/mavlink_main_linux.cpp | 2 +- src/platforms/linux/tests/hrt_test/hrt_test.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/mavlink/mavlink_main_linux.cpp b/src/modules/mavlink/mavlink_main_linux.cpp index e251ceaf5e..99e689e74e 100644 --- a/src/modules/mavlink/mavlink_main_linux.cpp +++ b/src/modules/mavlink/mavlink_main_linux.cpp @@ -1657,7 +1657,7 @@ Mavlink::display_status() { if (_rstatus.heartbeat_time > 0) { - printf("\tGCS heartbeat:\t%llu us ago\n", hrt_elapsed_time(&_rstatus.heartbeat_time)); + printf("\tGCS heartbeat:\t%llu us ago\n", (unsigned long long)hrt_elapsed_time(&_rstatus.heartbeat_time)); } printf("\tmavlink chan: #%u\n", _channel); diff --git a/src/platforms/linux/tests/hrt_test/hrt_test.cpp b/src/platforms/linux/tests/hrt_test/hrt_test.cpp index d5e446bcc9..baa8670332 100644 --- a/src/platforms/linux/tests/hrt_test/hrt_test.cpp +++ b/src/platforms/linux/tests/hrt_test/hrt_test.cpp @@ -53,14 +53,14 @@ int HRTTest::main() hrt_abstime t = hrt_absolute_time(); usleep(1000000); hrt_abstime elt = hrt_elapsed_time(&t); - printf("Elapsed time %llu in 1 sec (usleep)\n", elt); - printf("Start time %llu\n", t); + printf("Elapsed time %llu in 1 sec (usleep)\n", (unsigned long long)elt); + printf("Start time %llu\n", (unsigned long long)t); t = hrt_absolute_time(); sleep(1); elt = hrt_elapsed_time(&t); - printf("Elapsed time %llu in 1 sec (sleep)\n", elt); - printf("Start time %llu\n", t); + printf("Elapsed time %llu in 1 sec (sleep)\n", (unsigned long long)elt); + printf("Start time %llu\n", (unsigned long long)t); return 0; }