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/AM3354:无法通过 SPI 读取 RTC

Guru**** 2553190 points
Other Parts Discussed in Thread: AM3354, AM3352, TPS65910

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/606313/linux-am3354-not-able-to-read-rtc-over-spi

器件型号:AM3354
主题中讨论的其他器件: AM3352TPS65910

工具/软件:Linux

大家好、

我们基于 AM3354处理器设计了定制板、并在设计电路板 AM335x 入门套件和 Beagle Bone Black 时将其作为参考。 我们使用 SPI 端口1连接了外部 RTC。 我们希望使用一些工具作为 SPI 器件进行测试。

->在器件树(AM335x-EVM.dts)中添加了与 SPI 和 RTC 相关的更改

  SPI1_Pins:pinmux_SPI1_Pins{
     pinctrl-single、pins =<
           0x190 (PIN_OUTPUT | MUX_MODE3)/*(A13) McASP0_aclkx.SPI1_SCLK */
          0x194 (PIN_INPUT | MUX_MODE3)/*(B13) McASP0_FSX.SPI1_d0 */
          0x198 (PIN_OUTPUT | MUX_MODE3)/*(D12) McASP0_axr0.SPI1_D1 */
        0x19c (PIN_OUTPUT | MUX_MODE3)//(C12) McASP0_ahclkr.SPI1_cs0 */
     >;
 };


SPI1{(&S)
   状态="正常";
   pinctrl-names ="default";
   pinctrl-0 =<&SPI1_PINs>;
   /* DO 为 MOSI、D1为 MISO */    
   ti、pidd-d0-out-d1-in =<1>;     
   spidev{
       兼容="spidev";
       /*我们使用 SPI CS 0;注册相同的*/
       reg =<0>;
       SPI-max-frequency =<1000000>;
       SPI-Cs-HIGH;
       /*在 CPOL 和 CPHA 设置为零时运行*/
       /* spi-cpol;*/
       /* spi-cpha;*/
   };    
};

一起重建.dTB 和内核并加载到定制板中。

SPI dev 应在未列出的/dev/dev 中列出。

请说明问题的可能原因和解决方法。

此致、

