0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何判断硬件是否具有嵌入式Linux支持

星星科技指导员 来源:嵌入式计算设计 作者:Ville Baillie 2022-12-01 14:25 次阅读

在为您的定制电子设计挑选零件时,可以提前检查 Linux 驱动程序支持。为不受支持的硬件编写新的驱动程序非常耗时,会带来风险,并增加项目的复杂性。

最好选择支持的硬件。我们如何首先检查硬件是否受支持?首先,您需要找到您将使用的Linux的确切版本。

获得正确的 Linux 内核

您可能使用的是 kernel.org 的内核版本,但更有可能使用的是 SOC 供应商提供的任何定制内核。例如,如果您使用的是带有BSP imx_4.9.88_2.0.0_ga的恩智浦 i.MX 处理器,那么您将使用它。

您需要确保您拥有将使用的 Linux 内核的确切版本。支持一直在添加和删除,不能保证在两个不同版本的 Linux 内核中找到相同的代码。

搜索驱动程序支持

现在您已经有了正确的内核源代码,如何检查是否支持给定的硬件部件号?

最好的方法是对您要查找的部件号进行文本搜索。我将用几个例子来说明这一点。

注意:在这些示例中,我们使用 kernel.org 的内核版本 v5.0-rc1。为了搜索,我们将使用‘git grep’,这是一个非常快速的命令行工具,用于搜索git存储库的全部内容。

示例 1:S25FL512SAGMFI011 闪存

您可以尝试的第一件事是搜索整个零件号。

poYBAGOISQyAabw9AABS1OgXynM646.png

这什么也想不出来。下一步是在设置不区分大小写的情况下进行搜索。最好搜索不区分大小写的字符,因为 Linux 内核更喜欢使用小写标识符作为驱动程序名称,但您可能会找到大写或小写的线索。

pYYBAGOISRGAW6z0AABRJXUnziA489.png

不幸的是,这仍然没有提出任何东西。接下来要尝试的是删除部件号中的一些尾随字符,因为其中一些可能是指包装、温度范围和其他不影响设备逻辑操作且不影响 Linux 驱动程序操作的内容。

您可以从搜索字符串中逐个删除字符,直到获得匹配项,然后根据数据表和结果做出明智的决定,以查看您的部件是否受支持。查看数据手册,我们可以看到只有S25FL512S部分与器件的逻辑操作相关。

poYBAGOISRiAYhqhAAMF7Mmlvt8585.png

现在我们有一些有趣的结果。第一个结果是“jedec,spi-nor”设备树绑定的一些文档。最后一个结果是在“spi-nor.c”驱动程序中找到的表中的条目,该表描述了此特定闪存芯片的某些属性。

由此我们可以推断出该芯片是受支持的,并且可以在启动时通过其 JEDEC ID 进行检测,如果按照第一个结果的文档中所述添加了正确的设备树条目。

示例 2:MCP79411-I/SN 实时时钟

同样,搜索整个零件号不会显示任何内容。查看数据手册,MCP79410、MCP79411和MCP79412只有一个数据手册。唯一的区别是设备内部存储中提供的“唯一ID”的类型。因此,我们可以尝试搜索“MCP7941”。

pYYBAGOISR6Ab-VUAAGg9fo9I6s414.png

同样,我们得到了一些驱动程序结果和一些有关如何通过设备树添加支持的文档。

结语

有时不会显式支持确切的部件,但它在功能上可能与另一部件相同,在这种情况下,可以对两者使用相同的驱动程序。

如果不支持该部分,则值得拥有最新的 Linux 内核源代码的副本进行交叉引用。如果最近添加了支持,则可以将驱动程序“向后移植”到内核版本。

有时驱动程序已经编写,但尚未包含在官方内核源代码中。它可能已提交到邮件列表,您可以尽早试用。在所有情况下,“谷歌”都可以是一个很大的帮助。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • soc
    soc
    +关注

    关注

    38

    文章

    4177

    浏览量

    218464
  • Linux
    +关注

    关注

    87

    文章

    11316

    浏览量

    209812
