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/AM5728:计时器驱动程序

Guru**** 2609945 points
Other Parts Discussed in Thread: AM3517

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/655571/linux-am5728-timer-drivers

器件型号:AM3715
主题中讨论的其他器件:AM3517

工具/软件:Linux

您好!

Linux 是否支持硬件计时器驱动程序,或者是否需要为此编写驱动程序?

我检查了、但不太确定。

谢谢、

已运行

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    硬件计时器是什么意思? AM572x 计时器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    定时器驱动程序位于:arch/arm/plat-omap/dmtimer.c
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我是指 AM572x 计时器。
    计时器的 Linux API (如 timer_create)是否实际使用这些硬件计时器?
    如果是,它是否是一个暴露给用户空间的单个定时器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一旦您在 DTS 中启用定时器(在 DTS 节点中添加状态="正常")、请参阅示例 Documentation/devicetree/bindings/sm/OMAP/timer.txt

    dmtimer.c (Biser 提供的路径)和 arch/arm/plat-omap/include/plat/dmtimer.h 中描述了可用于内核的导出符号 如果您需要进一步的定时器句柄、则应自定义驱动程序。

    下面是有关如何创建自定义计时器驱动程序的示例代码:
    e2e.ti.com/.../415079

    但是、您应该修改代码以匹配最新的 TI SDK 内核、因此请勿复制粘贴代码、只需将其用作参考并为最新的 TI 内核编写您自己的代码。

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

    Yordan、您好!

    感谢您提供信息。

    我在 AM37x 的一些旧版内核2.6.37中看到:

    板级配置文件:
    MACHINE_START (OMAP3517EVM、"OMAP3517/AM3517 EVM")
    boot_params = 0x80000100、
    .map_io = OMAP3_MAP_IO、
    .reserve = OMA_reserve、
    init_IRQ = AM3517_EVM_init_IRQ、
    init_machine = AM3517_evm_init、
    .timer =&OMA_timer、
    MACHINE_END

    在 dmtimer.c 中:
    omap_dm_timer_init->初始化 OMAP2_dm_timers、其中包含所有 GPTIMER 列表。

    我认为、如果计时器已经得到支持并暴露在用户空间中、则无需额外的内核驱动程序。
    我只是想了解调用 SYSCALL 时使用的实际硬件计时器是什么、例如 timer_create。
    是否使用这些计时器? 所有这些或仅仅在它们上面?

    此致、
    已运行

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

    它是 gptimer #1。
    在 timer-gp.c 中:
    使用 gptimer id #1初始化 OMAP2_gp_clockevent_init。

    非常感谢