stm32mp157 linux下扩展板驱动移植1:驱动移植准备

目录

1.资源扩展板介绍

1.1硬件介绍

1.2资源扩展板可开发项目

2.扩展板驱动移植准备

2.1实验原理

2.2实验目的

2.3实验平台

2.4实验步骤


写在前面:

本文章为《Linux系统移植之扩展板外设驱动移植篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提供所有项目的说明文档、实验源码、应用程序等资料。

针对FS-MP1A开发板,除了扩展板外设驱动移植篇外,还包括其他多系列教程,包括Cortex-A7开发篇、Cortex-M4开发篇、FreeRTOS篇、Linux应用开发篇、Linux系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。欢迎关注,更多stm32mp157开发教程及视频,可加技术交流Q群483143191,感谢关注。

FS-MP1A开发板详情介绍:https://item.taobao.com/item.htm?id=622457259672

1.资源扩展板介绍

1.1硬件介绍

1.2资源扩展板可开发项目

2.扩展板驱动移植准备

2.1实验原理

Linux设备树目录下文件分三种分别是dtsi、dts和dtb,dtsi类似于C语言中的头文件,定义一些通用的信息会被dts文件引用,dts是最终的文件,用来描述设备的硬件资源、编译后生成dtb文件,这个文件将会传递给linux内核,内核启动后通过解析这个文件获取设备的硬件资源信息。

即使同一款芯片也会有不同的设备树,对应不同的设备,这里我们要准备驱动我们的扩展板,这样我们可以认为加了扩展板的fsmp1a是一个新的设备,所以我们要为这个新的设备创建一个新的设备树文件,当然他继承了fsmp1a的主板资源,所以我们设备设备树会应用原有的设备树文件。

扩展板资源标识图

2.2实验目的

了解Linux内核设备树的原理,设备树的层次结构等,掌握如何在内核中添加一个新设备的支持。

2.3实验平台

华清远见开发环境,FS-MP1A平台

2.4实验步骤

  1. 导入交叉编译工具链

linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

  1. 新建设备树文件

在内核的arch/arm/boot/dts目录下新建文件stm32mp157a-fsmp1a-extended.dts文件并添加如下内容:

stm32mp157a-fsmp1a-extended.dts

123456789101112131415// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)/* * Copyright (C) Farsight 2018 - All Rights Reserved *//dts-v1/;#include "stm32mp157a-fsmp1a-mipi050.dts"//#include "stm32mp157a-fsmp1a-rgb070.dts"//#include "stm32mp157a-fsmp1a.dts"/ { model = "HQYJ STM32MP157 FSMP1A EXTENDED Discovery Board"; compatible = "st,stm32mp157a-dk1", "st,stm32mp157";};

说明:

主板使用的是5寸的MIPI屏需引用stm32mp157a-fsmp1a-mipi050.dts,

主板使用的是7寸的RGB屏需引用stm32mp157a-fsmp1a-rgb070.dts

如果没有屏幕则可以引用stm32mp157a-fsmp1a.dts

  1. 修改arch/arm/boot/dts/Makefile

在原有stm32mp157a-fsmp1a-rgb070.dts下添加如下新dts文件的条目(标红部分未新增条目)

dtb-$(CONFIG_ARCH_STM32) += \

stm32f429-disco.dtb \

stm32f469-disco.dtb \

stm32f746-disco.dtb \

stm32f769-disco.dtb \

stm32429i-eval.dtb \

stm32746g-eval.dtb \

stm32h743i-eval.dtb \

stm32h743i-disco.dtb \

stm32mp157a-dk1.dtb \

stm32mp157a-fsmp1a.dtb \

stm32mp157a-fsmp1a-mipi050.dtb \

stm32mp157a-fsmp1a-rgb070.dtb \

stm32mp157a-fsmp1a-extended.dtb \

  1. 编译设备树文件

编译后会生成stm32mp157a-fsmp1a-extended.dtb文件

  1. 增加启动项配置

u-boot可以通过eMMC、SD卡、TFTP三种方式加载内核和设备树文件,三种不同的方式分别需要修改不同的文件

eMMC启动:修改根文件系统的/boot/mmc1_stm32mp157a-fsmp1a_extlinux/extlinux.conf

SD卡启动:修改根文件系统的/boot/mmc1_stm32mp157a-fsmp1a_extlinux/extlinux.conf

TFTP启动:修改根文件系统的/tftpboot/pxelinux.cfg/01-00-80-e1-42-60-17

注意:

01-00-80-e1-42-60-17为板子u-boot期间的MAC地址,如需改变可以在u-boot期间使用env set -f ethaddr xx:xx:xx:xx:xx:xx来修改mac地址。

红色部分为增加内容

# Generic Distro Configuration file generated by OpenEmbedded

menu title Select the boot mode

MENU BACKGROUND ../splash.bmp

TIMEOUT 20

DEFAULT stm32mp157a-fsmp1a-mipi-emmc

LABEL stm32mp157a-fsmp1a-emmc

KERNEL /uImage

FDT /stm32mp157a-fsmp1a-extended.dtb

APPEND root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200

LABEL stm32mp157a-fsmp1a-extended

KERNEL /uImage

FDT /stm32mp157a-fsmp1a-extended.dtb

APPEND root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200

说明:

“APPEND root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200”表示根文件系统在eMMC上、如果需要使用nfs挂载根文件系统需将APP内容改为:

APPEND root=/dev/nfs nfsroot=192.168.11.251:/source/rootfs ip=dhcp rootwait rw earlyprintk console=ttySTM0,115200

硬件平台:华清远见FS-MP1A开发板(STM32MP157)

部分开发教程下载:加QQ群483143191,群文件里有。

部分视频课程收看:华清远见研发中心的个人空间_哔哩哔哩_Bilibili

淘宝购买链接:https://item.taobao.com/item.htm?id=622457259672

手机淘宝分享码:复制本行文字打开手淘₤T4FPXn3YYJ2₤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值