【北京迅为】《STM32MP157开发板使用手册》- 第十二章 编译Linux内核

news2024/12/29 8:50:31

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板+底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐用,可满足高速信号环境下使用。共240PIN,CPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口,CAMERA接口、ADC电位器、SPDIF、SDIO接口等


第十章 编译Linux内核

12.1 内核源码的编译

kernel 的源码路径为“iTOP-STM32MP157开发板光盘资料\04_TF-A、uboot和内核源码\kernel”,如下图所示(日期可能会有变化,使用最新日期即可):

kernel 源码的编译器和编译uboot与TF-A的编译器相同,都为gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf

将“ ”源码拷贝源码到“/home/topeet”目录下,使用如下命令

tar -vxf linux-5.4.31_20210817.tar.gz 

解压源码压缩包,得到“linux-5.4.31”文件夹,使用如下命令

cd linux-5.4.31/ 

进入该文件夹,如下图所示。

使用命令”./create.sh”来进行编译,编译过程如下图示所示:

编译完成如下图所示: 

如下图所示,在“output”目录下,编译生成了“uImage”kernel 镜像。 

 

如下图所示,在“output/dts/”目录下生成设备树文件“****.dtb”。

如上图所示,这七个设备树文件是我们所需要的,分别对应七个不同的屏幕。编译完成以后,我们需要制作对应的镜像,这样才能使用STM32CubeProgrammer工具烧写进开发板。

而我们通过烧写软件烧写的镜像为bootfs.ext4,存放路径为“output”目录下,如下图所示

 

bootfs.ext4镜像之中存放的就是我们uImage和dtb设备树文件,大家可以自行挂载来进行查看。

至此我们的内核设备树镜就制作完成了,然后只需要将我们制作的bootfs.ext4替代image烧写目录下的bootfs.ext4文件然后进行烧写即可。

12.2 驱动模块的使用

由于一些驱动的依赖特性,一些驱动并不能直接编译进内核,或者编译进内核之后并不能挂载成功。所以就需要我们进行手动挂载,以下为不能是在内核中不能成功挂载的模块:

我们都存放在了“output/ko”路径下,每个模块的原始路径如下图所示:

模块

模块编译成功之后存放的位置

RTL8723BU(蓝牙WIFI)

linux-5.4.31/drivers/net/wireless/rtl8723bu/8723bu.ko

4.3寸屏幕触摸

linux-5.4.31/drivers/input/touchscreen/tsc2007.ko

10.1寸屏幕触摸

linux-5.4.31/drivers/input/touchscreen/ gt911.ko

Ov5640摄像头模块

linux-5.4.31/drivers//media/i2c/ov5640.ko

如果要使用这些外设,需要将对内核源码的output/ko路径下的模块拷贝到文件系统使用insmod命令进行手动加载,我们以RTL8723BU为例,在3.16 蓝牙WIFI测试章节进行了演示,其他模块的操作步骤相同。在我们提供好的镜像中,已经配置完成,不需要在进行上述配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运算放大器中的反馈

运算放大器中的反馈:原理、类型与应用 运算放大器(Operational Amplifier, 简称Op-Amp)是现代电子电路中的重要组成部分,被广泛应用于信号处理、放大、滤波等场合。而反馈技术则是运算放大器电路的核心之一,直接影响其…

代码随想录算法训练营第二十二天| 491. 递增子序列、46. 全排列、47. 全排列Ⅱ

今日内容 Leetcode. 491 递增子序列Leetcode. 46 全排列Leetcode. 47 全排列Ⅱ Leetcode. 491 递增子序列 文章链接:代码随想录 (programmercarl.com) 题目链接:491. 非递减子序列 - 力扣(LeetCode) 本题也是一个子集问题&#…

【AI绘画】Midjourney后置指令--seed、--tile、--q、--chaos、--w、--no详解

