Linux驱动开发--uboot(1)

0.前言

        先推荐一部电影《美国派》三部曲,成长题材系列的电影,也反映了对某避讳话题的理性看待,理所当然。

        再推荐一个开发套件,NVIDIA Jetson系列开发套件,目前我在用的是Xavier NX和Orin Nano。为什么推荐呢?对于初入Linux的来说,其实大可不必,但是最近意识到什么?对在校学生,购买一套此套件,毕设优秀不得非你莫属。首先是足够的资源,其次是强大的功能,再者也是你大学期间好好学习的(能让你感兴趣)又吸引的东西。前两天看一片文章有外国工程师用Orin Nano做出来了钢铁侠的头盔贾维斯,太酷了伙计。。。So。。。

        之前就表达过Linux驱动是跑不掉的,刚好我也有此意,职业向此发展?大概吧。


1. uboot

1.1 介绍

        不过多废话,首先要知道启动Linux的三大件吧——内核镜像Image,设备树dtb,文件系统rootfs。那么总要有东西来引导这三个玩意启动起来,所谓的引导程序BootLoader,这个分很多,常用的就是uboot。不过多讲。其实uboot之前还有东西(TF-A),简单理解就是引导uboot?差不多这个意思。

1.2自编uboot

        为什么要自己编译uboot,对于我们学习阶段,这个是没什么用的,编译一次能使用,引导起来内核,设备树就行,那为什么要学编译呢?对于工作或者说产品要用到。比如,我现在使用的是TI的AM625X这款MPU,那么我在实际做产品的时候不可能说直接买来这个小芯片就来用,一般都是先购买或者申请TI官方的评估板(这里插一句,上学的时候不知道,很多资源可以申请到,比如TI的SK-AM62这款套件就可以向高校开放,希望在校的学生看到可以尝试申请玩一玩)。拿到手里的评估板,我们会根据自己产品的需求做开发,一切先在评估板做,OK,做完后没有问题,满足我们的要求,采购芯片,自己设计硬件。

        这大概是一个产品出来的过程。这里就牵扯到三个uboot,首先是最初的uboot,也就是uboot官方的,其次是半导体厂商,比如这里TI会根据评估板修改官方uboot做出来属于此款评估板的uboot,俗称是半导体厂商的uboot。最后,自己的产品,自己的硬件,这里我们一般硬件设计是参考评估板做开发,于是uboot参考半导体厂商的uboot修改,添加自己的某些信息。综上,大家大致了解一下。


2.编译

        以下总结与《正点原子——stm32mp157驱动开发指南》。

Ubuntu安装库

sudo apt-get install libncurses5-dev bison flex

交叉编译等等。

步骤:

  1.         获取ST官方uboot。
  2.         解压,打补丁。
  3.         编译官方uboot。

        编译好后烧录,会出现问题。什么问题?启动可以,但是会运行出错,因为这是ST官方的uboot,是对应他们的评估板,我们使用的是正点原子的,是参考评估板进行了改动,比如ST 官方开发板使用了电源管理芯片 STPMIC1A,所以 uboot 运行的时候会初始化这个 PMIC 芯片,但是正点原子开发板并没有使用这个 PMIC 芯片,所以无法正常运行。要修改uboot。

        接下来就是一步步的修改 uboot,至到其正常工作,也就是所谓的 uboot 移植

        后续更新。。。


3.总结

        怎么能学好这种Linux,我认为要和那种单片机对比这来。比如这个设备树,是描述硬件信息的,如果一层一层往下扒,发现最初的东西也是寄存器,不过这些东西出厂已经给好了或者说已经模块化了,我们所要掌握的是设备树的语法,引用,添加,修改等等。

        学习ing。

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

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

相关文章

大数据面试题:Hadoop中的几个进程和作用

面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)启动Hadoop,都会有什么进程 参考答案: 1)NameNode:Master&#xf…

【ARM 嵌入式 编译系列 10.2 -- 符号表与可执行程序分离详细讲解】

文章目录 符号表与可执行程序分离方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 下篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结 符号表与可执行程序分离 接着上篇文章 ARM 嵌入式 编译…

解决Idea 多模块,maven项目是多层级文件夹的子项时无法加入git管理的问题

问题 多模块项目,引入模块无法做git管理,第一个项目没有git分支标志,也不能像其他项目一样右键出git选项。 解决方法 发现该模块是多层级的文件夹结构,也就是项目本身在一个文件夹下。应该是要管理该文件夹。 Settings-Versi…

el-select控制单选还是多选

multiple表示多选&#xff0c;:multiple-limit“1” 限制多选的条数为1&#xff0c;2就是选两个&#xff0c;依此类推。为0 就是不限制选几个 使用 allow-create 属性即可通过在输入框中输入文字来创建新的条目。注意此时 filterable 必须为真。 <el-form :inline"true…

【剑指 Offer 40】最小的k个数

题目&#xff1a; 输入整数数组 arr &#xff0c;找出其中最小的 k 个数。例如&#xff0c;输入 4、5、1、6、2、7、3、8 这 8 个数字&#xff0c;则最小的 4 个数字是 1、2、3、4。 示例&#xff1a; 输入&#xff1a;arr [3,2,1], k 2 输出&#xff1a;[1,2] 或者 [2,1] …

阿里云云主机_ECS云服务器_轻量_GPU_虚拟主机详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等&#xff0c;阿里云百科来详细说下阿里云云主机详解&#xff1a; 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…

我学会这些车载技术,是不是就可以进【小米】车企?

