linux内核驱动流程

news2024/12/23 5:12:50

norflash:可线性访问(和内存的访问方式相同)

nandflash: 不可线性访问,必须配个专门的程序访问

Linux启动:

1. 引导程序 bootloader,为内核启动准备环境

2.启动内核(kernel)

3. 加载根文件系统(挂载)

1.bootloader启动(裸机程序)--uboot.bin

--为内核启动准备环境并引导内核启动

初始化CPU(工作模式)

初始化异常向量表

初始化栈

初始化时钟

关看门狗

初始化内存

关闭Cache

关闭MMU

初始化相关的硬件(串口-调试,网口)

集成相关的协议

搬移内核到内存

向内核传参(根文件系统类型/位置,控制台,init进程,ip(如果需要))

启动内核(PC指向内核所在的内存地址)

--bootloader不再控制CPU,CPU的控制权彻底移交给

内核

2.内核(一个大的程序并为用户提供操作接口)--永不停止

进程管理,内存管理,网络管理,文件管理,设备管理

内核启动到最后阶段时:加载根文件系统(以挂载的形式)

启动init进程-> shell -> userapp

3.根文件系统

可执行程序(系统程序,系统命令,用户程序)

配置文件

库(静态/动态)

普通文件(文本/mp3/jpg)

bl main:相对跳转(PC加偏移)短跳转,加载地址与链接地址无关,地址无关代码

Idr pc,0xxxxx :绝对跳转,直接给PC赋地址 长跳转

加载地址与链接地址必须保持一致,地址相关代码

Linux内核配置过程

下载一个bootloader到norflash的0地址处(norflash被接到2440的0地址处)

系统上电后 PC指向norfalsh的0地址开始运行bootloader,bootloader搬移内核到内存

在arm板启动倒计时时按enter进入配置

Uboot 命令:

reset 重启uboot

setenv abc 123 设置环境变量

保存环境变量(到nand)

savenv

setenv abc 删除环境变量

ping 目标ip

tftp 0x30008000 ulmage

bootm 0x30008000(启动内核)

(go 0x30008000 运行程序)

printenv(print):看环境

reset:重启

setenv abc 123:设置一个新的abc为123(set abc 456:设置已有的abc为456)

setenv abc:删除abc

saveenv:保存修改

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

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

相关文章

[240822] X-CMD 发布 v0.4.7: 新增 htop 、btop 和 ncdu 模块;优化 colr 和 scoop 模块

X-CMD 发布 v0.4.7 目录 X-CMD 发布 v0.4.7📃Changelog✨ htop✨ btop✨ ncdu✨ colr✨ scoop✅ 升级指南 📃Changelog ✨ htop 新增 htop 模块。本模块优先使用环境中的 htop 命令;若当前环境没有 htop 命令,模块将使用 pixi 模…

线程池的构造以及相关方法

手写线程池 package cn.itcast.n8;import lombok.extern.slf4j.Slf4j; import org.springframework.core.log.LogDelegateFactory; import java.util.ArrayDeque; import java.util.Deque; import java.util.HashSet; import java.util.concurrent.TimeUnit; import java.util…

【卡码网C++基础课 6.数组的倒序与隔位输出】

目录 题目描述与分析一、数组二、Vector三、倒序输出数组四、隔位输出五、完整代码 题目描述与分析 题目描述: 给定一个整数数组,编写一个程序实现以下功能: 1.将输入的整数数组倒序输出,每个数之间用空格分隔。 2.从正序数组中&…

可视化大屏-实现自动滚动

一、背景:可视化大屏通常需要用到自动滚动的效果,本文主要采用的是vue-seamless-scroll组件来实现(可参考官方文档) 二、实现效果: 自动滚动 三、代码实现: 解题思路: 1.先安装依赖包 npm inst…

zTree 异步加载实现 点击加载

效果图如下 每级最多显示5000条数据&#xff0c;点击加载 会再次加载5000条数据 可以监听滚动条 动态加载 我这没实现这种方式。 <!-- ztreejs --> <script src".ztree/js/jquery.ztree.core.min.js" type"text/javascript"></script>…

DLAFormer:微软提出多任务统一的端到端文本分析Transformer模型 | ICDAR 2024

论文提出新颖的基于Transformer的端到端方法DLAFormer&#xff0c;在统一的模型中集成多个文档布局分析任务&#xff0c;包括图形页面对象检测、文本区域检测、逻辑角色分类和阅读顺序预测。为了实现这一目标&#xff0c;将各种DLA子任务视为关系预测问题并提出了统一标签空间方…

kafka监控工具EFAK

kafka监控工具&#xff08;EFAK&#xff09; 1、下载2、解压3、配置3.1、安装数据库&#xff0c;需要是mysql&#xff0c;并创建ke数据库3.2、修改配置文件 4、启动4.1、启动zookeeper4.2、启动kafka4.3、启动EFAK 5、访问http://ip:8048 github地址&#xff1a;https://github…

colmap的几种相机类型和内外参取得方法

