天天看點

系統移植篇00:系統移植簡介

系統移植篇00:系統移植簡介

在上一篇中我們學習了如何進行 I.MX6U 的裸機開發,通過 21 個裸機例程我們掌握了

I.MX6U 的常用外設。

通過裸機的學習我們掌握了外設的底層原理,這樣在以後進行 Linux 驅動開發的時候就隻需要将精力放到 Linux 驅動架構上,在進行 Linux 驅動開發之前肯定需要先将Linux 系統移植到開發闆上去。

如果學習過 UCOS/FreeRTOS 應該知道,UCOS/FreeRTOS 移植就是在官方的 SDK 包裡面找一個和自己所使用的晶片一樣的工程編譯一下,然後下載下傳到開發闆就可以了。

那麼 Linux 的移植是不是也是這樣的,下載下傳 Linux 源碼,然後找個和我們所使用的晶片一樣的工程編譯一下就可以了?

很明顯不是的!Linux 的移植要複雜的多,在移植 Linux之前我們需要先移植一個 bootloader 代碼,這個 bootloader 代碼用于啟動 Linux 核心,bootloader有很多,常用的就是 U-Boot。

移植好 U-Boot 以後再移植 Linux 核心,移植完 Linux 核心以後Linux 還不能正常啟動,還需要再移植一個根檔案系統(rootfs),根檔案系統裡面包含了一些最常用的指令和檔案。

是以 U-Boot、Linux kernel 和 rootfs 這三者一起構成了一個完整的 Linux 系統,一個可以正常使用、功能完善的 Linux 系統。

在本篇我們就來講解 U-Boot、Linux Kernel 和rootfs 的移植,與其說是“移植”,倒不如說是“适配”,因為大部分的移植工作都由 NXP 完成了,我們這裡所謂的“移植”主要是使其能夠在 I.MX6U-ALPHA 開發闆上跑起來。

我們所謂的移植就是在恩智浦的智慧結晶下,通過修修改改補補來适配我們自己手中的開發闆。

繼續閱讀