895|1

2945

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

【米尔STM32MP135】linux系统增减和调整板极设备驱动 [复制链接]

对于嵌入linux系统设备驱动的调整和驱动开发是必要技能,但是由于linux系统驱动开发太过于复杂。linux系统的设备定制就成为一件很头疼的事,但是如果你看到今天的测试,我想你会对linux的项目有所改观,随着linux系统的不断发展,其驱动程序也在不断地发展,从最开始地集成式内核驱动发展到动态模块化驱动,在到设备树的引用,发展到现在的虚拟平台驱动,虽然驱动本身的结构也越来越复杂,但是驱动代码的编写却越来越简单了。因为驱动程序的分层越来越清晰,驱动代码每层的代码量变小了。有时我只需要调整少量的代码就可以使板子工作,象本次测试的米尔开发板这种结构,分成“核心板”和“扩展板”的结构,开发产品时可以只是用厂家的核心板,定制的部分自己开发PCB就可以了,驱动程序微调一下就可以了。

 

前面的介绍说了个大概,下面就使用ST的openLinux系统为例进行实际的介绍。

如果你不想完全的自制系统,就需要使用米尔的BSP系统,因为STM32MP135的安全机制的引入linux内核是不能随便的使用设备驱动和不配套的内核系统的,但是对于本次实验似乎没有不要,因为这次只是为板子增加一个LED引脚,调整一下设备树而已。

1、安装前面测试的步骤,保证下载的内核源码能够通过,将板子的内核和设备树*.dtb文件更换成编译好的文件。

Modify, rebuild and reload the Linux® kernel参考该链接的步骤

  • root@myd-yf13x:~# uname -a
  • Linux myd-yf13x 5.15.67-g9cec825a70d7-dirty #4 SMP PREEMPT Sat Sep 16 11:01:24 CST 2023 armv7l armv7l armv7l GNU/Linux
  • root@myd-yf13x:~#

2、修改设备树文件

修改前建议对设备树文件进行备份,

  • vim myb-stm32mp135x-base.dtsi

在文件中寻找leds一节

  • leds {
  • compatible = "gpio-leds";
  • led-blue {
  • function = LED_FUNCTION_HEARTBEAT;
  • color = <LED_COLOR_ID_BLUE>;
  • gpios = <&gpioh 12 GPIO_ACTIVE_LOW>;
  • linux,default-trigger = "heartbeat";
  • default-state = "off";
  • };
  • };

添加系列内容

  • leds {
  • compatible = "gpio-leds";
  • led-blue {
  • function = LED_FUNCTION_HEARTBEAT;
  • color = <LED_COLOR_ID_BLUE>;
  • gpios = <&gpioh 12 GPIO_ACTIVE_LOW>;
  • linux,default-trigger = "heartbeat";
  • default-state = "off";
  • };
  • led-green {
  • label = "stm32mp:green:user";
  • gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
  • default-state = "on";
  • status = "okay";
  • };
  • };

修改后存盘

编译设备树文件,将设备树更新到开发板当中

  • root@myd-yf13x:~# ls /sys/class/leds/
  • blue:heartbeat stm32mp:green:user
  • root@myd-yf13x:~#

可以发现新增加的设备已经可以使用了。

后记:目前的linux 5.1内核大部分驱动都已经支持这样的操作,编写驱动也可以只编写内核有关的部分,如系统电源管理、接口等程序都已经标准化了只要遵照标准就可以了,甚至就如上面的操作,只是修改一下设备树设置就可以增减设备文件。目前我实验的设备有uart、USB、SPI设备、ADC设备。

 

 

 

此帖出自stm32/stm8论坛

最新回复

统电源管理、接口等程序都已经标准化了只要遵照标准就可以了,这个好   详情 回复 发表于 2023-9-16 20:48
点赞(1) 关注
 

回复
举报

6909

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

统电源管理、接口等程序都已经标准化了只要遵照标准就可以了,这个好

此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 2/10 下一条
福禄克有奖直播:高精度测温赋能电子制造 报名中!
直播时间:2025年2月28日(周五)上午10:00
直播主题:高精度测温赋能电子制造
小伙伴们儿快来报名直播吧~好礼等你拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表