100ASK_STM32MP157上机实验:GPIO与设备树
需积分: 0 24 浏览量
更新于2024-08-04
收藏 678KB DOCX 举报
"在本次实验中,我们关注的是在100ASK_STM32MP157开发板上的Linux操作系统实践,特别是关于GPIO(通用输入/输出)和设备树的配置。实验涉及到两个不同的Git仓库,分别针对‘驱动基础’和‘驱动大全’的学习路径。实验步骤包括确定LED的引脚、生成设备树节点以及处理引脚冲突。"
在100ASK_STM32MP157开发板上进行Linux驱动开发时,一个关键的操作是查看系统的挂载情况,例如通过执行`cat /proc/mounts`命令。这个命令用于显示已挂载的文件系统,帮助开发者了解系统分区的状态。在实验中,可能会遇到两种情况:一种是mmcblk2p2分区已经挂载在/boot目录下,另一种情况可能是未进行挂载。
在STM32MP157芯片的开发中,设备树是一个重要的概念,它是硬件描述的一种方式,用于Linux内核配置。在本实验中,开发人员需要使用设备树生成工具来配置LED驱动。这个工具可以从100ASK提供的网盘中下载,与STM32MP157_PRO开发板相关的资料一起。根据LED的原理图,确定其连接到GPIOA的第10个引脚(PA10)。
值得注意的是,当使用gpiod_get等函数操作GPIO时,这些函数会自动将引脚设置为GPIO功能,因此在设备树的Pinctrl节点中不需要再进行额外的设置。在设备树中,只需指定LED使用的GPIO引脚。这可以通过创建一个名为'myled'的设备节点实现,如下所示:
```dts
myled{
compatible="100ask,leddrv";
led-gpios=<&gpioa10 GPIO_ACTIVE_LOW>;
};
```
此外,为了防止引脚冲突,需要在设备树中修改其他可能使用相同GPIO引脚的led节点,例如通过添加'status="disabled"'属性来禁用它们,以确保LED驱动的正常工作:
```dts
led{
status="disabled";
compatible="gpio-leds";
blue{
label="heartbeat";
gpios=<&gpioa10 GPIO_ACTIVE_HI>;
};
};
```
通过这样的配置,实验者可以在STM32MP157开发板上成功地建立和控制LED,同时理解Linux内核如何通过设备树与GPIO子系统交互,以及如何解决潜在的硬件冲突问题。这不仅涵盖了基础的GPIO驱动开发,也深入到Linux驱动开发的高级主题,如设备树的使用和优化。
2018-07-08 上传
2021-01-23 上传
2023-06-08 上传
2023-08-08 上传
2023-05-26 上传
2023-05-26 上传
2023-07-22 上传
2023-05-04 上传
2023-05-10 上传
![](https://profile-avatar.csdnimg.cn/f6611d1f96f247dfa0a03cdadd65386f_weixin_35824356.jpg!1)
田仲政
- 粉丝: 16
- 资源: 332
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命