LV.10 系统移植
2022-01-01 18:28:53 0 举报
AI智能生成
系统移植
作者其他创作
大纲/内容
D1 嵌入式系统移植导学
系统移植课程
嵌入式系统分层
课程内容
安装系统:在基于ARM处理器的开发板上安装Linux系统
移植的目的
(软件和硬件的匹配)不同架构的处理器指令不兼容,即便是相同的处理器架构,板卡不同驱动代码也不兼容
课程特点
课程特点
1.知识面广
2.应用广泛
3.实验性强
思维方式
配置、编译、安装
学习方法
重实验、轻细节。把握整体思路,建立通用思维
课程实际原则
在最短的时间内学会最有用的东西
系统移植过程
Windows装机
1.准备Windouws系统镜像、U盘启动盘
2.进入BIOS选择启动方式(U盘启动)
3.通过U盘中的引导程序安装系统
4.安装Windows驱动程序
5.安装Windows应用程序
开发板启动过程
系统移植过程
uboot移植
Linux内核移植(包含设备树)
根文件系统移植
D2 交叉编译环境搭建
ubuntu网络环境配置
tftp网络服务器环境搭建
nfs服务器环境搭建
D3 uboot的烧写及使用
uboot概述
开发板启动过程
Bootloader
在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统)
Bootloader基本功能
初始化软硬件环境
引导加载linux内核
给linux内核传参
执行用户命令
常见的Bootloader
SD卡启动盘制作
SD卡存储结构
uboot的使用
uboot模式
自启动模式:uboot启动后若没有用户介入,倒计时结束后会自动执行自启动 环境变量(bootcmd)中设置的命令(一般作加载和启动内核)
交互模式:倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下 用户可输入uboot命令
uboot帮助命令
help:查看uboot支持的所有命令
help [命令]:查看当前命令的使用方法
uboot环境变量命令
printenv:打印uboot中所有的环境变量
setenv:设置指定的环境变量(保存在RAM中)setenv 环境变量 环境变量的值
saveenv:保存所有环境变量到EMMC中
uboot常用环境变量
ipaddr:uboot的IP地址
serverip:服务器的IP地址(即ubuntu的IP)
bootdelay:进入自启动模式之前倒计时的秒数
uboot网络传输命令
loadb:通过Kermit协议下载文件到指定的内存地址 loadb 地址
tftp:通过tftp协议下载文件到指定的内存地址 tftp 地址 文件名
uboot存储器访问命令
mmc read:将EMMC中指定扇区中的内容读取到内存中指定的地址
mmc write:将内存中指定地址中的内容写入到EMMC中指定的扇区
uboot自启动环境变量
bootcmd:自启动的环境变量 该环境变量可以设置成一到多个uboot命令的集合(若有多个使用\;分割)
D4 Linux内核的安装与加载
tftp加载Linux内核及rootfs
EMMC加载Linux内核及rootfs
tftp加载Linux内核挂载rootfs
EMMC加载uboot
D5 交叉编译工具链
交叉编译
编译原理
GCC编译过程
交叉编译
程序的编译和运行不在同一台机器上
交叉编译工具链
交叉编译工具链的获取
交叉编译工具链的内容
ELF文件格式
ELF文件格式
介绍
ELF文件相关命令
file
file + 文件名 查看文件的详细信息
readelf
readelf -h + 文件名 列出elf文件的头部信息
readelf -a + 文件名 列出elf文件的所有信息
readelf -a + 文件名 列出elf文件的所有信息
BIN文件格式
简介
交叉编译工具链常用工具
size
size + 文件名
列出目标文件每一段的大小以及总体的大小
列出目标文件每一段的大小以及总体的大小
nm
nm + 文件名
列出目标文件中的符号表(标示符)
列出目标文件中的符号表(标示符)
strip
strip + 文件名
丢弃目标文件中的符号
丢弃目标文件中的符号
objdump
从目标文件中显示信息
eg:objdump -d + 文件名 将目标文件反汇编(机器码->汇编)
eg:objdump -d + 文件名 将目标文件反汇编(机器码->汇编)
objcopy
对目标文件进行复制和转换
eg:objcopy --gap-fill=0xff -O binary a.out a.bin 将目标文件转换为bin格式
eg:objcopy --gap-fill=0xff -O binary a.out a.bin 将目标文件转换为bin格式
D6 uboot移植
uboot源码结构
uboot源码获取
uboot特点
uboot源码结构
平台相关代码
平台无关代码
配置文件、帮助文档、示例程序、工具等
uboot的配置与编译
uboot配置
1.指定当前使用的硬件平台
2.指定编译uboot源码使用的编译器
uboot编译
1.编译uboot
2.清除编译过程中生成的中间文件
uboot移植
D7 Linux内核移植
Linux内核概述
内核
内核是一个操作系统的核心,提供了操作系统最基本的功能,是操作系统工作的基础,决定着整个系统的性能和稳定性
操作系统
操作系统是在内核的基础上添加了各种工具集、桌面管理器、库、shell、应用程序等
Linux层次结构
LInux内核特点
LInux内核源码结构
Linux内核源码获取
Linux内核源码结构
平台相关代码
平台无关代码
帮助文档、示例程序、工具等
Linux内核的配置与编译
配置
1. 指定处理器架构及编译工具
2. 导入当前处理器的默认配置
3. 修改配置
make menuconfig
修改配置
内核编译
make uImage :编译内核(编译选为“*”的选项到内核)
make modules :编译内核模块(编译选为“M”的选项为独立模块)
make dtbs:编译设备树(将设备树源文件dts编译为二进制文件dtb)
make clean:删除编译过程中产生的中间文件
D8 Linux设备驱动移植
设备树
设备树
简介
设备树文件
简介
设备树语法
简介
网卡驱动移植
D9 根文件系统移植
根文件系统
简介
内容
根文件系统移植
BusyBox
简介
获取
0 条评论
下一页