您将如何使用localtime()获得Arm ASM中的当前时间?

问题描述 投票:0回答:2

我正在使用树莓派3,并希望使用localtime()获取本地计算机时间,但是我不知道如何处理。我的老师试图帮助我,但他甚至不知道该怎么做,并结束了代码的编写]

#include <stdio.h>
#include <time.h>
int main () {
   time_t rawtime;
   struct tm *info;
   time( &rawtime );
   info = localtime( &rawtime );
   printf("Current local time and date: %s", asctime(info));
   return(0);
}

然后只是编译成汇编,但是我认为这是一件复杂的事情,我想知道在臂装配中是否有更直接的本地时间查找方法。谢谢

c++ c assembly arm localtime
2个回答
0
投票

首先,我正在简化整个过程以希望更好地回答您的问题;我希望我能说服您不要跳下悬崖,而不仅仅是提供无答案的答案:)

localtime()是C运行时库提供的函数,该库通常与C编译器一起提供。编译器从C / C ++代码生成可运行程序时执行的步骤之一是链接到C运行时库,因此,当您的程序需要调用函数时,它将知道在哪里可以找到dll / so文件,并进行加载。将其存储到内存中并控制所需的功能。大多数库加载和描述的步骤都是由操作系统通过众所周知的功能(例如(dlopen)[https://linux.die.net/man/3/dlopen]))执行的。

您可以编写所有样板文件,但是您必须更好地了解操作系统和C运行时,或者您可以只使用可信赖的c编译器并使代码正常工作。

如果任务的目标是学习更多关于ARM汇编语言和ARM处理器的信息,则您可能应该查阅处理器的数据表,并了解它在内部如何保留时间。


0
投票

根据您的要求,您可以使用time syscall或gettimeofday调用(返回Epoch)来检索时间。

© www.soinside.com 2019 - 2024. All rights reserved.