- 嵌入式设备上电运行的内部启动机制
- Centos主机连接嵌入式开发板串口的工具有:minicom、screen
- minicom使用方法:1.#minicom -s 进去设置端口和波特率后,重新输入#minicom进去即可。
- screen的使用方法:1.#screen /dev/ttyUSB0 115200
第一步:
- 启动目标板。
- 由U-BOOT启动加载引导程序,并加载各种硬件的初始化程序。
第二步:
- U-BOOT加载内核启动。
- tftp 600000 uImage # 使用TFTP协议加载镜像到内存地址为600000,NFS Server服务
- tftp c00000 dtb # 使用TFTP协议下载二进制设备树dtb文件到c00000
- bootm 600000 - c00000 # bootm命令的作用是从内存的镜像引导内核运行,并将设备树文件dtb传给内核
- 此时的CPU控制权全在于内核程序
- 设备树dtb文件包含设备相关信息,包括:内存、时钟、闪存、总线、设备
第三步:
- 内核初始化。
- 内核先初始化,再挂载根文件系统,然后执行init进程。
- 内核在内核上下文环境中运行
第四步:
- 内核执行init进程后,会进入用户空间运行,但是此时对设备资源的访问是受限的,需要通过内核系统调用访问设备资源system call
- 内核为用户进程完成从虚拟空间到物理空间地址的映射。
- 用户空间虚拟地址是由内核选取并管理。