问候,
我正在使用 IMX95 开发我们的项目。现在,我必须使用 GPIO1 组。我按如下方式编辑了我的dts文件:
&gpio1 {
状态=“好的”
};
然后我重启了系统。
控制台显示如下错误信息,系统崩溃。
我的问题是,用户可以控制 GPIO1 吗?或者,我应该如何正确配置我的DTS?
或者还有其他方法可以控制 GPIO1 的 GPIO 引脚吗?
[2.326271]pstate:40400009(nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE = - )
[ 2.333203] pc : bgpio_read32+0x0/0x18
[ 2.336923] lr : gpio_generic_chip_init+0x228/0x3e0
[ 2.341783] sp : ffff8000822e3a90
[2.345070]x29:ffff8000822e3a90 x28:0000000000000000 x27:0000000000000000
[ 2.352176] x26: ffff000080024028 x25: 00000000000000000 x24: ffff00008002320d
[ 2.359283] x23: 0000000000000000 x22: ffff000081ff9180 x21: ffff000080252000
[ 2.366390] x20: ffff000080252010 x19: ffff000080f65080 x18: 000000000000000a
[ 2.373497] x17: ffff8000817c0b68 x16: ffff000081fc7280 x15: 0000000000000000
[ 2.380603] x14: ffffffffffffffff x13: 0000000000000000 x12: 0101010101010101
[ 2.387710] x11: 7f7f7f7f7f7f7f7f x10: ffff80008249d043 x9 : 0000000000000018
[ 2.394817] x8 : 0101010101010101 x7 : 0000000000000000 x6 : 0000000000000090
[ 2.401923] x5 : 0000000000000090 x4 : ffff800080720920 x3 : ffff000080f65080
[ 2.409030] x2 : ffff80008071fb0c x1 : ffff80008070efa0 x0 : ffff8000822d5050
[ 2.416144] 调用跟踪:
[ 2.418571] bgpio_read32+0x0/0x18 (P)
[ 2.422297] vf610_gpio_probe+0x2d0/0x400
[ 2.426277] platform_probe+0x5c/0xa4
[ 2.429916] really_probe+0xbc/0x2bc
[ 2.433470] __driver_probe_device+0x78/0x120
[ 2.437803] driver_probe_device+0x3c/0x178
[ 2.441963] __device_attach_driver+0xb8/0x140
[ 2.446383] bus_for_each_drv+0x88/0xe8
[ 2.450197] __device_attach+0x9c/0x1a0
[ 2.454010] device_initial_probe+0x14/0x20
[ 2.458170] bus_probe_device+0x9c/0xa0
[ 2.461983] deferred_probe_work_func+0x7c/0xb4
[ 2.466490] process_one_work+0x150/0x290
[ 2.470477] worker_thread+0x180/0x2f4
[ 2.474203] kthread+0x12c/0x204
[ 2.477410] ret_from_fork+0x10/0x20
[ 2.480973] 代码:d503201f d5033ebf b9000001 d65f03c0 (b9400000)
[ 2.487037] ---[ 跟踪结束 00000000000000000 ]---
我原以为这条信息显示的是错误,但实际上是系统崩溃了。
或许只是函数调用跟踪日志。
不过,还是要谢谢大家。
我应该重新设计一下我的硬件。
你好,
如 i.MX95 硬件设计指南第 2.1 节“系统管理器”中所述:
https://www.nxp.com/webapp/Download?colCode=UG10210&isHTMLorPDF=HTML
SM 和 Cortex-M33 内核控制 GPIO1 中的所有引脚。其他核心无法直接访问它们;只允许通过系统控制和管理接口 (SCMI) 协议进行间接访问。它确保了安全的唤醒和恢复机制。
这就是为什么从 Linux 端(不同的 LM)尝试访问时会遇到硬故障的原因。
此致敬礼/Saludos,
阿尔多。
控制GPIO应该没问题,但你能分享一下你是如何配置GPIO的吗?是开漏还是推挽?
顺便说一下,日志里似乎没有任何错误信息……