uboot驱动和Linux内核驱动有什么区别?

news2024/11/16 20:50:04

一、前言

uboot启动后,一些外设如DDR、EMMC、网口、串口、音频、显示等等已经被初始化,为什么Linux内核中还需要写Linux驱动呢?


二、uboot驱动和Linux驱动的区别

1、直观理解

驱动,不仅仅是为了初始化,还实现了一组接口(read、write、open、close)供用户态应用程序使用。

光初始化有啥用,就像你开车一样,发动机发动了,前灯亮了,如此而已。驱动不会自己执行,驱动都是被动被程序调用。就像车不会自己跑一样,需要司机(应用程序)通过车(驱动)提供的接口,去行驶、倒车、关窗、关闭打开车灯。

来自:https://www.zhihu.com/question/534378582/answer/2500296995

2、专业理解

uboot本质就是个裸板程序,对于裸板程序来说:

第一只能单任务执行,用户需求要多任务;

第二,开发起来极其繁琐,比如IIC,各种时序写完程序员要花很多时间加班加点赶进程最后还是比竞争对手慢;

第三,直接操作物理地址,极其不安全。

因此uboot我们要把他设计成这样的特性:

功能上只做一些必要的硬件初始化(根据用户需求),和启动linux内核,并为linux提供根文件系统的启动参数。生命周期上linux一旦启动,uboot就死亡,所有内存由linux掌控。

来自:https://www.zhihu.com/question/534378582/answer/2502620899


 三、uboot为什么要有驱动

我们都知道uboot主要作用就是启动Linux内核,那为什么需要再uboot中添加硬件的驱动呢?等到内核启动之后再添加Linux驱动到内核不就可以了吗?

uboot提供网络的功能,可以方便后续调试。比如,nfs文件系统,tftp下载等。当然,如果不想用这个网络驱动也可以,但是,这样就少了一些调试途径了。 现在的开发板,有些也可以通过OTG USB下载,下载文件系统的,不需要网线可以的。

比如移植网络驱动,uboot阶段可以通过网络下载,更新linux kernel,rootfs等。

在内核出现故障时,可以使用uboot的nfs文件系统、tftp下载等功能修复。 


 

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

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

相关文章

《Linux》1.权限

1.用户 首先介绍一下Linux中的用户概念。Linux下有两种用户:超级用户(root),普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示…

FTP回复码

FTP回复码由3个数字和对应文本组成 恢复定义为3个数字编码,紧跟一个空格 sp,然后是一行文本,以telnet的换行符表是结束 但是,某些情况下,文本内容太长超过一行,这就需要在第一行和最后一行特殊处理。处理格…

C++模拟实现栈(stack)和队列 (queue)

目录 一、栈(stack) 的介绍 二、队列(queue) 的介绍 三、容器适配器 二、deque的简单介绍 三、模拟实现stack 3.1 stack.h 3.2 test.cpp 四、模拟实现queue 4.1 queue.h 4.2 test.cpp 一、栈(stack) 的介绍 1. stack是一种容器适配…

字符串、内存函数的介绍(13)

目录 1、字符串函数 1、strlen 模拟实现: 2、strcpy 模拟实现: 3、strcat 模拟实现: 4、strcmp 模拟实现: 5、strncpy 6、strncat 7、strncmp 8、strstr 模拟实现: 9、strtok 10、strerror 11、其他字…

回顾2022年5月IB全球统考成绩,这些学校IB成绩非常亮眼

IB大考成绩放榜,全球17,3878名学生在2022年5月的考试中获得文凭课程(DP)和职业课程(CP)的成绩。今年全球640位考生获得满分45分,全球平均分31.98分。以下是部分公布公布成绩的学校: 成都树德中学国际部:在2022年的全球…

电商维权控价方法论

电商经济繁荣发展,品牌销售渠道多样化,带来流量的同时,各种渠道问题也暴露出来,如,低价、侵权……渠道秩序面临着严峻挑战,品牌生命周期也受到了威胁。所以,越来越多的品牌选择维权控价&#xf…

2022年终总结与2023新年展望

前言 时间过得太快了,虽然写博客已经很多年了,但是年终总结一直由于种种原因没有写过,2022年确实是魔幻的一年,不知不觉自己也已经研二了,因为疫情的原因突然放开,提前放假回家,借此机会写一下…

