请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:DK-TM4C129X
您好!
我正在尝试在我的开发套件屏幕上显示本地时间。
我从 ti/sysbios/hal/sonds 的手册页之一获得了以下代码
#include #include
//... time_t; struct TM *LTM; char *curTime; t = time (NULL); LTM = localtime (&t); curTime = asctime (LTM); System_printf ("time (GMT):%s\n"、curTime); System_flush ();
它的工作方式符合我的预期、并将时间放在控制台中。
但是、如果我尝试在时钟函数或空闲回调中调用与上述完全相同的代码、我会得到
未处理的 ADP_Stopped 异常0x20023
在单步执行 localtime 函数调用时。 我已经尝试步入、没有文件。 但是、其中包括在有用的情况下进行的反汇编。
localtime(): 0000dd5c:B510 按 {R4、LR} 0000dd5e:4604 MOV R4、r0 57. 0000dd60:F7F6F9B8 BL #0x40d4 0000dd64:F100017C 添加 R1、r0、#0x7c 0000dd68:4620 MOV R0、R4 58 _REENT_CHECK_TM (REENT); 0000dd6a:E8BD4010 弹出 {R4、LR} 57 0000dd6e:F000B801 b.w localtime_r 0000dd72:BF00 NOP 17. 返回_mktm_r (TIM_p、res、0);
`、它尤其在第一个` BL 上消失。
我已经尝试深入探讨了这一点、它正在消亡
assert_isTrue (((BIOS_getThreadType ()!= BIOS_ThreadType_Hwi)&& (BIOS_getThreadType ()!= BIOS_ThreadType_Swi))、 ReentSupport_a_badThreadType);
但我无法想象为什么 localtime 会在这里引起问题。
有什么建议吗?