南京市高淳區(qū)城鄉(xiāng)建設(shè)局網(wǎng)站營銷型網(wǎng)站推廣
一、移植uboot流程
1、從半導(dǎo)體芯片廠下載對應(yīng)的demo,然后編譯測試demo版的uboot
-
開發(fā)板基本都是參考半導(dǎo)體廠商的 dmeo 板,而半導(dǎo)體廠商會在他們自己的開發(fā)板上移植好 uboot、linux kernel 和 rootfs 等,最終制作好 BSP包提供給用戶。我們可以在官方提供的 BSP 包的基礎(chǔ)上添加我們的板子,也就是俗稱的移植。
-
一般 uboot 中需要解決串口、NAND、EMMC 或 SD 卡、網(wǎng)絡(luò)和 LCD 驅(qū)動,因為 uboot
的主要目的就是啟動 Linux 內(nèi)核,所以不需要考慮太多的外設(shè)驅(qū)動。
2、在uboot中添加自己的硬件
(1)添加默認配置文件
- 在include/configs/ 目錄下創(chuàng)建配置文件 (復(fù)制mx6ull_14x14_evk_emmc_defconfig,然后重命名) 。
(2)添加開發(fā)板對應(yīng)的頭文件
- 目 錄 include/configs 下 添 加開發(fā)板對應(yīng)的頭文件( 復(fù) 制include/configs/mx6ullevk.h,并重命名)
- mx6ull_alientek_emmc.h 文件中基本都是“CONFIG_”開頭的宏定義,這也說明 mx6ull_alientek_emmc.h 文件的主要功能就是配置或者裁剪 uboot。如果需要某個功能的話就在里面添加這個功能對應(yīng)的 CONFIG_XXX 宏即可,如果不需要某個功能的話就刪除掉對應(yīng)的宏即可
(3)添加開發(fā)板對應(yīng)的板級文件夾
- 復(fù)制 board/freescale / mx6ullevk,將其重命名 mx6ull_alientek_emmc,
- 將 其 中 的 mx6ullevk.c 文 件 重 命 名 為mx6ull_alientek_emmc.c
- uboot 中每個板子都有一個對應(yīng)的文件夾來存放板級文件,比如開發(fā)板上外設(shè)驅(qū)動文件等
(4)修改開發(fā)板對應(yīng)的板級文件夾內(nèi)容
- 修改 mx6ull_alientek_emmc 目錄下的 Makefile
- 修改 鏡像配置文件 mx6ull_alientek_emmc 目錄下的 imximage.cfg
- 修改 mx6ull_alientek_emmc 目錄下的 Kconfig
(5)修改U-Boot 圖形配置文件
(6)修改相關(guān)驅(qū)動(LCD 網(wǎng)口)
(7)編譯驗證
(8)設(shè)置bootcmd 和 和 bootargs 環(huán)境變量
二、linux內(nèi)核kernel移植流程
1. 在 Linux 內(nèi)核中查找可以參考的板子,編譯出參考板子對應(yīng)的 zImage 和.dtb 文件
2. 使用參考板子的 zImage 文件和.dtb 文件在我們所使用的板子上啟動 Linux 內(nèi)核
- 能啟動的話就萬事大吉
- 不能啟動需要調(diào)試 Linux 內(nèi)核,Linux 內(nèi)核啟動用到的外設(shè)為,DRAM(Uboot 都初始化好的)和串口
3.添加開發(fā)板信息
(1)添加開發(fā)板默認配置文件
- arch/arm/configs 目錄下的 imx_v7_mfg_defconfig重新復(fù)制一份 ,命名為 imx_alientek_emmc_defconfig
(2)添加開發(fā)板對應(yīng)的設(shè)備樹文件
- 入目錄 arch/arm/boot/dts 中,復(fù)制一份 imx6ull-14x14-evk.dts,然后將其重命名為 imx6ull-alientek-emmc.dts
(3)修改相應(yīng)的驅(qū)動
- NAND Flash、EMMC、SD 卡等驅(qū)動官方的 Linux 內(nèi)核都是已經(jīng)提供好了,基本不會出問題。重點是網(wǎng)絡(luò)驅(qū)動