系统移植的说明
1.1 系统移植介绍
系统移植(System Porting)是将一个操作系统(通常是嵌入式操作系统)从一个硬件平台或架构移植 到另一个硬件平台或架构的过程。这个过程可能涉及到许多不同的方面,包括硬件适配、驱动程序开发、 引导加载程序(Bootloader)配置、文件系统适配、内核参数设置等等。
系统移植的主要目的是使一个操作系统能够在不同的硬件平台上正常运行,并充分发挥其功能。在嵌 入式领域,不同的硬件平台可能有不同的处理器架构、外设、内存布局等,因此需要进行适当的调整和配 置,以确保操作系统能够正确地与硬件交互。
通常情况下,系统移植需要进行以下工作:
1 选择操作系统版本: 首先需要选择适合目标硬件平台的操作系统版本,确保其支持目标架构和硬件 特性。
2 硬件适配:修改操作系统的源代码,以适配新的硬件平台。这可能涉及修改底层驱动程序、中断处理、 外设配置等。
3 驱动程序开发: 编写或适配适合目标硬件的驱动程序,使操作系统能够与硬件进行通信。
4 引导加载程序配置: 配置引导加载程序,使其能够正确加载和启动操作系统内核。
5 文件系统适配: 调整文件系统以适应新的硬件存储和文件结构。
6 内核参数设置: 配置操作系统内核参数,以适应硬件资源和性能需求。
7 调试和测试: 进行测试,确保操作系统在新硬件平台上稳定运行。调试可能涉及硬件问题、驱动程序 问题、性能问题等。
系统移植是一个复杂的过程,需要对操作系统内部和硬件架构有深入的了解。同时,不同的操作系统 和硬件组合可能有不同的移植流程和挑战。但是通过系统移植,可以使原本在一个硬件平台上运行的操作 系统在其他硬件平台上也能够发挥作用,从而实现更多的嵌入式应用场景。
1.2 FLASH内存映射


上述部分主要总结如下:
启动加载器 (Bootloader):系统启动的第一阶段是启动加载器的运行。在你的配置中,有两个级别的 启动加载器:第一级 (FSBL) 和第二级 (SSBL)。这些启动加载器负责加载和运行更高级别的启动加载 器,以及最终加载内核和文件系统。
内核 (Kernel):内核是操作系统的核心,它负责管理硬件资源、进程管理、文件系统等。在配置中, 内核文件通常被放置在 bootfs 或者 rootfs 中。内核必须能够正确地加载和解释设备树 (Device Tree)。
设备树 (Device Tree):设备树是一种描述硬件的机制,使内核能够根据硬件的不同配置进行正确的初 始化。在你的配置中,设备树文件可能会附加在启动加载器 (ssbl 或 fsbl) 后面,作为启动加载器的一 部分。
文件系统:不同的分区被用来存放不同类型的文件系统。userfs、rootfs、vendorfs 等都是不同类型的文 件系统,存放着用户数据、Linux 根文件系统以及第三方专有文件等。
OP-TEE:这是一个安全框架,分为 teeh、teed 和 teex 三个部分,用于提供安全和信任的执行环境。
1.3存储器类别

1.4 Linux系统启动流程

标准 Linux 启动过程的主要步骤:
- 上电和自检 (Power On and Power-On Self-Test, POST): 计算机上电,开始进行硬件初始化和自检。 自检程序会检查硬件是否正常工作,并进行初始化。
- 引导加载器 (Bootloader): 引导加载器负责加载操作系统内核和根文件系统。 常见的引导加载器包括 GRUB、U-Boot 等。 引导加载器从引导设备(如硬盘、闪存)读取配置和内核映像。
- 内核启动 (Kernel Boot): 内核加载后,会被解压和初始化。 内核首先会设置基本硬件参数,如内存管理、处理器模式等。 初始化后,内核会启动第一个用户态进程 init。
- 初始化 (Init): 内核启动 init 进程(通常是/bin/init 或/sbin/init)作为第一个用户态进程。 init 负责启动和管理其他用户态进程,并初始化系统的各种资源。 在现代系统中,init 通常被替代为更先进的 init 系统,如 systemd、Upstart 等。
- 系统初始化 (System Initialization): 在 init 或 init 系统的管理下,系统会进行初始化,包括加载系统配置、设置网络、加载驱动程序等。 用户空间初始化 (User Space Initialization): 用户空间初始化涉及启动各种用户态进程和服务。 启动登录管理器(如 GDM、LightDM),以便用户登录。 用户登录后,登录管理器启动 X 服务器(如 Xorg)以及用户的窗口管理器或桌面环境。
- 用户登录 (User Login): 用户通过登录界面输入用户名和密码。 登录管理器验证用户信息,如果正确,会创建用户的会话环境。
- 用户会话 (User Session): 一旦用户成功登录,桌面环境启动并提供一个用户界面。 用户可以运行应用程序、访问文件、使用系统资源。
1.5 STM32MP1 启动流程

与标准流程基本一致,多提供了一种安全监控的模式,可以由 FSBL 或者 SSBL 启动。由于该开发板 采用异核架构,有 A 核和 M 核,如果要加载 M 核的固件,可以在 SSBL 或者 linux 启动。
1)STM32MP1 非安全启动流程

2)STM32MP1 安全启动流程

6929

被折叠的 条评论
为什么被折叠?