Anil

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

    您好!

    1]您能否发布引导日志(dmesg)

    2]您是否在内核配置中启用了 SPIDEV?

    3]是否在内核配置中启用了 MCSPI 驱动程序?

    4]您正在使用哪个 Linux 内核版本?


    谢谢、
    Prabhakar LAD

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更改:
    0x190 (PIN_OUTPUT | MUX_MODE3)/*(A13) McASP0_aclkx.SPI1_SCLK */
    至:
    0x190 (PIN_INPUT | MUX_MODE3)/*(A13) McASP0_aclkx.SPI1_SCLK */
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Biser / Prabhakar、

    感谢您的回复。

    根据 Biser 建议、我们已将 McASP0_aclkx.SPI1_SCLK 更改为 输入信号并构建器件树
    2.内核版本为4.4.41
    3. MCSPI 和 SPIDEV 驱动程序均已启用

    ->更改设备树后, /dev/dev 中列出了 spidev1.0,但引导日志信息显示了设备树 和内核的一些警告,如下所示:


     [1.171100]   spidev spi1.0:db车 DT:spidev 直接列在 DT 中
    [1.177233]   ------ [在此处剪切]-----
    [1.182059]   警告:CPU:0 PID:1 at drivers/spi/spidev.c:719 spidev_prob+0x1cc/0x1dc ()
    [1.190300]   模块链接于:
    [1.193390]   CPU:0 PID:1 Comm:swapper 未被污染4.4.4.41-gf9f6f0db2d #1
    [1.200262]   硬件名称:通用 AM33XX (平展器件树)
    [1.206384]   回溯:
    [1.208875]   [ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
    [1.216528]    r7:c0440594 R6:000002CF R5:00000009 R4:00000000
    [1.222279]   [ ](show_stack)从[ ](dump_stack+0x24/0x28)
    [1.229603]   [ ](dump_stack)从[ ](warn_slESpath_common+0x88/b4)
    [1.237742]   [ ](warn_slowpath_common)、来自[ ](WARN_RASPEK_NULL_0x24/0x2C)
    [1.246610]    R8:00000000 r7:c0945da0 R6:c0945d90 R5:dc430000 R4:dc430000
    [1.253416]   [ ](warn_slowpath_null)、来自[ ](spidev_probe +0x1cc/0x1dc)
    [1.261774][    ](spidev_probe)从[ ](SPI_drv_probe +0x84/b0)
    [1.269545]    R8:00000000 r7:c0945da0 R6:c0945d90 R5:00000000 R4:dc430000
    [1.276361][    ](SPI_drv_probe)、来自[ ](DRIVER_PROBLE_DEVICE_0x204/0x2f8)
    [1.284857]    r7:c0945da0 r6:00000000 r5:dc430000 r4:c0991408
    [1.290596]   [ ](driver_probe_device)从[ ](_device_attach_driver+0x8c/b4)
    [1.299729]    R9:00000000 R8:c09913e4 r7:00000001 R6:dc430000 R5:dc057c48 R4:c0945da0
    [1.307569][    ](_device_attach_driver)、来自[ ](BUS_TO_EASE_DRV+0x68/0x9C)
    [1.316438]    r7:00000001 R6:c03e3764 R5:dc057c48 R4:00000000
    [1.322184][    ](bus_for_each _drv)从[ ](_DEVICE_ATT+b8/0x11c)
    [1.330528]    R6:dc430034 R5:dc430000 R4:dc430000
    [1.335196]   [ ](_device_attach)从[ ](DEVICE_INPLET_PROBE +0x14/0x18)
    [1.343801]    r7:00000000 R6:c0945840 R5:dc430000 R4:dc430008
    [1.349543][    ](DEVICE_INTERY_PROBE)从[ ](BUS_PROBLE_DEVICE_0x8c/0x94)
    [1.358228]   [ ](bus_probe_device)、来自[ ](DEVICE_ADD+0x3f4/0x57c)
    [1.366199]    r7:00000000 R6:dc430000 R5:dc3a9c00 R4:dc430008
    [1.371943][    ](device_add)从[ ](SPI_ADD_DEVICE_0xa4/0x160)
    [1.379677]    R10:dc3a9d72 R9:dc112610 R8:dcb57208 r7:dc112610 R6:dc3a9c00 R5:00000000
    [1.387580]    R4:dc430000
    [1.390186]   [ ](SPI_ADD_DEVICE)从[ ](of_register_SPI_DEVICE_0x22c/0x2f4)
    [1.399010]    r7:dc3a9c00 R6:dcb57550 R5:dc430000 R4:00000000
    [1.404754]   [ ](of _register_spi_device)、来自[ ](SPI_REGISTER_MASTER+0x29c/0x484)
    [1.414057]    r7:c085c6f8 r6:00000000 r5:dcb57550 r4:dc3a9c00
    [1.419803][    ](SPI_REGISTER_MASTER)、来自[ ](devm_SPI_register_master+0x40/0x78)
    [1.429088]    R10:dc3a9d72 R9:c085cc60 R8:dc3a9c00 r7:dc112610 R6:dc3a9c00 R5:dc372d90
    [1.437011]    R4:00000000
    [1.439616][    ](devm_spi_register_master)、来自[ ](OMAP2_mcspi_prob+0x2d4/0x364)
    [1.448875]    r7:dc112610 R6:dc3a9c00 R5:dc3a9eb0 R4:00000000
    [1.454648]   [ ](OMAP2_mcspi_probe)、来自[ ](platform_drv_probe +0x54/b8)
    [1.463230]    R10:00000000 R9:c08c8600 R8:00000000 r7:fffdfb R6:c0945df4 R5:dc112610
    [1.471205]    R4:c0991408
    [1.473763][    ](platform_drv_probe)、来自[ ](DRIVER_PROBLE_DEVICE_0x204/0x2f8)
    [1.482694]    r7:c0945df4 r6:00000000 r5:dc112610 r4:c0991408
    [1.488445]   [ ](driver_probe_device)从[ ](__driver_attach+0x94/0x98)
    [1.496938]    R9:c08c8600 R8:000000a9 r7:00000000 R6:dc112644 R5:c0945df4 R4:dc112610
    [1.504812]   [ ](__driver_attach)从[ ](BUS_TO_EASE_DEV_0x70/0xa4)
    [1.513044]    r7:00000000 R6:c03e36cc R5:c0945df4 R4:00000000
    [1.518795][    ](bus_for_each_dev)、来自[ ](DRIVER_ATT+0x24/0x28)
    [1.526854]    R6:c093fb20 R5:dc376980 R4:c0945df4
    [1.531538]   [ ](driver_attach)从[ ](BUS_ADD_DRIVER+0x1a8/0x220)
    [1.539630][    ](BUS_ADD_DRIVER)从[ ](DRIVER_REGISTER+0x80/0x100)
    [1.547757]    r7:dc372980 r6:c090ed20 r5:c08eb9a4 r4:c0945df4
    [1.553527]   [ ](driver_register)、从[ ](__platform_driver_register+0x48/0x50)
    [1.562632]    R5:c08eb9a4 R4:c093fb20
    [1.5669]   [ ](__platform_driver_register)、来自[ ](OMAP2_mcspi_driver_init+0x1c/0x20)
    [1.576075]    R5:c08eb9a4 R4:c090ed20
    [1.579709][    ](OMAP2_mcspi_driver_init)、来自[ ](do_one _initcall+0x98/0x1e4)
    [1.588670]   [ ](多个_initcall)、来自[ ](kernel_init_freeable +0x138/0x1cc)
    [1.597428]    R10:00000007 R9:c08c8600 R8:000000a9 r7:c08fc830 R6:c0908f7c R5:c09595c0
    [1.605378]    R4:c09595c0
    [1.607941]   [ ](kernel_init_freable)从[ ](kernel_init+0x18/0xf4)
    [1.616201]    R10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c06767b4
    [1.624124]    R4:c09595c0
    [1.626682]   [ ](kernel_init)、来自[ ](RET_FANK_F叉+0x14/0x3c)
    [1.634332]    R5:c06767b4 R4:00000000
    [1.637972]   -->结尾线迹 ff4fcac48061668a ]-->  

    我已附上完整的引导日志供您参考。 e2e.ti.com/.../spidev_5F00_log.txt

    请建议解决此问题,我们是否有任何测试实用程序来验证 SPI 驱动程序?

    谢谢、

    Anil

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

    在 DT 文件中,您需要将"compatible ="spidev"替换为"compatible ="Rohm、dh2228fv";这样您的新 DT 节点应该与以下内容类似:

    SPI1{(&S)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&SPI1_PINs>;
    /* DO 为 MOSI、D1为 MISO */
    ti、pidd-d0-out-d1-in =<1>;
    spidev{
    兼容="Rohm、dh2228fv";
    /*我们使用 SPI CS 0;注册相同的*/
    reg =<0>;
    SPI-max-frequency =<1000000>;
    SPI-Cs-HIGH;
    /*在 CPOL 和 CPHA 设置为零时运行*/
    /* spi-cpol;*/
    /* spi-cpha;*/
    };
    };

    在较新版本的内核中、兼容字符串从"spidev"更改为"Rohm、dh2228fv"。

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

    感谢您的宝贵支持...
    现在、我们不会得到高于维持的警告。

    我们要求使用 SPI 连接外部 RTC。 我们的 RTC 器件型号为 MCP79510、基于 SPI 接口。我们观察到 MCP795 RTC SPI 驱动程序已在内核中提供。请告知我们需要对器件树和内核进行哪些更改、以便使用 MCP795 RTC 驱动程序在内核空间中使用外部 RTC、从而获取和 设置外部 RTC 参数。


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

    您需要应用以下补丁:

    1]

    diff --git a/drivers/rtc/rtc-mcp795.c b/drivers/rtc/rtc-mcp795.c
    索引1c91ce8..495c92a 100644
    ---- a/drivers/rtc/rtc-mcp795.c
    ++ b/drivers/rtc/rtc-mcp795.c
    @@-21、6 + 21、8 @@
    #include
    #include

    +#include
    +
    /* MCP795说明,请参见数据表表3-1 */
    #define MCP795_EEREAD 0x03
    #define MCP795_EEWRITE 0x02
    @@-183、9 +185、18 @@静态 int mcp795_probe (struct spi_device * spi)
    返回0;


    +#ifdef CONFIG_of
    _device_id 的+static const 结构 mcp795_rtc_match[]={
    + {.compatible ="微芯片、mcp795-rtc"、}、
    + {}、
    +};
    +MODULE_DEVICE_TABLE (of、mcp795_RTC_MATCH);
    +#endif
    +
    静态结构 SPI_driver mcp795_driver ={
    .driver ={
    - .name ="RTC-mcp795"、
    + .name ="RTC-mcp795"、
    + .of 匹配表= of 匹配 PTR (mcp795_RTC_match)、
    }、
    .probe = mcp795_probe、
    };

    2]您需要为 Linux 配置启用 RTC_DRV_MCP795、您可以通过 menuconfig 执行此操作。
    三态"Microchip MCP795"

    3]重新编译内核。

    4]您已修改 DT,它应如下所示:

    SPI1{(&S)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&SPI1_PINs>;
    /* DO 为 MOSI、D1为 MISO */
    ti、pidd-d0-out-d1-in =<1>;
    spidev{
    兼容="微芯片、mcp795-RTC";
    /*我们使用 SPI CS 0;注册相同的*/
    reg =<0>;
    SPI-max-frequency =<1000000>;
    SPI-Cs-HIGH;
    /*在 CPOL 和 CPHA 设置为零时运行*/
    /* spi-cpol;*/
    /* spi-cpha;*/
    };
    };

    5]重新编译 DT 并使用它。

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


    Prabhakar,您好!

    感谢您的宝贵支持。

    根据您的建议、更改了 RTC 驱动程序和 器件树、然后更新 了电路板中的新映像(内核和器件树)。
    我们发现、在启动期间、硬件时钟不起作用、并且在内核中执行"hwclock"时、此时它显示错误"hwclock: RTC_RD_TIME: INVALID argum"

    请参阅以下并随附的竞争引导日志。


    [1.164475]循环:模块已加载
    [1.172521]   libphy:固定 MDIO 总线:探测
    [1.179610]   mousedev:PS/2鼠标设备,适用于所有鼠标
    [1.191812]   RTC-mcp795 spi1.0:RTC 内核:将 RTC-mcp795注册为 rtc0
    [1.204785]   i2c /dev/entries 驱动程序
    [1.209781]   cputidle: enable-method 属性'ti,am3352'找到运算
    [1.239740]   pinctrl-single 44e10800.pinmux:481a0000.SPI 已请求引脚44e1099c.0;无法申请47810000.MMC
    [1.251052]   pinctrl-single 44e10800.pinmux:引脚103 (4781000.MMC)状态-22
    [1.258230]   pinctrl-single 44e10800.pinmux:无法从 器件 pinctrl-single 上的组 pinmux_WLAN_pins 请求引脚103 (44e1099c.0)
    [1.270672]   omap_hmc 4781000.mmc:应用设置时出错、反向
    [1.400261]   ledtrig-CPU:已注册以指示 CPU 上的活动
    [1.421595]   NET:注册协议系列10.
    [1.430232]   SIT:IPv6 over IPv4隧道驱动程序
    [1.435897]   NET:注册协议系列17.
    [1.449853]   注册了密钥类型 DNS_旋 变传感器
    [1.459776]   OMA_VOLTGE_LARD_INIT:未添加电压驱动器支持
    [1.481981]   OMAP-GPMC 50000000。GPMC:GPMC 版本6.0
    [1.489547]   GPMC_mem_init:禁用映射在0x0-0x1000000的 CS 0
    [1.497203]   Nand:device found、Manufacturer ID:0x98、Chip ID:0xda
    [1.517678]   与:Toshiba NAND 256Mib3、3V 8位
    [1.529447]   nand:256 MIB、SLC、擦除大小:128 KiB、页面大小:2048、OOB 大小:128
    [1.549480]   nand:Using OMAP-ECC_BCH8_CODE_HW ECC scheme
    [1.554981]   在 MTD 器件8000000.nand 上找到10个部件分区
    [1.566150]   在"8000000.nand"上创建10个 MTD 分区:
    [1.579457]   0x0000000000000000 0x000000020000:“NAND.SPL”
    [1.591130]   0x00000002000-0x000000040000:“NAND.SPL.Backup1”
    [1.61010]   0x000000040000-0x000000060000:"NAND.SPL.Backup2"
    [1.630243]   0x000000060000-0x000000080000:“NAND.SPL.backup3”
    [1.637613]   0x000000080000-0x0000000c0000:“NAND.u-boot-spl-OS”
    [1.648479]   0x0000000c0000-0x0000001c0000:“NAND.u-boot”
    [1.663901]   0x0000001c0000-0x0000001e0000:“NAND.u-boot-env”
    [1.680812]0x0000001e0000-0x000000200000   :“NAND.u-boot-env.Backup1”
    [1.696514]0x000000200000-0x000000a00000   :“NAND.kernel”
    [1.713872]   0x000000a00000-0x000010000000:“NAND.file-system”
    [1.939668]   tps65910 0-002D:无中断支持、无内核 IRQ
    [1.976681]   OMAP_i2c 44e0b000。i2c:400kHz 时的总线0版本0.11
    [1.987549]   VMMC:由 VBAT 供电
    [2.039807]   VDD_MPU:由 VBAT 供电
    [2.044897]   ubi0:连接 mtd9
    [3.402158]   mmc1:未设置 MAN_BKOPS_EN 位
    [3.421222]   mmc1:地址0001处的新高速 MMC 卡
    [3.440406]   mmcblk0:mmc1:0001 004G60 3.69 GiB
    [3.445334]   mmcblk0boot0:mmc1:0001 004G60分区1 2.00 mib
    [3.456831]   mmcblk0boot1:mmc1:0001 004G60分区2 2.00 mib
    [3.470999]    毫米波0:
    [3.730790]   ubi0:扫描已完成
    [3.744974]   ubi0:附加的 mtd9 (名称"NAND.file-system"、大小为246 MIB)
    [3.751791]   ubi0:PEB 大小:131072字节(128 KiB)、LEB 大小:126976字节
    [3.758700]   ubi0:最小值/最大值 I/O 单元大小:2048/248、子页大小为512
    [3.765483]   ubi0:VID 标头偏移:2048 (对齐2048)、数据偏移:4096
    [3.772498]   普遍适用0:良好的 PEB:1965、不良 PEB:3、损坏的 PEB:0
    [3.778619]   ubi0:用户卷:1,内部卷:1,最大 卷数:128
    [3.785916]   ubi0:最大/平均擦除计数器:2/0、WL 阈值:4096、图像序列编号:71294218
    [3.794936]   ubi0:可用 PEB:0、总保留 PEB:1965、为不良 PEB 处理保留的 PEB:37
    [3.804340]   ubi0:启动后台线程"ubi_bgt0d"、PID 66
    [3.811454]   输入:VOLUE_KEYS@0 AS /devices/platform/volume_keys@0/input/input0
    [3.819946]   RTC-mcp795 spi1.0:hctosys:无法读取硬件时钟
    [3.831415]   lis3_reg:正在禁用

    ->在内核中执行"hwclock"命令时、发生以下错误

     AM335x-EVM 登录:root
    root@AM335x-EVM:~# hwclock
    hwclock:RTC_RD_TIME:无效参数

     

    请提供您解决此问题的宝贵建议。

     

    e2e.ti.com/.../spi_2D00_rtc_2D00_log.txt

     

    谢谢、

    Anil

     

     

     

     

     

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

    1:您能否布置 DT 节点?
    2:CS 引脚是否为高电平有效?
    3:硬件上的芯片是否实际是 mcp795?
    4:mcp795芯片它支持什么 SPI 模式?
    5:在硬件中是 d0输出和 d1输入?

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

    Prabhakar,您好!

    1:您能否布置 DT 节点?

    ->请参阅随附的 DTS 文件、但以.txt 格式上传以供参考。

    e2e.ti.com/.../8171.am335x_2D00_evm.txt

    2:CS 引脚是否为高电平有效?

    ->当处理器与 RTC 进行通信时、它为低电平有效剩余时间、它始终为高电平。

    3:硬件上的芯片是否实际是 mcp795?

    ->是的,板上安装的 RTC 芯片是"mcp79510"


    4:mcp795芯片它支持什么 SPI 模式?

    ->它支持 SPI 0模式。


    5:在硬件中是 d0输出和 d1输入?

    是的、您回答正确。  

    处理器- D0连接到 MCP79510 - MISO

    处理器- D1连接到 MCP79510 - MOSI。

    此致、

    Anil

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

    SPI1{(&S)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&SPI1_PINs>;
    ti、pidd-d0-out-d1-in =<1>;
    spidev{
    兼容="微芯片、mcp795-RTC";
    reg =<0>;
    SPI-max-frequency =<1000000>;
    SPI-Cs-HIGH;
    };
    };

    DT 节点似乎正确、在 Documentation/devicetree/bindings 文件夹的 Linux 源代码中、您可以为"ti、pidd-d0-out-d1-in"创建 grep 操作
    并了解它需要是怎样的。 与在更高的内核中一样、它只需要 ti、pidd-0-out-d1-in、而不需要 ti、pid-d0-out-d1-in =<1>;

    SPI1{(&S)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&SPI1_PINs>;
    TI、pidd-d0-out-d1-in;
    spidev{
    兼容="微芯片、mcp795-RTC";
    reg =<0>;
    SPI-max-frequency =<1000000>;
    SPI-Cs-HIGH;
    };
    };

    您是否还可以检查您是否获得了时钟和 MISO /MOSI?

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

    我对"ti、pidd-0-out-d1-in"使用 grep 来了解如何在 DT 中使用 grep 并修改为 ti、pid-d0-out-d1-in;代替 ti、pidd-out-d1-in =<1>;

    已加载更新的 DTB 文件并重新引导系统。 我们将收到与上述相同的内核消息。

    下面是 hwclock -w 命令的 strace。

    此命令尝试写入和读取 RTC 模块。 添加了调试语句"写入 RTC 被调用..... !!!!! "和"读取被称为.....的 RTC !!!!! "。 我不明白为什么命令不设置 hwclock。

    我将向您介绍并更新我获取时钟、MISO 和 MOSI 线路的内容。


    hwclock 的 strace - W 命令:

    root@AM335x-EVM:~# strace hwclock -w
    execve ("/sbin/hwclock、["hwclock"、"-w"]、[//* 16 vars */])= 0
    BRK (空) = bbd000
    uname ({sysname="linux"、nodename="AM335x-evm"、...}) = 0
    mmap2 (NULL、4096、PROT_READ|PROT_WRITE、MAP_PRIVE|MAP_ANGATE、-1、 0)= 0xb6f6b000
    ACCESS ("/etc/ld.so.preload、R_OK) =-1 ENOENT (无此类文件或目录)
    open ("/etc/ld.so.cache、O_RDONLY|O_CLOEXEC)= 3
    fstat64 (3、{st_mode=s_IFREG|0644、st_size=9558、...}) = 0
    mmap2 (NULL、9558、PROT_READ、MAP_PRIVATE、3、 0)= 0xb6f68000
    关闭(3) = 0
    open ("/lib/libc.so.6、O_RDONLY|O_CLOEXEC)= 3
    读取(3、"\177ELF\1\1\1\1\1\1\3\0\0\0\0\0\3\0 (\0\1\0\0\0\235h\1\0004\0\0\0\0\0\0\0\0..."、512)= 512
    fstat64 (3、{st_mode=s_IFREG|0755、st_size=9161320、...}) = 0
    mmap2 (NULL、968040、PROT_READ|PROT_EXEC、MAP_PRIVE|MAP_DENYWRITE、3、 0)= 0xb6e58000
    mprotect (bb6f30000、61440、PROT_NONE)= 0
    mmap2 (bb6f3f000、12288、PROT_READ|PROT_WRITE、MAP_PRIVE|MAP_FIXED|MAP_DENYWRITE、3、 0xd7000)= 0xb6f3f000
    mmap2 (bb6f42000、9576、PROT_READ|PROT_WRITE、MAP_PRIVED|MAP_FIXED|MAP_ANonymous、-1、 0)= 0xb6f42000
    关闭(3) = 0
    mmap2 (NULL、4096、PROT_READ|PROT_WRITE、MAP_PRIVE|MAP_ANGATE、-1、 0)= bb6f67000778.559220] rtC-mcp795 spi1.0:2.写入名为.....的 RTC !!!!!

    _tls (bbb6f674c0、b6f67b98、b6f6d050、bb6f674c0、b6f6d50)= 0
    mprotect (bb6f3f000、8192、PROT_Read)= 0
    mprotect (bb6f6c000、4096、PROT_Read)= 0
    munmap (bb6f68000、9558) = 0
    getuid32() = 0
    BRK (空) = bbd000
    BRK (0xde000) = 0xde000
    open ("/usr/share/zoneinfo/UTC、O_RDONLY|O_CLOEXEC)=-1 ENOENT (无此类文件或目录)
    open ("/var/lib/hwclock/adjtime、O_RDONLY|O_LARGEFILE)=-1 ENOENT (无此类文件或目录)
    open ("/dev/rtc、O_WRONLY|O_LARGEFILE)= 3.
    gettimeofday ({1481758083、144750}、NULL)= 0
    ioctl (3、RTC_SET_TIME、{TM_sec=3、TM_min=28、TM_hour=23、 tm_mday = 14、tm_mon=11、tm_yage=116、...}778.641565] rtC-mcp795 spi1.0:1. 读 RTC,称为..... !!!!!
    =) 0
    xit_group (0) =?
    ++退出,0 ++



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

    Prabhakar、您好!

    感谢您及时为 SPI-RTC 模块提供支持。

    我们已将 器件 tree.no中的 MOSI 和 MISO 从"ti,pidir-d0-out-d1-in"更改为"ti,pidir-d0-in-d1-out"、这样我们就可以读取和写入 RTC。

    再次感谢 !!!!

    谢谢、

    Anil



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

    我发布了与触摸屏相关的问题。请尽可能查看此问题
    e2e.ti.com/.../606313


    谢谢、
    Anil