gpt4 book ai didi

c - 为什么/如何在 Segger JTAG ICE 下为微 Controller 平台设置时间?

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:34 25 4
gpt4 key购买 nike

在 SAM4C 微 Controller 平台上,time() 函数在库中调用。我发现,当我从调试器启动时,这给出了正确的时间 (1496321612)。然而,当我在电路板上进行硬件重置并且闪存固件在没有调试器的情况下执行时,time() 不会返回并且固件卡在此时。

我想知道时间是怎么设定的。我仅通过 ATMEL JTAG ICE (Segger) 进行调试,没有明确设置时间。当我在我的 PC 上更改日期时,我在调试时返回了不同的时间......当调试 session 由 Segger ICE 启动时,是否有一种自动机制可以从我的 PC 设置时间,为什么我的固件在未设置时间时崩溃?

最佳答案

这可以通过称为半托管 的机制来实现。总体而言,该机制允许目标使用主机(运行调试器 HW/SW 的主机)上可用的一些设施。简化的机制如下所示:

  1. 目标固件链接到支持半主机的库。
  2. 每次固件调用半主机功能时,都会发生调试器事件(可能是某些 SVC/SWI 调用、特殊断点或其他内容,具体取决于特定平台)。
  3. 调试器正在“捕捉”这个事件,弄清楚请求的是什么(它可以是一些 IO 函数,或者像你的情况一样请求时间)并将这个请求传递给主机软件。
  4. 主机软件正在执行所请求的操作并将结果传递给调试器。
  5. 调试器正在将结果传递给目标固件。
  6. 目标正在恢复。

关于c - 为什么/如何在 Segger JTAG ICE 下为微 Controller 平台设置时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44308841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com