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/PROCESSOR-SDK-AM335X:TI-PROCESSOR-SDK-LINUX-AM335x-EVM-03.03.00.04 - ADC 驱动程序内核严重错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616982/linux-processor-sdk-am335x-ti-processor-sdk-linux-am335x-evm-03-03-00-04---adc-driver-kernel-panic

器件型号:PROCESSOR-SDK-AM335X
主题中讨论的其他器件:AM3358AM3352

工具/软件:Linux

大家好、

我正在尝试在 am3358 Sitara 处理器目标上启动 ADC 驱动程序。 在目标上加载 ADC 驱动程序时、我会遇到以下内核严重错误。

请告诉我可能会出现什么问题。此外,我还介绍了 ti_am335x_adc.c 和 ti_am335x_tscadc.c 中的调试日志 但在加载驱动程序和 dmesg 时、这些调试日志不会出现在目标上。

PS:如果我使用 debian 封装、ADC 驱动程序启动且创建了 IIO 器件。

 /ti_am335x_adc.ko insmod /lib/modules/4.4.41-gf9f6f0db2d/kernel/drivers/iio/adc
[237.565192] 无法处理虚拟地址60070113上的内核分页请求
[237.572475] PgD = db660000
[237.575193] [60070113]* PgD=00000000
[237.578795] 内部错误:Oops:5 [#1]抢占 ARM
[237.583781] 中链接的模块:TI_AM335x_ADC (+) kfifo_buf industrialio_buffer_CB Iio_TRIG_sysfs IIO_TRIG_INTERRUPT industrialio ti_AM335x_tscadc USB_f_ACM u_ser)
[237.64957] CPU:0 PID:992 Comm:insmod 被污染:G          O   4.4.4.41-gf9f6f0db2d #19
[237.657781] 硬件名称:通用 AM33XX (平展器件树)
[237.663899] 任务:db133700 ti:db5e8000 task.ti:db5e8000
[237.669336] PC 位于 strnlen+0x14/0x68
[237.673103] LR 位于字符串+0x3c/0x104
[237.676869] PC:[ ]   LR:[ ]   PSR:a0070193
[237.676869] sp:db5e9c48 ip:db5e9c58 fp:db5e9c54
[237.688395] R10:c06ca724 R9:00000002 R8:db5e9d80
[237.693640] r7:60070113 R6:c09ccb2e R5:c09ccf04 R4:0000FFFF
[237.700194] r3:ff0a0004 r2:60070113 r1:ffff r0:60070113
[237.706751] 标志:   在模式 SVC_32 ISA ARM 段上关闭 FIQ 的 NzCv IRQ
[237.714003] 控制:10c5387d 表:9b660019 DAC:00000051
[237.719773] 过程烟雾(pid:992、栈限制= 0xdb5e8208)
[237.725717] 堆栈:(0xdb5e9c48至0xdb5ea000)
[237.730099] 9c40:                  db5e9c74 db5e9c58 c02bc4f4 c02baf6c c09ccb2e bf3d89f2

[237.565192] 无法处理虚拟地址60070113上的内核分页请求
[237.572475] PgD = db660000
[237.575193] [60070113]* PgD=00000000
[237.578795] 内部错误:Oops:5 [#1]抢占 ARM
[237.583781] 中链接的模块:TI_AM335x_ADC (+) kfifo_buf industrialio_buffer_CB Iio_TRIG_sysfs IIO_TRIG_INTERRUPT industrialio ti_AM335x_tscadc USB_f_ACM u_ser)
[237.64957] CPU:0 PID:992 Comm:insmod 被污染:G          O   4.4.4.41-gf9f6f0db2d #19
[237.657781] 硬件名称:通用 AM33XX (平展器件树)
[237.663899] 任务:db133700 ti:db5e8000 task.ti:db5e8000
[237.669336] PC 位于 strnlen+0x14/0x68
[237.673103] LR 位于字符串+0x3c/0x104
[237.676869] PC:[ ]   LR:[ ]   PSR:a0070193
[237.676869] sp:db5e9c48 ip:db5e9c58 fp:db5e9c54
[237.688395] R10:c06ca724 R9:00000002 R8:db5e9d80
[237.693640] r7:60070113 R6:c09ccb2e R5:c09ccf04 R4:0000FFFF
[237.700194] r3:ff0a0004 r2:60070113 r1:ffff r0:60070113
[237.706751] 标志:   在模式 SVC_32 ISA ARM 段上关闭 FIQ 的 NzCv IRQ
[237.714003] 控制:10c5387d 表:9b660019 DAC:00000051
[237.719773] 过程烟雾(pid:992、栈限制= 0xdb5e8208)
[237.725717] 堆栈:(0xdb5e9c48至0xdb5ea000)
[237.730099] 9c40:                  db5e9c74 db5e9c58 c02bc4f4 c02baf6c c09ccb2e bf3d89f2

 

