This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3351:系统时间和中断错误

Guru**** 2553260 points
Other Parts Discussed in Thread: AM3351

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/573910/linux-am3351-system-time-and-intrrupt-error

器件型号:AM3351

工具/软件:Linux

我们使用了 AM3351芯片,SDK 版本为“TI - PROCESSOR-SDK-LINUX-AM335x-EVM-03.00.04”(内核版本:Linux 4.412)。我们板的 RTC 时钟源是内部的。我们 使用了我们的板进行长期测试。    30小时或更长时间 后,我们发现系统时钟出错,控制台无法连接到主板,外部插座连接断开,并且 reboot 命令无法正常工作。但我们可以使用 telent 连接主板。

我们使用 date 命令 来查看系统时间,发现系统时间将超过180秒、形成十六进制时间值,、然后 回退到该特定时间值。它会像这样反复循环。我编写了一个模块和应用程序来查看 xtime、 发现 Xtime 无法更新,并且一直停留在某个值中。日志中关于  时间循环在180秒内来回的部分如下所示:

根部@歌剧:~日期
TUE 2017年2月7日18:34:51 UTC 2017
根部@歌剧:~日期
TUE 2017年2月7日18:34:55 UTC 2017
根部@歌剧:~日期
TUE 2017 UTC 2月7日18:34:57
根部@歌剧:~日期
TUE 2017年2月7日18:35:00 UTC 2017
根部@歌剧:~日期
TUE 2017年2月7日18:35:02 UTC 2017
根部@歌剧:~日期
TUE 2017年2月7日18:35:04 UTC 2017
根部@歌剧:~日期
TUE 2017年2月7日18:35:59 UTC 2017
根部@歌剧:~日期
TUE 2017年2月7日18:36:18 UTC
根部@歌剧:~日期
TUE 2017 UTC 2月7日18:36:34
根部@歌剧:~日期
TUE 2017年2月7日18:36:55 UTC 2017
根部@歌剧:~日期
TUE 2017年2月7日18:37:00 UTC
根部@歌剧:~日期
TUE 2017年2月7日18:37:03 UTC 2017
根部@歌剧:~日期
2017年2月7日18:37:20 UTC
根部@歌剧:~日期
TUE 2017年2月7日18:34:23 UTC 2017

3. 我使用 'cat /proc/interrupt 命令多次查看系统中断的状态,并发现 'gp_timer'和' 44e09000.serial'的中断次数没有变化。通常这两个值会不断增加。系统中断如下:

root@opera:~# cat /proc/interrupts
      CPU0     
 16:  5315316   INTC 68级别  gp_timer
 19:      1   INTC 78电平  wkup_m3_txev
 20:   1176   INTC 12级  490000.EDMA_ccint
 22:      0   INTC 14级别  490000.EDMA_cerrint
 26:      0   INTC 96电平  44e07000.GPIO
 33:      0 44e07000.GPIO 6 Edge   48060000.MMC CD
 59:      0   INTC 98电平  GPIO1_9
 92:      0   INTC 32电平  GPIO2_25
125:      0   INTC 62电平  481ae000.GPIO
158:   1281   INTC 72 Level  44e09000.serial
159:      4   INTC 70电平  44e0b000.i2c
160:      0   INTC 30电平  4819c000.i2c
161:     13   INTC 64级  mmc0
162:     11   INTC 28电平  mmc1
164:      0   INTC 77电平  wkup_m3
170:      0   INTC 75电平  rtc0
171:      0   INTC 76电平  rtc0
174:  170642   INTC 41 Level  4a100000.ethernet
175:   4649   INTC 42 Level  4a100000以太网
178:    573   INTC 4级  48080000.elm
179:      0   INTC 100电平  GPMC
180:      0   INTC 109级别  53100000.sham
184:      0   INTC 111级  48310010.rng
186:   12093   INTC 18级  musb-hdrc.0.auto
187:      8   INTC 19级  musb-hdrc.1.auto
188:      0   INTC 17级  47400000 DMA 控制器
错误:      0
root@opera:~# cat /proc/interrupts
      CPU0     
 16:  5315316   INTC 68级别  gp_timer
 19:      1   INTC 78电平  wkup_m3_txev
 20:   1176   INTC 12级  490000.EDMA_ccint
 22:      0   INTC 14级别  490000.EDMA_cerrint
 26:      0   INTC 96电平  44e07000.GPIO
 33:      0 44e07000.GPIO 6 Edge   48060000.MMC CD
 59:      0   INTC 98电平  GPIO1_9
 92:      0   INTC 32电平  GPIO2_25