Git(七) - IDEA 集成 GIT

一、配置 Git 忽略文件 (1)问题1:为什么要忽略他们? 答:与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之 间的差异。 (2)问题2:怎么忽略? …

TP可能用到的函数

说明 该文章来源于同事lu2ker转载至此处,更多文章可参考:https://github.com/lu2ker/ 文章目录说明in_array()filter_var()class_exists()strpos()escapeshellarg()escapeshellcmd()preg_replace()parse_str()无字母数字下划线的webshellstr_replace()e…

GNN algorithm(4): HAN, Heterogeneous Graph Attention Network

目录 background (1) heterogeneity of graph (2) semantic-level attention (3) Node-level attention (4) HAN contributions 2. Related Work 2.1 GNN 2.2 Network Embedding 3. Preliminary background 4. Proposed Model 4.1 Node-level attention ideas: …

Unity脚本(四)

视频教程:https://www.bilibili.com/video/BV12s411g7gU?p149 目录 键盘输入 InputManager 键盘输入 当通过名称指定的按键被用户按住时返回true: bool resultInput.GetKey(KeyCode.A); 当用户按下指定名称按键时的那一帧返回true:…

Python学习笔记——变量和简单数据类型

编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码。标识符第一个字符必须是字母表中字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。在 Pyth…

【深度学习】机器学习\深度学习常见相关公开数据集汇总(图像处理相关数据集、自然语言处理相关数据集、语音处理相关数据集)

一、前言 1. 介绍 常来说,深度学习的关键在于实践。从图像处理到语音识别,每一个细分领域都有着独特的细微差别和解决方法。 然而,你可以从哪里获得这些数据呢?现在大家所看到的大部分研究论文都用的是专有数据集,这…

超声波测距传感器认知

目录 一、超声波测距传感器认知 二、从零编程实现超声波测距 三、项目——感应开关盖垃圾桶 1、开发步骤 2、感应开关盖垃圾桶代码测试 一、超声波测距传感器认知 超声波测距模块是用来测量距离的一种产品,通过发送和接收超声波,利用时间差和声音…

【网络】udp_socket编程

目录 1.认识端口号 1.1 理解端口号和进程ID 1.2 理解源端口号和目的端口号 2.认识TCP协议 3.认识UDP协议 4.网络字节序 5.socket编程接口 5.1socket常见API 5.2sockaddr结构 sockaddr结构 sockaddr_in 结构 in_addr结构 6.简单的UDP网络程序 6.1创建套接字 6.2 …

【Docker】三 镜像容器常用命令

这里写目录标题1 配置镜像加速器2 Docker镜像常用命令2.1 搜索镜像2.2 下载镜像[重要]2.3 列出镜像[重要]2.3 删除本地镜像[重要]2.4 保存镜像2.5 加载镜像2.6 构建镜像[重要]3 容器常用命令3.1 新建并启动容器[重要]3.2 列出容器[重要]3.3 停止容器[重要]3.4 强制停止容器[重要…

你可以不用Git,但不能不会Git(三)基础(下)

目录 一.将文件添加至忽略列 二.日志记录操作 三.比较文件差异 四.还原文件 一.将文件添加至忽略列 一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中…

重学 Java 设计模式-结构型模式-适配器模式

重学 Java 设计模式-结构型模式-适配器模式 内容摘自:添加链接描述 适配器模式介绍 图片来自:https://refactoringguru.cn/design-patterns/adapter(opens new window) 适配器模式的主要作用就是把原本不兼容的接口,通过适配修改做到统一。…

canva绘制(二次、三次)贝塞尔曲线并且图片在曲线上运动

下图为实现效果&#xff08;图片在三次贝塞尔曲线中运动&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

Spring之注解开发

目录 一&#xff1a;Bean基本注解开发 二&#xff1a;Bean依赖注入注解开发 三&#xff1a;非自定义Bean注解开发 四&#xff1a;Bean配置类的注解开发 五&#xff1a;Spring配置其他注解 六&#xff1a;Spring注解的解析原理 一&#xff1a;Bean基本注解开发 Spring除了…