Linux内核中的硬件时钟信号实现

Linux内核中的硬件时钟信号实现,第1张

概述我正在看一些指针,了解 Linux内核如何实现各种硬件时钟的设置.这主要涉及设置LCD,UART等硬件功能的各种时钟的使用.例如,当Linux启动时,如何处理为UART或USB设置时钟.也许像时钟经理或什么东西. 我基本上试图在我正在开发的新硬件上为不同的 *** 作系统实现类似的 *** 作.任何帮助将非常感激. [编辑] 感谢您的回复和链接.所以这里是我现在实施的.这应该让你知道我在哪里去. 我查找了我针对的 我正在看一些指针,了解 Linux内核如何实现各种硬件时钟的设置.这主要涉及设置LCD,UART等硬件功能的各种时钟的使用.例如,当linux启动时,如何处理为UART或USB设置时钟.也许像时钟经理或什么东西.

我基本上试图在我正在开发的新硬件上为不同的 *** 作系统实现类似的 *** 作.任何帮助将非常感激.

[编辑]
感谢您的回复和链接.所以这里是我现在实施的.这应该让你知道我在哪里去.

我查找了我针对的特定系统的硬件参考手册,并写了一些代码来监视/修改我感兴趣的外设的信号/引脚,即从命令行打开/关闭它们.现在收集这些时钟/信号一起控制外设.人力资源管理部门会说,如果要打开UART或某些东西,然后打开这样的信号/引脚.而@BjoernD是的,我正在使用像mmap()函数来与外设交谈.

我的问题的肉是我想了解使用我已经写的实用程序的时钟/外设管理器的设计和实现.这个时钟/外设管理器将允许我控制启用/禁用我想要的外设.通常这个管理器将使我能够更改正在运行的init代码.此外,在运行时间过程中,可以调用此管理器来打开/关闭设备,从而优化功耗.这可能没有完美的意义,但我自己正试图围绕着这一切.

现在我确信这样的东西可以在linux中实现,或者任何 *** 作系统都能执行性能问题(没有人会想通过在启动时打开所有外设来浪费电力).我想了解它的软件架构.从任何 *** 作系统的参考将直到现在得到一个开始.另外我还没有写我自己的 *** 作系统,有一个 *** 作系统,但是我更多地看到一个板级软件又称BSP来工作.但是感谢 *** 作系统链接,他们真的很好.欣赏它

谢谢!

解决方法 您想要实现的是高度专注于a)您正在使用的平台,以及b)要使用的设备.例如,在x86上有3种方式与设备进行通信:

>中断允许设备通知cpu. OS通常提供寄存中断处理程序的机制 – 在发生中断时调用的函数.在linux中,请参阅request_irq()和linux / include / interrupt.h中的朋友
>内存映射I / O是设备的物理内存,平台的BIOS可以以与访问普通物理内存相同的方式提供,只需通过写入内存地址即可.这种存储器之后究竟是什么(例如,网络接口配置寄存器或LCD帧缓冲器)取决于设备,并且通常在设备的数据表中指定.
> I / O端口可通过特殊地址空间和特殊指令(INB / OUTB& co.)访问.除了它们的工作类似于I / O内存.

有多种方法可以找出设备的资源和BIOS映射的位置.一些平台使用ACPI表(Google自己为1,000k页面规格),PCI通过PCI配置空间以标准化方式提供设备信息,USB具有类似的方式来发现连接到总线的设备,以及一些设备,例如UARTS,被简单地指定为在您的平台固定的预配置I / O范围内可用.

作为理解linux的开始,我建议您使用“Understanding the Linux kernel”.有关linux如何处理设备以及写入驱动程序的具体内容,请查看Linux Device Drivers.此外,您将需要查看平台的特性和您要驱动的设备.

如果要启动自己的 *** 作系统,那么UART肯定是有助于打印调试输出的东西,所以你可能想要首先执行.

现在我记下了这一切,似乎你的实际问题是:如何开始 *** 作系统设计.这个问题对你来说应该是非常有价值的:How to get started in operating system development

总结

以上是内存溢出为你收集整理的Linux内核中的硬件时钟信号实现全部内容,希望文章能够帮你解决Linux内核中的硬件时钟信号实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/1044351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存