收藏 人收藏

    评论

    相关推荐

    嵌入式工程师常用的开发工具有哪些?

    代码转换为机器可执行的代码。GCC(GNU Compiler Collection)是一款免费且功能强大的编译器,广泛应用于嵌入式开发领域。它支持多种编程语言和目标架构,具有良好的可移植性和优化能力
    发表于 12-20 15:29

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备中的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统、计算机组成原理等。这些知识将帮助你理解嵌入
    发表于 12-12 10:51

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    系统开发与硬件关系的几个关键点: 硬件依赖性 :嵌入式系统的软件必须能够在特定的硬件上运行,这包括处理器、内存、输入/输出接口等。软件必须能够充分利用
    的头像 发表于 12-09 09:38 298次阅读

    嵌入式 Linux 操作系统配置

    随着物联网(IoT)和智能设备的快速发展,嵌入式系统在各个领域扮演着越来越重要的角色。Linux因其开源、灵活和稳定的特性,成为嵌入式系统的首选操作系统。 1. 硬件选择 在配置
    的头像 发表于 11-06 10:22 463次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备
    的头像 发表于 09-30 10:05 590次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,
    的头像 发表于 09-02 09:11 534次阅读

    嵌入式linux开发板怎么操作

    开发板概述 嵌入式Linux开发板是一种专门为嵌入式系统开发而设计的硬件平台。它具有体积小、功耗低、性能高等特点,广泛应用于工业控制、智能家
    的头像 发表于 09-02 09:09 414次阅读

    嵌入式linux开发板芯片的工作原理

    了处理器、存储器、输入/输出接口等硬件资源的嵌入式系统开发平台。它通常采用Linux操作系统作为底层软件平台,提供了丰富的开发工具和库函数,方便开发者进行嵌入式系统开发。 1.1
    的头像 发表于 09-02 09:07 411次阅读

    专家力荐|《嵌入式系统原理与开发——基于RISC-V和Linux系统》新书发售

    当前,嵌入式系统已成为智能设备的核心之一,RISC-V+Linux的开源力量为嵌入式系统注入强大的创新动力。作为中国RISC-V软硬件生态领导者,赛昉科技与业界专家合作推出《
    的头像 发表于 07-24 08:20 630次阅读
    专家力荐|《<b class='flag-5'>嵌入式</b>系统原理与开发——基于RISC-V和<b class='flag-5'>Linux</b>系统》新书发售

    从事嵌入式方向,一定要软硬件通吃?

    嵌入式系统开发领域,软件和硬件的界限常常模糊不清。一个常见的问题是,嵌入式软件工程师是否需要了解硬件。本文将探讨这一问题的重要性,并分析
    的头像 发表于 06-05 08:10 1230次阅读
    从事<b class='flag-5'>嵌入式</b>方向,一定要软<b class='flag-5'>硬件</b>通吃?

    嵌入式系统软硬件基础知识大全

    、成本和功耗方面具有独特的优势。在理解嵌入式系统之前,我们需要对其硬件基础知识有一个全面的了解。在嵌入式系统中,处理器是其核心组成部分,它负责执行各种计算任务。处理器的架构和指令集是
    发表于 05-09 14:12

    fpga与嵌入式的区别 嵌入式和fpga开发有什么关系

    fpga与嵌入式的区别 FPGA与嵌入式系统在设计和应用上存在一些关键的区别,具体如下: 灵活性:FPGA具有高度的灵活性,可以根据需要重新编程以实现不同的功能。而嵌入式系统的
    的头像 发表于 03-14 17:04 6941次阅读

    CCG3是否支持AlteranteMode上的嵌入式显示端口?

    我有一个关于 CCG3 的问题。 CCG3 是否支持 AlteranteMode 上的嵌入式显示端口?
    发表于 03-05 06:44

    高端嵌入式实验平台

    一、整体概述 该嵌入式平台具有前沿性、专业性、高集成度、功能丰富等特点,平台涵盖嵌入式计算机技术、嵌入式硬件接口、
    的头像 发表于 01-29 09:55 536次阅读
    高端<b class='flag-5'>嵌入式</b>实验平台

    嵌入式Linux开发的三种方式

    嵌入式Linux开发主要有三种方式:裸机开发、SDK开发和驱动开发。
    的头像 发表于 01-22 14:22 995次阅读