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.

[参考译文] AM335x 处理器的头文件

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1213820/header-file-for-am335x-processor

主题中讨论的其他器件:SN65HVS882

HII 先生,

我是初学者、我正在使用 AM335x 处理器、我需要连接到 SPI 器件的 AM335x 处理器头文件。

您能否为此处理器提供头文件以便我能够访问 SPI 器件。

此致

Niraj Kumar

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

    Niraj 您好、

    您的应用是基于 Linux 还是裸机?

    此致、

    简中

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

    感谢回复我的消息

    我想通过 Linux 从 SPI 闪存读取和写入数据。

    有任何源代码吗?

    此致

    Niraj Kumar

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

    Niray,

    感谢您提供更多信息。 我来 Linux 团队寻求帮助。

    此致、

    简中

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

    谢谢徐建兴

    此致

    Niraj Kumar

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

    谢谢徐建兴

    此致

    Niraj Kumar

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

    Niraj、您好、

    开始用户空间 SPI 访问的一个好位置是 AM335x SDK 文档中的"spi"内核驱动程序部分。 转到下面的链接并向下滚动到"Linux 用户空间接口"部分。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/08_02_00_24/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/SPI.html

    我们的 SDK 内核已启用了用户模式 SPI 驱动程序(CONFIG_SPI_SPIDEV)、因此您只需更新器件树、以根据您的硬件/电路板设置添加/公开合适的 SPI 器件(包括相关的引脚多路复用器)。

    然后、您可以使用进行实验 spidev_test.c 是内核树的一部分的实用程序(该文件包括您正在查找的与 SPI 相关的头文件、并展示了如何使用这些头文件)。 当然、您可能希望使用交叉编译环境(在 SDK 中称为"Linux Devkit")构建该工具。

    git.ti.com/.../spi

    下面是一些内核内置 spidev 文档的链接:

    git.ti.com/.../spidev.rst

    我还建议您针对此主题通过 Google 进行搜索、其中包含了大量关于 AM335x 和 SPI 的在线信息。

    此致、Andreas

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

    感谢您的回复

    先生、为此、我需要 SDK? 如果我需要 SDK、那么我会为此安装哪个版本。 我无法理解(我们的 SDK 内核已启用了用户模式 SPI 驱动程序(CONFIG_SPI_SPIDEV)此行。

    这个(spitest.c)将适用于 SPI 闪存(W25Q64)。

    在 Pinmux 中、我们需要设置 CLK、MOSI、MISO 和 CS 引脚的地址?

    此致

    Niraj Kumar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    、此文件(spitest.c)适用于 SPI 闪存(W25Q64)。

    实际上、由于您想要访问 SPI 闪存芯片、您应该使用 Linux 内核将其注册为 SPI 闪存、而不是执行在顶部使用一些用户空间代码的通用 spidev。 Linux SPI/Flash 子系统将为您管理与 SPI 内存设备的所有连接,并将它们作为/dev/mtd 设备节点很好地呈现在系统中,以便于访问,提取与这些设备连接所需的所有协议。

    您可以找到一个有效的示例、说明如何将其配置为 AM335x ICE 平台的一部分(https://www.ti.com/tool/TMDSICE3359)。

    SPI0外设的器件树设置(包括 Pinmux):
    git.ti.com/.../am335x-icev2.dts

    针对 w25q64闪存访问的器件树设置:
    git.ti.com/.../am335x-icev2.dts

    此致、Andreas

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

    谢谢您,先生。

    我正在尝试为 SPI 闪存(W25Q64)构建 dts 文件、但 方式如下:"目标"arch/arm/dts/am335x-icev1.dtb"的方法失败"。

    此处、我已为 spi0添加了我的 DTS 文件(我使用的是 Linux 内核版本:-4.15.0和 SDK 版本:-ti-processor-sdk-linux-am335x-evm-05.01.00.11-linux-x86_Install)

    spi0_PINS_DEFAULT:spi0_PINS_DEFAULT{
    PINCCTRL-SINGLE、PINS =<
    AM33XX_IOPAD (0x950、PIN_INPUT_PULLUP | MUX_MODE0)/*(A17) spi0_SCLK.spi0_SCLK */
    AM33XX_IOPAD (0x954、PIN_INPUT_PULLUP | MUX_MODE0)/*(b17) spi0_d0.spi0_d0 */
    AM33XX_IOPAD (0x958、PIN_INPUT_PULLUP | MUX_MODE0)/*(b16) spi0_d1.spi0_D1 */
    AM33XX_IOPAD (0x95c、PIN_INPUT_PULLUP | MUX_MODE0)/*(a16) spi0_cs0.spi0_cs0 */
    AM33XX_IOPAD (0x960、PIN_INPUT_PULLUP | MUX_MODE0)/*(C15) spi0_CS1.spi0_CS1 */
    AM33XX_IOPAD (0x9a0、PIN_INPUT_PULLUP | MUX_MODE7)/*(B12) McASP0_aclkr.GPIO3[18]*/
    >;
    };

    ------------------

    spi0{
    状态="可以";
    pinctrl-names ="默认";
    pinctrl-0 =<&spi0_pins_default>;


    SN65HVS882@1{
    兼容="pisosr-GPIO";
    GPIO 控制器;
    #GPIO-CELLS =<2>;

    LOAD-GPIO =<&GPIO3 18 GPIO_ACTIVE_LOW>;

    寄存器=<1>;
    SPI-max-frequency =<1000000>;
    spi-cpol;
    };

    SPI_NOR:闪存@0{
    #address-Cells =<1>;
    #size-cells =<1>;
    /*compatible ="linux, spidev";*/
    兼容="Winbond、w25q64"、"JEDEC、SPI-NOR";
    SPI-max-frequency =<20000000>;/* 20MHz */
    m25p、快速读取;
    寄存器=<0>;

    /*partition@0 {
    标签="u-boot-spl";
    寄存器=<0x0 0x80000>;
    只读;
    };

    分区@1{
    标签="u-boot";
    寄存器=<0x80000 0x100000>;
    只读;
    };

    分区@2{
    标签="u-boot-env";
    寄存器=<0x180000 0x20000>;
    只读;
    };

    分区@3{
    标签="MISC";
    REG =<0x1A0000 0x660000>;
    };*/
    };

    };

    此致  

    Niraj Kumar

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

    我们不再支持 SDK v5.x、但我可以尝试提供一些通用建议。

    1. 除了您在此提供的单行错误信息之外,还应该有一些上下文,您应该检查是否有线索,通常是行号引用或指向错误位置的内容。

    2.此类错误通常是由 DTS 文件中的语法错误或一些无效的 phandle 引用引起的。 DTC 编译器可以是非常挑剔的,甚至一个缺失的分号就足以把它扔掉。 解决这个问题的一种方法是切掉 DTS 文件、直到它开始构建、然后由您知道是什么导致的。

    此致、Andreas

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

    谢谢您,先生。

    我想问一个问题吗? 我正在尝试使用 SDK 版本 05.01.00.11进行构建、但没有发生。但我正在尝试使用另一个 SDK 版本(06.03.00.106)、正在发生。 对于这两个 SDK 版本、内核版本也不同。  

    此致  

    Niraj Kumar

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

    我们不再支持 SDK v5.x 或 SDK v6.x 您应该考虑迁移到当前的 SDK 系列(v8.x)、以便获得 官方支持的更好的性能、更丰富的功能和更不易受到攻击/更安全的软件基准。

    我正尝试使用 SDK 版本 05.01.00.11进行构建,但未发生这种情况

    对于您的特定问题、请确保遵循您正在使用的任何 SDK 版本中的所有设置说明、对于 v05.01.00.11、可以在以下位置找到: https://software-dl.ti.com/processor-sdk-linux/esd/docs/05_01_00_11/linux/index.html

    此外、如果没有任何构建/错误日志、也无法在此处指明某个方向。

    此致、Andreas

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

    谢谢主席先生的答复

    不过,主席先生,我们在 Linux 内核版本的基础上,下载 SDK 内核版本。

    我使用的是 Linux 内核版本5.4.0.That,为什么我下载了 SDK 版本(v06.03.00.106)

    此致

    Niraj Kumar