作者&#xff1a;阿刁 随着智能化和电动化的发展&#xff0c;车载开发领域的前景非常广阔。许多手机厂商也纷纷加入进来&#xff0c;华为、小米等手机巨头也相继推出新能源汽车。所以在未来&#xff0c;车载系统将成为汽车的核心部分&#xff0c;涵盖车辆的控制、信息娱乐、智能…

安装paddleSeq2.7.0版本模块-笔记

安装paddleSeq2.7.0版本模块-笔记 先安装conda和python版本 本机安装的conda 22.9.0 python2.9.12 paddle2.4.2 paddlepaddle-gpu2.4.2 cuda10.2 安装matplotlib3.5.0版本 opencv_python-4.5.4.60-cp39-cp39-win_amd64.whl 测试采用分割模型名称&#xff1a;BiSeNetv2 #BiSe…

Oracle 开发篇+Java调用OJDBC访问Oracle数据库

标签&#xff1a;JAVA语言、Oracle数据库、Java访问Oracle数据库释义&#xff1a;OJDBC是Oracle公司提供的Java数据库连接驱动程序 ★ 实验环境 ※ Oracle 19c ※ OJDBC8 ※ JDK 8 ★ Java代码案例 package PAC_001; import java.sql.Connection; import java.sql.ResultSet…

背上花里胡哨的书包准备面试之webpack篇(+一些常问的面试题)

目录 webpack理解&#xff1f; webpack构建流程&#xff1f; loader解决什么问题&#xff1f; plugin解决什么问题&#xff1f; 编写loader和plugin的思路&#xff1f; webpack热更新&#xff1f; 如何提高webpack的构建速度&#xff1f; 问git常用命令&#xff1f; ht…

【TensorFlow】P0 Windows GPU 安装 TensorFlow、CUDA Toolkit、cuDNN

Windows 安装 TensorFlow、CUDA Toolkit、cuDNN 整体流程概述TensorFlow 与 CUDA ToolkitTensorFlow 是一个基于数据流图的深度学习框架CUDA 充分利用 NIVIDIA GPU 的计算能力CUDA Toolkit cuDNN 安装详细流程整理流程一&#xff1a;安装 CUDA Toolkit步骤一&#xff1a;获取CU…

XML 数据传输格式

目录 XML简介 一、初识XML 1.什么是 XML&#xff1f; 2.XML 和 HTML 之间的差异 3.XML 不会做任何事情 4.通过 XML 您可以发明自己的标签 5.XML 不是对 HTML 的替代 二、XML 用途 1.XML 把数据从 HTML 分离 2.XML 简化数据共享 3.XML 简化数据传输 三、XML 树结构 1.一个 XML 文…

QML HTTP 请求

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 Web 开发中,实现与服务器的通信至关重要,其中 HTTP 便是最常用的方式之一。它是一种客户端 - 服务器协议,客户端向服务器发送请求,服务器则返回响应。常被用于在浏览器/客户端和 Web 服务器之间传输消…

mysql执行计划—— explain

使用explain关键字可以直观的查看一条SQL语句的执行计划&#xff0c;可以帮助我们选择合适的索引和优化SQL语句&#xff0c;查询结构总共有12列。下面列举几种需要重点掌握的&#xff1a; 1.id select的标识符&#xff0c;id越大&#xff0c;表示优先级越高&#xff0c;越先执…

VB+SQL酒店客房管理设计与实现

摘要 二十一世纪是信息技术的时代,计算机已经应用到了各行各业中。采用计算机信息管理技术,可以有效的降低企业的管理成本,提高企业内部的工作效率。 本文从天天宾馆客房客房管理的一般流程出发,设计了一套天天宾馆客房管理信息系统,它可以管理天天宾馆客房中所有的客房的…

1. 如何爬取自己的CSDN博客文章列表(获取列表)(博客列表)(手动+python代码方式)

文章目录 写在最前步骤打开chrome浏览器&#xff0c;登录网页按pagedown一直往下刷呀刷呀刷&#xff0c;直到把自己所有的博文刷出来然后我们按F12&#xff0c;点击选取元素按钮然后随便点一篇博文&#xff0c;产生如下所示代码然后往上翻&#xff0c;找到头&#xff0c;复制然…

1.2 操作系统原理和常见命令

操作系统原理和常见命令 文章目录 操作系统原理和常见命令操作系统原理操作系统的概述进程管理内存管理文件系统设备管理安全性操作系统的角色 操作系统中的常见命令和操作 操作系统原理 操作系统的概述&#xff1a; 定义&#xff1a;操作系统是控制和管理计算机硬件与软件资源…

Java-类型和变量(基于C语言的补充)

一个简单的Java程序 args){ System.out.println("Hello,world"); } }通过上述代码&#xff0c;我们可以看到一个完整的Java程序的结构&#xff0c;Java程序的结构由如下三个部分组成&#xff1a; 1.源文件&#xff08;扩展名为*.java)&#xff1a;源文件带有类的定义…

ios消息推送例子

通过Apple推送服务&#xff0c;将消息发送给特定的ios客户端&#xff0c;这是服务器端实例代码。需要客户端的voip key值&#xff0c;以及相应的客户端回调接口&#xff0c;支持ios9.0以上版本。 下载地址&#xff1a;https://download.csdn.net/download/m0_37567738/8821559…

[保研/考研机试] KY7 质因数的个数 清华大学复试上机题 C++实现

描述 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如1202*2*2*3*5&#xff0c;共有5个质因数。 输入描述&#xff1a; 可能有多组测试数据&#xff0c;每组测试数据的输入是一个正整数N&#xff0c;(1<N<10^9)。 输出描述&#xff1a; 对于每组数…