125:      0   INTC 62电平  481ae000.GPIO
158:   1281   INTC 72 Level  44e09000.serial
159:      4   INTC 70电平  44e0b000.i2c
160:      0   INTC 30电平  4819c000.i2c
161:     13   INTC 64级  mmc0
162:     11   INTC 28电平  mmc1
164:      0   INTC 77电平  wkup_m3
170:      0   INTC 75电平  rtc0
171:      0   INTC 76电平  rtc0
174:  170692   INTC 41 Level  4a100000.ethernet
175:   4653   INTC 42级  4a100000以太网
178:    573   INTC 4级  48080000.elm
179:      0   INTC 100电平  GPMC
180:      0   INTC 109级别  53100000.sham
184:      0   INTC 111级  48310010.rng
186:   12093   INTC 18级  musb-hdrc.0.auto
187:      8   INTC 19级  musb-hdrc.1.auto
188:      0   INTC 17级  47400000 DMA 控制器
错误:      0
因此、我怀疑内核中断系统是一个问题、这会导致系统时钟和控制台无法正常进入中断。最后、会生成项目1中描述的问题。
这是相关文档中的 DTB、请帮助检查 DTB 配置是否导致 系统时钟中断错误。
请帮助解决问题。非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的用户4773977:

    所描述的问题未知、需要深入调查。 但首先、我想问您是否有 NTP 配置? 是否可以发布 NTP 设置?

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Tsvetolin Shulev,
    我们没有 NTP 配置。我们使用我们自己编写的 NTP 客户端。我们的 ntpclient 通过'stock'与 NTP 服务器连接, 并从 IT 获取时间。然后使用 gettimeofday founcion 编写从 NTP 服务器获取的系统时间。我们的 ntpclient 只能在系统启动后运行一次。因此我认为此问题与 ntpclient 没有任何关系。
    ,发生问题时,我们无法通过 UART 连接主板、但可以使用 telent 连接主板。当我们登录主板系统时、使用'cat /proc/interrupt '命令查看系统中断的状态、并发现 gp_timer 的中断停止。这会导致系统错误。 我编写了一个模块和应用程序来查看 xtime、发现 Xtime 无法更新。我不知道什么导致 gp_timer 中断停止。

    事情很紧急!
    请帮帮我!
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在看来 INT 系统是错误的!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的品牌:

    此问题是否已解决?
    您的意思是"INT system is wrong"? 有详细信息吗?

    BR、
    韦恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Wayne、
    此问题未得到解决。
    当我们登录主板系统时,使用'cat /proc/interrupt 命令查看系统中断的状态,并发现 gp_timer 的中断已停止。这会导致系统时间错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、

    我在定制 AM335x 板上观察到类似的情况。 这种情况并不经常发生、而且很难重现、基本而言、我们必须等到系统的某些部分无法响应。

    当器件进入此状态时、我们看到的主要症状是在特定的时间窗口中它没有响应。 在"无响应窗口"期间、我根本不能发出任何命令。 我的设备打开了一个 ssh 会话,在“感应窗口”期间,我可以发出某些命令,例如 date 命令。 我可以反复发出日期命令、直到系统"锁定"、在系统锁定后、我仍然可以键入命令、但我的 ssh 会话没有响应、 然后、当系统转换到"响应窗口"时、它会立即响应我发出的最后一条命令、在本例中是日期命令、我看到时间从最后一个日期命令跳回62秒。

    此外、我看到/proc/interrupts 中的 gp_timer 中断计数从未增加、但是在正常运行的系统上、这会显著增加。

    它也看起来好像系统定时器已冻结、如果我发出睡眠1命令、它永远不会退出。 此外、串行控制台在此状态下似乎已失效。 我还无法使用单独的 ssh 会话登录到设备。

    我不确定是否错过了描述此问题的任何主题、这是唯一描述我观察到的内容的主题。

    提前感谢您的深入见解