colmap的相机类型可以参考models.h文件。 主要有以下几种相机类型&#xff1a; SimplePinhole&#xff1a; 内参格式&#xff1a;f, cx, cy 实际用的时候&#xff1a;fxfyf Pinhole: 内参格式&#xff1a;fx, fy, cx, cy 其他可以自行查看models.h文件。 内参存放在images.b…

《微信小程序开发》系列:第1篇—微信小程序简介

1.什么是微信小程序 微信小程序是一种运行在微信内部的 轻量级 应用程序。 在使用小程序时 不需要下载安装&#xff0c;用户 扫一扫 或 搜一下 即可打开应用。它也体现了 “用完即走” 的理念&#xff0c;用户不用关心安装太多应用的问题。它实现了应用“触手可及”的梦想&…

回归分析系列14— 多项式回归

17 多项式回归 17.1 简介 多项式回归是线性回归的一种扩展&#xff0c;它允许回归模型包括输入变量的高次项。这种方法特别适合处理非线性关系的数据。 17.2 多项式回归模型 在多项式回归中&#xff0c;模型形式如下&#xff1a; 其中&#xff0c;p 是多项式的阶数&#xf…

Vue项目-三级联动的路由跳转与传参

三级联动组件的路由的跳转与传参 三级联动&#xff0c;用户可以点击的&#xff1a;一级分类、二级分类和三级分类 以商城项目为例&#xff0c;Home模块跳转到Search模块&#xff0c;以及会把用户选中的产品&#xff08;产品名字、产品ID&#xff09;在路由跳转的时候&#xff…

【控糖有道,健康无忧!糖尿病患者的饮食黄金法则大揭秘】

在快节奏的现代生活中&#xff0c;糖尿病作为一种常见的慢性疾病&#xff0c;正悄然影响着越来越多人的生活质量。面对这一挑战&#xff0c;科学合理的饮食管理成为了控制病情、提升生活品质的关键。今天&#xff0c;就让我们一同揭开糖尿病饮食的黄金法则&#xff0c;让“控糖…

CentOS服务器三级等保加固

1.密码周期: vim /etc/login.defs max_days:90 mindays:2 minlen:8 warnage:72.密码复杂度: vim /etc/pam.d/system-auth &#xff1a; password requisite pam_cracklib.so retry3 difok3 minlen8 lcredit-1 dcredit-1 ucredit-1 ocredit-1 【Ubuntu系统->vim /etc/pam.d/c…

Linux组的介绍,所有者,所在组,修改所在组

目录 linux组的介绍 文件/目录所有者 组的创建 文件/目录所在组 其它组 改变用户所在组 linux组的介绍 每个用户必须属于一个组&#xff0c;不能独立于组外。 这个文件是谁创建的&#xff0c;这个文件的所有者就是谁。 这个文件属于组1&#xff0c;那么组2对它来说就…

VoLTE基本信令流程(整理的学习笔记)

VoLTE基本信令流程 1. 注册基本过程 UE进行Attach&#xff0c;建立QCI9的默认承载使用IMS APN建立PDN连接&#xff0c;建立 QCI5 的默认承载&#xff0c;用于传送 SIP 信令&#xff0c;同时获取到了IMS入口的P-CSCF地址信息UE 通过 QCI5 的默认承载向 IMS 发起注册请求IMS 域…

亚马逊ERP全功能 无隐藏收费的几个地方

亚马逊全功能 ERP 采集图片订单翻译&#xff0c;无任何隐藏收费。 说说有关采集和管理的软件&#xff01;1. 对于做跟卖的人来说需要大量采集产品&#xff0c;采集过来的产品还需要进行文本、图片翻译、修图等操作&#xff0c;图片储存和站点维护另算。市面上有些 ERP 软件在这…

美国高防服务器到底怎么选

美国高防服务器因其强大的硬件设施、高度的网络连接性、丰富的带宽资源和先进的防御技术而受到全球用户的欢迎。以下是选择美国高防服务器时需要考虑的关键因素&#xff0c;rak部落为您整理发布美国高防服务器到底怎么选。 确定服务器需求 容量和带宽&#xff1a;根据业务规模…

共享电动单车管理系统 ---附源码131016

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于共享电动单车管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了共享电动单车管理系统&#xff0c;它彻底…

React 学习——Class类组件生命周期函数

componentDidMount&#xff1a;组件渲染完执行一次&#xff0c;发送网络请求 componentWillUnmount&#xff1a;组件卸载的时候执行&#xff0c;副作用&#xff08;清理的工作 清除定时器 事件绑定&#xff09; import { Component,useState } from react; class Counter e…

敏捷架构开发方法和实践:迎接数字化时代的挑战

在当前飞速发展的数字化时代&#xff0c;传统企业架构的局限性日益显现&#xff0c;特别是在应用敏捷方法的过程中&#xff0c;许多企业发现其架构和组织结构无法支持真正的敏捷转型。为应对这一挑战&#xff0c;《数字化时代的敏捷架构》提出了一个全新的架构框架——敏捷架构…