目录
一、嵌入式系统分层
1.1
硬件层:计算机和外界进行数据输入输出
操作系统:向下管理硬件、向上提供接口
操作系统为我们提供了:
1.进程管理
2.内存管理
3.网络协议
4.文件系统
5.设备管理
系统移植就是在基于ARM处理器的开发板上安装Linux系统。没有操作系统时,对裸机进行开时,是通过调用各种寄存器进行实现相应功能;
1.2 移植的目的
不同架构的处理器汇编指令集不兼容,即便是相同的处理器架构,板卡不同驱动代码也不兼容。Linux是一个通用的内核并不是为某一个特定的处理器架构或板卡设计的,所以从官方获取Linux源码后我们要先经过相应的配置使其与我们当前的硬件平台相匹配后才能进行编译和安装。
镜像是编译完的系统,可以直接使用,Linux是源码,和开发板硬件不匹配,需要配置源代码。实现软件和硬件的匹配。系统移植最重要的就是配置。
二、系统移植过程
2.1 Windows装机
1.准备Windows系统镜像(系统之家)、U盘启动盘(“老毛桃/大白菜”等程序)
2.进入BIOS(basic input output system)(电脑厂家出厂前固化在主板上)选择启动方式(U盘启动,上电后首先执行U盘的内容)BIOS:对电脑软硬件设置,开机后选择启动方式。
3.通过U盘中的引导程序安装系统:运行“老毛桃”程序,在其界面下将系统镜像安装到磁盘上
4.安装Windows驱动程序
5.安装Windows应用程序:APP
2.2系统移植
前提是下载linux源代码,与开发板配置,修改,编译
1.准备Linux内核镜像、SD卡启动盘(uboot:引导安装操作系统)
2.通过拨码开关(断电下拨码)选择启动方式(SD启动):4412中的BL0,类似于BIOS
3.通过SD卡中的引导程序安装系统
4.安装Linux驱动程序
5.安装Linux应用程序
三、开发板启动过程
地址映射表
外扩地址实际只取用1G内存,从4000 0000 ->8000 0000
EMMC:相当于电脑的硬盘,外存,断电不丢失
开发板启动过程:
1.开发板上电后首先运行SOC内部iROM中固化的程序(BL0),这段代码先对基本的软硬件环境(时钟、内存等)进行初始化
2.BL0读取拨码开关位置获取启动方式(SD启动)
3.BL0复制SD程序进入到内存里(SD卡中的uboot搬移到内存),然后跳转到uboot运行
4.uboot对软硬件环境初始化(栈、网卡、硬件、串口),将linux(程序)、设备树(dtb)、根文件系统(rootfs)从EMMC(外存)搬移到内存中(前提是已经将linux、dtb、rootfs安装到外存了)(通过uboot复制到内存)
5.Linux开始启动,首先对开发板上的软硬件环境初始化(栈、网卡、硬件),Linux再从内存中(或网络)挂载根文件系统(即把根文件系统拿过来用)。
6.所以需要提前移植的软件有linux、dtb、rootfs、uboot