gpt4 book ai didi

linux - 访问 GPIO 时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:05 24 4
gpt4 key购买 nike

首先很抱歉问这个问题,我已经在这里阅读了一些类似的问题,但没有主题有我的答案。而且我在编程嵌入式 Linux 方面完全是新手,这是我第一次使用 Linux,所以请保持礼貌:)

所以,我的问题是:我正在尝试使用 GPIO 为嵌入式 linux 系统 (AT91SAM9260 mcu) 做一些基本应用程序 - 闪烁的 LED 或一些按钮。但是当我尝试通过它们的地址(例如 0xE002C00C)访问 GPIO 时,程序显示“Segmentation fault”。到目前为止我发现这意味着 linux 不会让我使用我试图访问的内存。许多人建议我应该编写自己的驱动程序或其他任何东西,但正如我所说,我在这方面绝对是新手,我不知道我应该做什么。有人可以帮我弄这个吗?分步说明会很棒。

提前致谢,muliku。

最佳答案

当您说您正在运行嵌入式 Linux 时,提供诸如内核版本、哪个 BSP 由谁提供或任何构建系统(如 Openembedded 或 buildroot)之类的信息也会很有帮助。如果您运行的是 Linux,在 Linux 上访问 GPIO 的标准方法是从/sys/class/gpio。参见 GPIO sysfs .检查您使用的内核是否已经导出它们。

关于您的段错误,在像 Linux 这样的单片内核上,用户空间和内核空间是分开的。不能直接访问任何地址。所有地址都是内存映射的,虚拟地址和物理地址之间存在转换。

如果您有最新的内核或您的供应商 Atmel 或以其他方式提供了正确配置的内核/BSP,您应该能够通过 sysfs 访问 GPIO,因为 GPIO 驱动程序和任何必要的支持都包含在内。

关于linux - 访问 GPIO 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com