linux驱动1

linux移植

1、移植一个Linux到ARM上

2、ubuntu上开发应用程序(交叉编译)

----在A平台上开发编译B平台运行的程序

3、移植应用程序到ARM上

nfs----网络文件系统(做网络之间的文件共享)

linux启动流程:

|------------------------------------------|
| 1、bootloader是一个为内核启动准备环境的裸机程序,引导内核启动 |
| 2、kernel操作系统的核心(实现整个系统功能的程序) |
| 3、rootfs 加载(挂载)跟文件系统 |

1、bootloader(uboot)

为了读到arm里面再写到内存当中
--- 初始化异常向量表
--- 初始化CPU(工作模式)
--- 初始化栈
--- 初始化时钟
--- 关看门狗

看门狗(Watchdog Timer, WDT)

用于防止系统死机、实现自动恢复的关键安全机制,相当于系统的 "监护者"。
正常时:程序定时喂狗(重置定时器)
异常时(死机、死循环、崩溃):没人喂狗 → 定时器溢出 → 强制复位(重启)系统
--- 关闭Cache (数据Cache必关,指令可选)

Cache

CPU 内部高速缓存,用来加速内存访问,但它是异步、自动缓存的。
关 Cache:
防止外设寄存器被缓存,导致读写不真实
保证代码搬运、重定位时数据严格一致
让硬件初始化行为可预测、稳定
--- 关MMU

MMU

负责虚拟地址 ↔ 物理地址转换
负责内存权限、属性控制
负责内存映射(比如外设、DDR 映射)
Bootloader 早期只认物理地址,MMU 只会添乱所以关掉
--- 关中断
--- 初始化内存
--- 初始化相关设备(串口、网口)
--- 集成相关协议
--- 搬移内核到内存 --- 向内核传参(根文件系统类型,init进程,控制台)
--- 引导内核启动
-----bootload不再控制CPU,CPU控制权移交给内核

2. kernel 一个复杂的程序

文件管理 进程管理 内存管理
网络管理 设备管理 IPC进程间通信
内核启动到最后阶段 加载(挂载)根文件系统
启动init进程(由内核init进程退化(exec))
init -> 其他进程 -> shell -> uaerapp

3. rootfs 跟文件系统(第一个挂载的文件系统)

一堆文件的集合
--- 配置文件
--- 系统命令
--- 库
--- 用户程序
--- 普通文件(文本、mp3、jpg)

系统上电根据启动模式配置引脚从不同的介质加载bootloader(以SD卡为例)

  1. cpu拷贝bootloader前半部分到OCRAM, bootloader在前半部分代码中初始化好内存,并搬移自己后半部分到内存中执行,bootloader执行到最
    后阶段搬移内核到内存,并引导内核启动
    2-1 内核在SD卡中,则bootloader需要在代码中初始化好SD卡,然后读SD的kernel分区写入内存
    2-2 内核在ubuntu上,则bootloader需要在代码中初始化有线网卡及集成tftp协议,通过tftp协议下载内核到内存
    3-1 根文件系统如果在SD卡中,则内核直接挂载SD卡的rootfs分区
    3-2 根文件系统在ubuntu上,则内核应该通过nfs挂载ubuntu上的rootfs目录(bootloader向内核传参是应该包含内核启动阶段使用的ip)
相关推荐
ltl19 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王19 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
ZJH__GO1 天前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
小小、码农1 天前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b1 天前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
NeilYuen1 天前
用UDP实现向DNS服务器请求IP地址
服务器·tcp/ip·udp
沫璃染墨1 天前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK1 天前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
修罗王1 天前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
迪康Defender1 天前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他