目录
系统移植导学
系统移植过程
Windows装机
Linux系统移植
开发板启动过程
系统移植导学
操作系统:向下管理硬件、向上提供接口
操作系统为我们提供了:
1.进程管理
2.内存管理
3.网络接口
4.文件系统
5.设备管理
那系统移植是干什么呢,就是将Linux操作系统移植到基于ARM处理器的开发板中。
那为什么要移植系统呢,在裸机开发的时候我们发现我们什么函数都调不了,什么都要自己实现。这样做开发的时候需要大量的时间。只能做一些小的项目。
那什么是移植呢
不同架构的处理器指令集不兼容,即便是相同的处理器架构,板卡不同驱动代码也不兼容
Linux是一个通用的内核并不是为某一个特定的处理器架构或板卡设计的,所以从官方获取Linux源码后我们要先经过相应的配置使其与我们当前的硬件平台相匹配后才能进行编译和安装
我们下载Windows下载的是镜像或者说是编译过的代码,而去Linux官网上下载的是源代码。
系统移植过程
Windows装机
1.准备Windows系统镜像、U盘启动盘(老毛桃/大白菜)
2.进入BIOS选择启动方式(U盘启动)
BIOS: 百度百科-验证
3.通过U盘中的引导程序安装系统
4.安装Windows驱动程序
驱动: 百度百科-验证
5.安装Windows应用程序
Linux系统移植
1.准备Linux内核镜像、SD卡启动盘(uboot)
u-boot: 百度百科-验证
2.通过拨码开关选择启动方式(SD启动)
3.通过SD卡中的引导程序安装系统
Exynos_4412中三星已经为我们安装了BL0,他就类似于BIOS
ARM专题:S5PV210的BL0解读【Cortex-A8系利】_Lytain2022的博客-CSDN博客
4.安装Linux驱动程序
5.安装Linux应用程序
开发板启动过程
地址映射表
一上电,芯片就会先执行IROM里的程序,这里就放着BL0,但是这段代码不是开源的我们不知道它写了什么。
0202 0000-0206 0000这段地址是三星设计的一块内存
1000 0000-1400 0000这段地址是特殊功能寄存器,之前裸机开发用到的寄存器大多在这段地址中。
4000 0000-A000 0000这1.5G是留给扩展内存的
A000 0000-FFFF FFFF这1.5G也是预留给扩展内存的
系统移植过程: