嵌入式linux架构理解(宏观理解)6ull学习心得---从架构理解到自写程序运行及自写程序开机自启动

发布于:2025-04-20 ⋅ 阅读:(23) ⋅ 点赞:(0)

一、linux系统的三个组成部分

U-Boot、Linux kernel 和 rootfs 这三者一起构成了一个完整的 Linux 系
统,一个可以正常使用、功能完善的 Linux 系统。

1.在移植 Linux之前我们需要先移植一个 bootloader 代码,这个 bootloader 代码用于启动 Linux 内核,bootloader有很多,常用的就是 U-Boot。
·
2.移植好 U-Boot 以后再移植 Linux 内核, 移植完 Linux 内核以后
·
3.Linux 还不能正常启动,还需要再移植一个根文件系统(rootfs),根文件系统里面包含了一些最常用的命令和文件。
·
所以 U-Boot、Linux kernel 和 rootfs 这三者一起构成了一个完整的 Linux 系统,一个可以正常使用、功能完善的
Linux 系统。

1.uboot

下载 编译 烧录

MobaXterm 上出现“Hit any key to stop autoboot: ”倒计时的时候按下键盘上的回车键,默认是 3 秒倒计时,在 3 秒倒计时结束以后如果没有按下回车键的话 uboot 就会使用默认参数来启动 Linux 内核了。如果在 3 秒倒计时结束之前按下回车键,那么就会进入 uboot 的命令行模式

2.1.linux内核

a.Linux 镜像文件-----zImage
编译后会在 arch/arm/boot 目录下生成一个叫做 zImage 的文件
zImage 就是我们要用的 Linux 镜像文件
b.dtb(设备树)文件--------比如imx6ull-14x14-evk.dtb

另外也会在 arch/arm/boot/dts 下生成很多.dtb 文件,这些.dtb 就是
设备树文件。

2.2.使用uboot中的命令启动linux

(1)通过网络启动linux

a.将zImage 和 imx6ull-14x14-emmc-7-1024x600-c.dtb 发送到 Ubuntu 主机中的 tftpboot 文件夹里面

b.给予 imx6ull-14x14-emmc-7-1024x600-c.dtb 可执行权限

chmod 777 imx6ull-14x14-emmc-7-1024x600-c.dtb

c.使用 tftp 命令
将zImage 下载到DRAM的0X80800000地址处,然后将设备树imx6ull-14x14-emmc-7-1024x600-c.dtb 下载到 DRAM 中的 0X83000000 地址处,最后之后命令 bootz 启动,命令如下:

"
tftp 80800000 zImage 
tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb 
bootz 80800000 - 83000000 
"

(2)从EMMC中启动linux

如果我们要从 EMMC 中启动 Linux 系统的话只需要使用命令 fatload 将 zImage 和 imx6ull-14x14-emmc-7-1024x600-c.dtb 从
EMMC 的分区 1 中拷贝到 DRAM 中,然后使用命令 bootz 启动即可。

"
fatload mmc 1:1 

网站公告

今日签到

点亮在社区的每一天
去签到