谢谢、此致、

Krishna

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

    [引用]但在加载驱动程序和 dmesg 时、这些调试日志不会出现在目标上。

    您是否意味着驱动程序在器件启动时加载、并且您正在尝试从用户空间重新加载? 在这种情况下、可能存在一些存储器访问问题、因为 ADC 也用于触摸屏。

    您是否看过此 wiki 指南:
    processors.wiki.ti.com/.../Processor_SDK_Linux_ADC

    如果 ADC 驱动程序在器件引导时加载、则可以使用上面 wiki 中指定的 sysfs 条目:
    processors.wiki.ti.com/.../Linux_Core_ADC_Users_Guide

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

    Yordan、您好!

    感谢您的快速响应。

    是的、我已经在参考 ADC wiki 和 Linux 内核 ADC 用户指南。

    当使用处理器 SDK 映像(Uboot、MLO、内核、设备树和 rootfs)启动 AM335x 时,不会自动加载 ADC、IIO 和触摸屏驱动程序(静态)。 因此、我将 ADC、IIO 和触摸屏驱动程序构建为可加载模块。在器件启动后将 ADC 驱动程序加载为内核模块时、我将面临上述内核紧急情况。

    下面是我当前的内核配置:

    CONFIG_MFD_TI_AM335X_TSCADC=m

    CONFIG_TI_AM335X_ADC=m

    CONFIG_IIO=m
    CONFIG_IIO_buffer=y
    CONFIG_IIO_Buffer_CB=m
    CONFIG_IIO_KFIFO_BUF=m
    CONFIG_IIO_TRIGG=y
    CONFIG_IIO_Consumer_per_TRIGG=2

    此外、在使用 BeagleBoard debian 封装启动 AM335x 器件时、会自动加载 ADC、触摸屏和 IIO 驱动程序、并能够使用系统接口访问 ADC 引脚。 但在处理器 SDK ADC 驱动程序中、我遇到了问题。

    请提供您宝贵的建议、我很难相信。

    谢谢、此致、

    Krishna

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

    您能否将驱动程序作为内置内核模块启用、这应该会在启动时启用自动加载? 这意味着内核配置文件中所有相关的 CONFIG_*都定义为 y。
    请按照我的建议配置内核后显示引导日志。

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

    Yordan、您好!

    按照建议、我已启用内置模块的驱动程序。以下是内核配置:

    CONFIG_MFD_TI_AM335X_TSCADC=y
    CONFIG_TI_AM335X_ADC=y
    CONFIG_IIO_INTERRUPT_TRIGG=y
    CONFIG_IIO_SYSFS_TRIGGER=y
    CONFIG_IIO=y
    CONFIG_IIO_buffer=y
    CONFIG_IIO_Buffer_CB=y
    CONFIG_IIO_KFIFO_BUF=y
    CONFIG_IIO_TRIGG=y
    CONFIG_IIO_Consumer_per_TRIGG=2

    以下是器件树中的 ADC 器件节点:

                   tscadc@44e0d000{
                           兼容="ti、am3359-tscadc";
                           REG =<0x44e0d000 0x1000>;
                           中断父级=<0x1>;
                           中断=<0x10>;
                           ti、hwmods ="adc_sc";
                           STATUS ="禁用";

                           TSC{
                                   兼容="ti、am3359-TSC";
                                   TI、导线=<0x4>;
                                   ti、坐标读数=<0x5>;
                           };

                           ADC{
                                   IO 通道单元=<0x1>;
                                   兼容="ti、am3359-adC";
                                   TI、ADC 通道=<0x1 0x2 0x3 0x4 0x5 0x6 0x7>;
                           };
                   };

    我已从 ADC 驱动程序中删除调试日志并将更新的 zImage 加载到 SD 卡中。但现在出现零指针解除引用错误。请在下面微调内核引导日志:


    U-Boot 2016.05-g4db46a6bbd (2017年3月29日- 17:44:45 -0400)

    CPU :AM335X-GP 修订版2.1
    型号:TI AM335x BeagleBone Black
          启用看门狗
    DRAM: 512 MiB
    NAND: 0 MIB
    MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
    正在读取 uboot.env

    **无法从 mmc0:1读取"uboot.env"**
    使用默认环境

    未设置。 验证第一个电子保险丝 MAC
    NET:  eth0:以太网@4a100000
    警告:USB_Ether MAC 地址不匹配:
    SROM 中的地址为        :de:ad:be:ef:00:01
    环境中的地址为 38:D2:69:52:92:5a
    ,eth1:USB_ether
    按空格键可在2秒钟内中止自动引导
    切换到分区#0,确定
    mmc0是当前器件
    在器件0上找到 SD/MMC
    正在读取 BOOT.SCR
    **无法读取文件 boot.scr **
    正在阅读 uEnv.txt
    **无法读取文件 uEnv.txt **
    切换到分区#0,确定
    mmc0是当前器件
    正在扫描 MMC 0:1...
    切换到分区#0,确定
    mmc0是当前器件
    在器件0上找到 SD/MMC
    3580432字节在235ms (14.5MIB/s)内读取
    37364字节在62ms 内读取(587.9 KiB/s)
    内核映像@ 0x82000000 [ 0x000000 - 0x36a210]
    ###展开的设备树 blob、88000000
      使用0x88000000处的 FDT blob 进行引导
      正在将设备树加载到8fff3000,结束8ff1f3... 好的

    正在启动内核...

    [0.000000]   在物理 CPU 0x0上引导 Linux
    [0.000000]   正在初始化 cgroup 子系统 CPU
    [0.000000]   正在初始化 cgroup Subsys cpuacct
    [0.000000]   Linux 版本4.4.4.41-gf9f6f0db2d (root@Nikon-ThinkCenter-M73)(gcc 版本4.8.4 (Ubuntu/Linaro 4.8.4.8.4-2ubuntu1~14.04.1))#33优先于 Wed Aug16 06:7
    [0.000000]   CPU:ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
    [0.000000]   CPU:PIPT/VIPT 非混叠数据高速缓存、VIPT 别名指令高速缓存
    [0.000000]   机器模型:TI AM335x BeagleBone Black
    [0.000000]   CMA:在0x9d000000处保留48 MIB
    [0.000000]   内存策略:数据高速缓存写回
    [0.000000]   CPU:所有 CPU 均在 SVC 模式下启动。
    [0.000000]   AM335X ES2.1 (SGX NEON )
    [0.000000]   在区域顺序和移动分组中构建了1个区域列表。  总页数:129920
    [0.000000]   内核命令行:console=ttyO0、115200n8 root=PARTUUID =0002b18b-02 RW rootfstype=ext4 rootwait
    [0.000000]   PID 哈希表条目:2048 (顺序:1、8192字节)
    [0.000000]   条目高速缓存散列表条目:65536 (顺序:6、262144字节)
    [0.000000]   inode 高速缓存散列表条目:32768 (顺序:5、131072字节)
    [0.000000]   内存:459688K/524288K 可用(6691K 内核代码、368K rwdata、2504K rodata、276K init、265K BSS、 15448K 保留、49152K CMA 保留、0K 高电平)
    [0.000000]   虚拟内核内存布局:
    [0.000000]       矢量 :0xff0000-0xff1000  (4KB)   
    [0.000000]       fixmap :0xc00000 - 0xc00000  (3072 KB)
    [0.000000]       vmalloc:0xe0800000 - 0x0x800000  (496MB)
    [0.000000]       低内存 :0xC0000000 - 0xe0000000  (512 MB)
    [0.000000]       pkmap  :bbfe00000 - 0xC0000000  (  2 MB)
    [0.000000]       模块:bbf000000 - bbbfe00000  ( 14 MB)
    [0.000000]         .text:0xc0008000 - 0xc0902fd4  (9196 KB)
    [0.000000]         .init:0xc0903000 - 0xc0948000  (276KB)
    [0.000000]         .data:0xc0948000 - 0xc09a41b8  (369 KB)
    [0.000000]          .bss:0xc09a41b8 - 0xc09e6970  (266 KB)
    [0.000000]   slub:HWalign=64、order=0-3、MinObjects=0、CPU=1、Nodes=1
    [0.000000]   可抢占的分层 RCU 实现。
    [0.000000]    叶扇出的生成时间调整为32。
    [0.000000]   NR_IRQ:16 nr_IRQ:16 16.
    [0.000000]   IRQ:在0xfa200000 (修订版5.0)处找到具有128个中断的 INTC
    [0.000000]   OMAP 时钟事件源:timer2为24000000 Hz
    [0.000014]   sched_clock:24MHz 时为32位、分辨率为41ns、每89478484971ns 换行一次
    [0.000032]   时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
    [0.000040]   OMAP 时钟源:Timer1为24000000 Hz
    [0.000189]   clocksource_probe:未找到匹配的时钟源
    [0.000351]   控制台:彩色虚拟设备80x30
    [0.000373]   警告:您的'console=ttyO0'已被'ttyS0"替代
    [0.000379]   这可确保您仍能看到内核消息。 请
    [0.000383]   更新您的内核命令行。
    [0.000400]   校准延迟环路... 996.14茂物剪(lpj=4980736)
    [0.089206]   pid_max:默认值:32768最小值:301
    [0.089309]   安装高速缓存散列表条目:1024 (顺序:0、4096字节)
    [0.089319]   mountpoint-cache 哈希表条目:1024 (顺序:0、4096字节)
    [0.089926]   正在初始化 cgroup Subsys IO
    [0.089953]   正在初始化 cgroup 子系统内存
    [0.089988]   正在初始化 cgroup 子系统设备
    [0.090002]   初始化 cgroup Subsys 冷冻柜
    [0.090014]   正在初始化 cgroup Subsys perf_event
    [0.090026]   正在初始化 cgroup 子系统 PID
    [0.090050]   CPU:测试写入缓冲区一致性:好的
    [0.090421]   为0x80008200 - 0x80008260设置静态标识映射
    [0.094197]   devtmpfs:已初始化
    [0.104195]   VFP 支持 v0.3:实施者41架构3第30部分版本 c 修订版3
    [0.117241]   OMAP_hwmod:debugss:_wait_target_disable 失败
    [0.171948]   时钟源:Jiffies:MASK:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:19112604462750000 ns
    [0.175382]   pinctrl 内核:已初始化 pinctrl 子系统
    [0.176553]   NET:注册协议系列16.
    [0.178434]   DMA:为原子相干分配预分配256 K2B 池
    [0.209198]   空闲:使用调速器梯
    [0.239189]   空闲:使用调速器菜单
    [0.243000]   OMAP GPIO 硬件版本0.1
    [0.252606]   硬件断点:不支持调试架构0x4。
    [0.286295]   EDMA 49000000.EDMA:TI EDMA DMA 引擎驱动程序
    [0.289667]   omap_i2c 44e0b000.i2c:找不到节点/ocp/l4_wkup@44c0000000/CSCM@210000/ pinmux@800/pinmux_i2c0_pins 的 pctldev、延迟探针
    [0.289722]   omap_i2c 4819c000.i2c:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/pinmux_i2c2_pins 的 pctldev、延迟探针
    [0.289829]   介质:Linux 介质接口:v0.10
    [0.289880]   Linux 视频捕捉接口:v2.00
    [0.289922]   pps_core:LinuxPPS API 版本。 1已注册
    [0.289929]   pps_core:软件版本 5.3.6 -版权所有2005-2007 Rodolfo Giometti
    [0.289953]   已注册 PTP 时钟支持
    [0.290002]   EDAC MC:版本:3.0.0
    [0.291019]   OMAP-mailbox 480c8000.mailbox:OMAP mailbox 修订版0x400
    [0.291270]   已初始化高级 Linux 声音架构驱动程序。
    [0.292283]   时钟源:切换到时钟源 Timer1
    [0.301439]   NET:注册协议系列2.
    [0.302111]   TCP 建立哈希表条目:4096 (顺序:2、16384字节)
    [0.302156]   TCP 绑定哈希表条目:4096 (顺序:2、16384字节)
    [0.302194]   TCP:已配置哈希表(建立4096 BIND 4096)
    [0.302261]   UDP 哈希表条目:256 (顺序:0、4096字节)
    [0.302339]   UP-Lite 哈希表条目:256 (顺序:0、4096字节)
    [0.302485]   NET:注册协议系列1.
    [0.302850]   RPC:注册后命名的 UNIX 套接字传输模块。
    [0.302864]   RPC:注册的 UDP 传输模块。
    [0.302870]   RPC:注册的 TCP 传输模块。
    [0.302875]   RPC:注册的 TCP NFSv4.1反向通道传输模块。
    [0.303731]   硬件性能事件:通过 armv7_cortex_A8 PMU 驱动器启用、提供5个计数器
    [0.305428]   futex 散列表条目:256 (顺序:-1、3072字节)
    [0.312433]   squashfs:版本4.0 (2009/01/31) Phillip Lougher
    [0.313145]   NFS:注册 id_resolver 密钥类型
    [0.313203]   注册了密钥类型 id_resolver
    [0.313210]   注册了密钥类型 id_legacy
    [0.313280]   NTFS:驱动程序2.1.32 [Flags:R/O]。
    [0.316440]   块层 SCSI 通用(BSG)驱动程序0.4版已加载(主要248)
    [0.316472]   已注册 IO 调度程序 NOP
    [0.316484]   已登记 IO 调度程序的截止日期
    [0.316610]   已注册 IO 调度程序 cfq (默认值)
    [0.317832]   pinctrl-single 44e10800.pinmux:142引脚、PA f9e10800大小568
    [0.370351]   串行:8250/16550驱动程序,10个端口,禁用 IRQ 共享
    [0.373237]   Krishna::omap8250_probe
    [0.374070]   44e09000.serial: tmio 0x44e09000处的 ttyS0 (IRQ = 158、base_baud = 3000000)是8250
    [0.986406]   控制台[ttyS0]已启用
    [0.990264]   Krishna::omap8250_probe
    [0.994512]   48022000.serial: tmio 0x48022000 (IRQ = 159、base_baud = 3000000)处的 ttyS1是8250
    [1.003738]   Krishna::omap8250_probe
    [1.007868]   48024000.serial: tmio 0x48024000 (IRQ = 160、base_baud = 3000000)处的 ttyS2为8250
    [1.017079]   Krishna::omap8250_probe
    [1.021160]   481a6000.serial: tmio 0x481a6000 (IRQ = 161、base_baud = 3000000)处的 ttyS3为8250
    [1.030376]   Krishna::omap8250_probe
    [1.034505]   481a8000.serial: tmio 0x481a8000 (IRQ = 162、base_baud = 3000000)处的 ttyS4是8250
    [1.043696]   Krishna::omap8250_probe
    [1.047756]   481aa000.serial:在 MMIO 0x481aa000 (IRQ = 163、base_baud = 3000000)处的 ttyS5是8250
    [1.057527]   [DRM]已初始化 DRM 1.1.0 20060810
    [1.068775]   循环:模块已加载
    [1.074266]   libphy:固定 MDIO 总线:探测
    [1.142355]   DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6
    [1.148491]   DaVinci_MDIO 4a101000.MDIO:检测到的 phy 掩码 FFFFFFFE
    [1.155575]   libphy: 4a101000.mdio:探测
    [1.159615]   DaVinci_MDIO 4a101000.MDIO:PHY[0]:器件4a101000.MDIO:00、驱动程序 SMSC LAN8710/LAN8720
    [1.169532]   cpsw 4a100000.以太网:检测到的 MACID = 38:D2:69:52:92:58
    [1.176305]   cpsw 4a100000.以太网:CPT:溢出检查周期850
    [1.184223]   mousedev:PS/2鼠标设备,适用于所有鼠标
    [1.190337]   i2c /dev/entries 驱动程序
    [1.194882]   cputidle: enable-method 属性'ti、am3352'找到操作
    [1.202439]   omap_hmc 48060000.mmc:获得 CD GPIO
    [1.279521]   mmc0:主机不支持只读开关、假设已启用写入
    [1.289041]   ledtrig-CPU:已注册以指示 CPU 上的活动
    [1.295608]   Krishna::IIO_init
    [1.298800]   mmc0:地址59b4处的新高速 SDHC 卡
    [1.304414]   Krishna::devm_IIO_device_alloc
    [1.308614]   Krishna::IIO_DEVICE_ALLOC_ALLOC
    [1.312993]   mmcblk0:mmc0:59b4 SS04G 3.69 GiB
    [1.318158]   无法在虚拟地址00000000处处理内核 NULL 指针解除引用
    [1.326290]   PgD = c0004000
    [1.329005]   [00000000]* PgD=00000000
    [1.332605]   内部错误:Oops:805 [#1]抢占 ARM
    [1.33761]   链接到:
    [1.340834]   CPU:0 PID:1 Comm:swapper 未被污染4.4.4.41-gf9f6f0db2d #33
    [1.347735]   硬件名称:通用 AM33XX (平展器件树)
    [1.353852]   任务:dc05c000 ti:dc056000 task.ti:dc056000
    [1.359284]   PC 位于 add_ddr+0x28/0x34
    [1.362960]   LR 位于 DevRes_add+0x34/0x6c
    [1.366984]   PC:[ ]   LR:[ ]   PSR:60000093
    [1.366984]   sp:dc057e38 IP:dc057e48 FP:dc057e44
    [1.378507]   R10:c0939838 R9:00000000 R8:c092efe4
    [1.383751]   r7:c0903604 R6:dc42de90 R5:dc42b000 R4:a0000013
    [1.390301]   R3:00000000 R2:dc42dfcc R1:dc42de40 r0:dc42de90
    [1.396855]   标志:nZCv 在  模式 SVC_32 ISA ARM 段上关闭 FIQ
    [1.404105]   控制:10c5387d 表:80004019 DAC:00000051
    [1.409871]   处理交换器(pid:1、栈限制= 0xdc056208)
    [1.415725]   堆栈:(0xdc057e38至0xdc058000)
    [1.420099]   7e20:                                                      dc057e5c dc057e48
    [1.428313]   7e40:c03f10a8 c03f104c dc42b180 dc42de50 dc057e7c dc057e60 c0527004 c03f1080
    [1.436527]   7e60:ff0000 c094cd20 c094cd20 dc42de40 dc057ecc dc057e80 c092f030 c0526fa8
    [1.444741]   7e80:00000000 dc057ec8 00000006 dc42de90 dc42de80 c0903604 dc057ec0 dc057ea8
    [1.452954]   7ea0:c02b99e0 c094cd20 c094cd20 dc42de40 c0903604 c092ef4 00000000 c0939838
    [1.461168]   7ec0:dc057f4c dc057ed0 c00096b8 c092eff0 dc057ef4 dc057e0 00000000 dcfff604
    [1.469382]   7e0:c06c2700 000000a8 dc057f4c dc057ef8 c004e0ec c0903610 00000000 00000000
    [1.477595]   7f00:c0939810 00000006 00000006 c0998530 00000000 c0900ffc c08952b0 00000000
    [1.485809]   7f20:c0954778 00000006 c09a41c0 c09a41c0 c0903604 c09464b0 c093982c c0939838
    [1.494022]   7f40:dc057f94 dc057f50 c0903ea4 c0009600 00000006 00000006 00000000 c0903604
    [1.502236]   7f60:ff0000000000a8 ff00000000 c068b334 00000000 00000000 00000000 00000000
    [1.510449]   7f80:00000000 00000000 dc057f20dc057f98 c068b344 c0903d74 dc056000 00000000
    [1.518662]   7fa0:00000000 dc057fb0 c0010478 c068b340 00000000 00000000 00000000 00000000 00000000
    [1.526875]   7fc0:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [1.535088]   7fe0:00000000 00000000 00000000 000000000013 00000000 ff0000 ff0000ff0000 ff0000
    [1.543295]   背迹:
    [1.545760]   [ ](add_dr)、来自[ ](DevRes_add+0x34/0x6c)
    [1.552670]   [ ](DevRes_add)从[ ](devm_IIO_device_alloc+0x68/0x8c)
    [1.560877]    R4:dc42de50 R3:dc42b180
    [1.564480]   [ ](devm_IIO_device_alloc)、来自[ ](tiadc_probe +0x4c/0x340)
    [1.572860]    R6:dc42de40 R5:c094cd20 R4:c094cd20 R3:ff0000
    [1.578567][    ](tiadc_probe)、来自[ ](do_one _initcall+0xc4/0x1fc)
    [1.586425]    R10:c0939838 R9:00000000 R8:c092efe4 r7:c0903604 R6:dc42de40 R5:c094cd20
    [1.594311]    R4:c094cd20
    [1.596862]   [ ](多个_initcall)、来自[ ](kernel_init_freeable + 0x13c/0x1dc)
    [1.605592]    R10:c0939838 R9:c093982c R8:c09464b0 r7:c0903604 R6:c09a41c0 R5:c09a41c0
    [1.613477]    R4:00000006
    [1.616032]   [ ](kernel_init_freable)从[ ](kernel_init+0x10/0xFC)
    [1.624240]    R10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c068b334
    [1.632122]    R4:00000000
    [1.634675][    ](kernel_init)、来自[ ](RET_FANK_F叉+0x14/0x3c)
    [1.642272]    R4:00000000 R3:dc056000
    [1.645871]   代码:e5903140 e2802f4f e5801140 e881000c (e5831000)
    [1.652022]   --[结束线迹5fb105c6bff1b099 ]--
    [1.656660]   注意:swapper[1]使用 preemp_count 1退出
    [1.662260]    mmcblk0:P1 P2
    [1.665349]   内核严重错误-未同步:尝试终止初始化! exitcode=0x0000000b
    [1.665349]    
    [1.674528]   --[结束内核紧急状态-未同步:尝试终止初始化! exitcode=0x0000000b
    [1.674528]    
    [82.622305]  随机:非阻塞池已初始化

    我在 boneblack.device 树中添加了 ADC 节点、参考了 AM335x-EVM 器件树。

    请建议。

    谢谢、此致、

    Krishna

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

    我在 industrialio-core.c 驱动程序 IIO_DEVICE_ALLOC()函数中引入了由 devm_IIO_DEVICE_ALLOC_ALoc ()调用的调试日志,而 tidadc_probe ()函数则调用了这些日志:

    我已打印已分配的 IIO 设备的 dev->id,即0。

    [1.285533] Krishna::IIO_init
    [1.288727] mmc0:地址59b4处的新高速 SDHC 卡
    [1.2943433] Krishna::tiadc_probe
    [1.29758] Krishna::devm_IIO_device_alloc
    [1.301781] Krishna::IIIO_DEVICE_ALLOC_ALLOC
    [1.306152] mmcblk0:mmc0:59b4 SS04G 3.69 GiB
    [1.311274] Krishna::已分配大小
    [1.314938] mmcblk0:P1 P2
    [1.318103] Krishna::分配给开发的内存
    [1.323071] Krishna:IIO_dev 结构化已初始化
    [1.328136] Krishna::IIO 设备 ID - 0
    [1.333090] Krishna::IIO 设备名称集-IIO:device0
    [1.340263] Krishna:正在退回 IIO 设备
    [1.344467]无法处理虚拟地址00000000处的内核 NULL 指针解除引用

    请提供您宝贵的建议。 我觉得在 ADC 驱动器中应该没有错误。 您能否验证我已添加到器件树中的 ADC 节点。

    感谢您的帮助和先前的输入!!

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

    您是否可以将状态更改为"启用"、如下所示:
    tscadc@44e0d000{
    兼容="ti、am3359-tscadc";
    REG =<0x44e0d000 0x1000>;
    中断父级=<0x1>;
    中断=<0x10>;
    ti、hwmods ="adc_sc";
    状态="已启用";

    TSC{
    兼容="ti、am3359-TSC";
    TI、导线=<0x4>;
    ti、坐标读数=<0x5>;
    };

    ADC{
    IO 通道单元=<0x1>;
    兼容="ti、am3359-adC";
    TI、ADC 通道=<0x1 0x2 0x3 0x4 0x5 0x6 0x7>;
    };
    };

    在您共享的 DTS 部件中、我看到您将 tscadc 状态保持为禁用状态、并且您正在尝试对驱动程序进行烟雾处理、这可能会导致问题。

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

    Yordan、您好!

    感谢您的宝贵建议。

    目前,我并不是想吸入司机。 如前所述、我已更改内核配置、将 ADC 驱动程序构建为静态驱动程序。

    我已将 tscadc 状态更改为启用并面临相同的内核紧急情况(静态 ADC 驱动程序)。

    您能不能告诉我我是否可以获取 debian 映像的内核源代码、因为 ADC 驱动程序正在处理 debian 映像。然后、我可以将 ADC 驱动程序从 debian 内核源移植到 TI 处理器 SDK 内核。 我尝试将 debian 封装器件树(ADC 节点)与 Processor SDK ADC 驱动程序重复使用、但它无法正常工作。这意味着、在 BeagleBone debian 封装和 Processor SDK 中、ADC 驱动程序是不同的。

    请建议此方法是否正确。

    谢谢、此致、

    Krishna

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

    Yordan、您好!

    请帮帮我。 请提供指导以继续。

    谢谢、此致、

    Krishna