文章目录
- 一、官方uboot移植
- 1.Uboot系统复制到Ubuntu系统
- 2.解压Uboot系统
- 3.编译Uboot系统
- 4.生成可执行文件
- 5.将u-boot.bin烧录到SD卡
- 6.SD卡插入到板子,启动方式选择SD卡
- 7.复位板子,查看打印信息,编译时间是否正常
- 二、根据官方提供的uboot添加自己的板子
- 1.添加默认配置文件
- 2.修改下shell脚本
- 3.打开defconfig文件
- 4.添加头文件
- 5.添加板级文件
- 6.uboot图形配置
- 7.编译后验证
一、官方uboot移植
1.Uboot系统复制到Ubuntu系统
2.解压Uboot系统
3.编译Uboot系统
💦方式1:直接输入指令或者创建shell脚本。
💦方式2:直接在顶层makefile中,给下图两个变量赋值
4.生成可执行文件
💦移植uboot需要关注的地方,下面3点要和官方保持一致
1)DDR或者叫DRAM
2)串口
3)SD,EMMC,NAND存储
5.将u-boot.bin烧录到SD卡
1)使用imxdowload软件(裸机使用)烧录到SD上。
2)查看fdisk -l查看磁盘
3)输入执行指令
6.SD卡插入到板子,启动方式选择SD卡
7.复位板子,查看打印信息,编译时间是否正常
💦可以使用一些指令查看是否移植正常。
二、根据官方提供的uboot添加自己的板子
💦准备工作:使用VScode打开uboot,然后添加.vscode到工程中.vscode内屏蔽一些不必要文件。
1.添加默认配置文件
💦借鉴官方的6ull evk开发板的配置文件,复制官方的*defconfig,更改为自己的板子的defconfig。
💦目录如下:
2.修改下shell脚本
💦修改下shell脚本,defconfig配置文件修改成自己的defconfig配置文件,然后编译验证下,能否编译通过。
3.打开defconfig文件
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
CONFIG_ARM=y
CONFIG_ARCH_MX6=y
CONFIG_TARGET_MX6ULL_14X14_EVK=y
CONFIG_CMD_GPIO=y
配置文件分析:
💦board/freescale/mx6ullevk/imximage.cfg
Uboot编译后,在u-boot.imx中包含头部信息,这个信息就是imximage.cfg,文件内容如下:
💦更改信息,第一行和第四行,更改为自己的板子
4.添加头文件
💦添加头文件,不同板子需要配置的信息,一般在头文件里配置,每个板子有一个。
💦对于NXP官方的6ull开发板,这个头文件是mx6ullevk.h,这个文件在include/config文件下复制官方的头文件,改成自己板子的头文件。
5.添加板级文件
💦也就是3步骤里的路径,将board文件里的mx6ullevk文件夹复制一份,更改成自己的板级文件名称。
💦打开文件夹,更改mx6ullevk.c文件名字。
💦修改子makefile
更改为
💦修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件。
💦原文件
if TARGET_MX6ULL_14X14_EVK || TARGET_MX6ULL_9X9_EVK
💦在configs/mx6ull_alientek_emmc.defconfig文件中
💦修改后
💦修改MAINTAINERS文件
6.uboot图形配置
💦Uboot启动配置昨晚,还差最后一步,修改uboot图形配置文件目录:arch/arm/cpu/armv7/mx6/Kconfig,在文件中添加下述内容。
7.编译后验证
1.查看是否生成对于的.o文件
2.查看头文件是否正确被多个文件引用
3.烧录到SD卡,启动uboot