博客主页: [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯Midjourney后置指令--seed测试1测试2如何获取未指定种子图片的随机种子注意点 💯Midjourney后置指令--tile测试 💯Midjourney后置指令--q(or-…

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用&a…

chrome浏览器如何设置自动播放音视频

使用场景: 有些场景需要打开页面后,自动播放视频或者视频流,这时候发现无法播放,打开浏览器控制台发现有下面的错误提示:NotAllowedError: play() failed because the user didnt interact with the document first 。…

顶级出图效果!免费在线使用FLux.1 模型,5s出图无限制!

最近发现一个可以在线免费使用 FLux.1 模型 生成图片的AI工具。 先看效果图: 工具不需要登录即可使用,目前还是完全免费的,国内可以直接使用。 在提示词输入框直接输入提示词即可,选择图片比例之后,直接生图。 出图的…

安全运营之浅谈SIEM告警疲劳

闲谈: 刚开始学习SIEM、态势感知这类产品的时,翻阅老外们的文章总是谈什么真阳性,假阳性告警、告警疲劳,当时在国内资料中没找到很合理的解释,慢慢就淡忘这件事了。随着慢慢深入工作,感觉大概理解了这些概念…

‌技术人必看!如何科学规划,从需求出发打造完美技术方案

引言 在互联网架构师的角色中,我们面临的挑战不仅仅是编写代码,更重要的是深入理解需求、设计系统,并确保我们的解决方案能够稳定、高效地运行。本文将详细介绍从新需求提出到技术方案发布的全过程。 1. 理解现有需求和场景 在开始一个新的…

信息学奥赛初赛天天练-87-NOIP2014普及组-完善程序-矩阵、子矩阵、最大子矩阵和、前缀和、打擂台求最大值

1 完善程序 最大子矩阵和 给出 m行 n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。 输入第一行包含两个整数 m和 n,即矩阵的行数和列数。之后 m行,每行 n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。 (最…

SAP中mmpv自动过账—附带源码

想省事儿的直接拖到后面查看代码 思路分析 实现逻辑:初版 前台测试:选择屏幕确认公司代码。必要情况手动开账勾选前台执行按钮 1.1去marv表找公司代码的当前账期,简单运算获取下一个账期。1.2执行bdc,模拟前台手动开账期1.3执行的必要信息存日志表。例:修改人(开账期的人…

FastAPI 进阶:使用 BackgroundTasks 处理长时间运行的任务

在 FastAPI 中,BackgroundTasks 是一个功能,它允许你在发送响应给客户端之后执行后台任务。这些任务对于不需要客户端等待的操作非常有用,比如发送电子邮件通知或处理数据。然而,当服务器重启时,由于 BackgroundTasks …

C++: set与map容器的介绍与使用

本文索引 前言1. 二叉搜索树1.1 概念1.2 二叉搜索树操作1.2.1 查找与插入1.2.2 删除1.2.3 二叉搜索树实现代码 2. 树形结构的关联式容器2.1 set的介绍与使用2.1.1 set的构造函数2.1.2 set的迭代器2.1.3 set的容量2.1.4 set的修改操作 2.2 map的介绍与使用2.2.1 map的构造函数2.…

基于python的mediapipe姿态识别 动作识别 人体关健点 实现跳绳状态判别 计数功能

基于Python的MediaPipe姿态识别实现跳绳状态判别与计数功能 项目概述 本项目旨在利用Google的MediaPipe库,结合姿态识别技术,实现对跳绳动作的实时检测与计数功能。通过识别人体关键点,系统能够准确判断跳绳动作的状态,并实时统…

Java入门:07.Java中的面向对象03

11 this关键字 this关键字有两个作用 第一个作用,用来调用重载的构造方法 public class Test3{public static void main(String[] args){new User();new User("ls");new User("ls","女");} } ​ class User{String name ;String sex…

Autosar工程师必读:ETAS工具链自动化实战指南<三>

----自动化不仅是一种技术,更是一种思维方式,它将帮助我们在快节奏的工作环境中保持领先! 目录 往期推荐 自动化命令--generate 命令语法 参数说明 命令使用前提 场景1:BSW代码生成 场景2:RTE代码生成 场景3&a…

对非洲33国免关税!非洲市场不容错过

2024年9月5日中非合作论坛峰会在北京隆重召开,会议后宣布对非洲33个国家实行0关税的优惠政策,并且在未来三年,推动中国企业对非投资不少于700亿元人民币。 自然而然的,中非友好关系必然会带动中国对非洲市场的出口,近…

云计算实训44——K8S及pod相关介绍

一、K8S基本概念 1、k8s是什么 K8S是Kubernetes的 缩写,由于k 和 s 之间有⼋个字符,所以因此得名。 Kubernetes 是⼀个可移植的、可扩展的开源平台,⽤于管理容器化 的⼯作负载和服务,可促进声 明式配置和⾃动化。 2、k8s的功能…

STM32F1+HAL库+FreeTOTS学习10——任务相关API函数使用

STM32F1HAL库FreeTOTS学习10——任务相关API函数使用 任务相关API函数1. uxTaskPriorityGet()2. vTaskPrioritySet()3. uxTaskGetNumberOfTasks()4. uxTaskGetSystemState()5. vTaskGetInfo()6. xTaskGetCurrentHandle()7. xTaskGetHandle()8. xTaskGetIdleTaskHandle()9. uxTa…

你需要掌握的算法:快慢指针

文章目录 前言龟兔赛跑乌龟能否追上兔子乌龟与兔子在何处相遇龟兔问题的推论 快慢指针基础概念发展历史 快慢指针的应用检测链表是否有环找到链表的中间节点计算链表的环长度找到链表环的入口节点 小结 前言 在处理链表数据结构时,快慢指针是一种非常高效的算法技巧…

鸡尾酒排序算法

目录 引言 一、概念 二、算法思想 三、图例解释 1.采用冒泡排序: 2.采用鸡尾酒排序: 3.对比总结 四、算法实现 1.代码实现 2.运行结果 3.代码解释 五、总结 引言 鸡尾酒排序(Cocktail Sort),也被称为双向冒…