当前位置: 首页 > article >正文

IMX6ULL学习整理篇——UBoot的一些基础知识(1.编译流程)

前言

笔者整理了最近刷IMX6ULL的一些学习笔记,这里打算稍微整理一下东西发上来作为作为一个补充

正文

大部分而言,当我们拿到源码的时候,一般都是——先使用make来生成一份针对我们目标开发板的配置。举个例子,正点原子针对他们的开发板(EMMC作为类似于我们电脑的硬盘,DDR类似我们电脑的内存),使用的就是他们自己配置的mx6ull_14x14_ddr512_emmc_defconfig文件。也就是说,开始编译uboot之前,必须告诉uboot我们准备部署uboot的板子上。

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig 

有一个最绝的偷懒办法:直接把我们环境变量的定义,也就是ARCH和CROSS_COMPILE的定义直接扔进Makefile,但是中间有一段很长的判断ARCH和CROSS_COMPILE的Make逻辑。所以放到这个片段的下面去,至于具体放到哪一行,参考其他人的博客自行分析,每一个人使用的UBoot版本不一样,不要生搬硬套

生成的就是一个.config文件,这个文件就是我们的uboot编译生成相关文件的一个重要参考。

随后,如果我们有微调(比如说改一下UBoot使用的NFS协议)可以使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig来做微调。这表明我们还需要更加细致的调整。

往往最后,就是进行全速的编译。根据你的情况,可以使用指令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j($nproc)或者是明确的线程数把这个事情办了。

如果你听不懂,我再举一个例子——我自己有一份配置文件,放在了configs/下,名称是mx6ull_charliechen_emmc_defconfig(这个文件需要自己改出来,咋改?问客服,厂商找他们要uboot的配置文件,或者自己画的板子就自己看着按照使用的原厂商的样例板的配置文件自己魔改)

需要注意的是——我们的名称命名最好是按照:板子的芯片名称——我们自己的产品型号——使用的内存芯片种类——使用的固化存储种类——其他特化要点来进行命名,不是规范,而是为了让自己的配置区分开来,不给自己埋坑。关于如何魔改,笔者有一份自己写的参考:IMX6ULL驱动开发uboot篇03:UBoot移植_正点原子imxull uboot网卡功能-CSDN博客

下一步,就是编译生成.config文件,我这个时候就会输入

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_charliechen_emmc_defconfig

基本格式就是——make $(BOARD_DEFCONFIG_NAME)。等待生成好了config文件之后,如果还有调整,我建议使用GUI(也就是使用menuconfig进行配置)而不是进config文件硬改,下一次生成的时候你的config文件就会全部丢失,不如进GUI中好好配置一轮,相关文件会辅助存储。

最后一步就是校验我们的UBoot编译能否通过。

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j($nproc)

这个就跟我们的板子没有关系了。


http://www.kler.cn/a/588656.html

相关文章:

  • 使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
  • 电机控制常见面试问题(十一)
  • 【CSS】一、基础选择器
  • 蓝桥杯好题推荐---激光炸弹
  • 【蓝桥杯每日一题】3.16
  • 【Agent】OpenManus 项目架构分析
  • 技术栈分享之----Swagger
  • 专题|Python贝叶斯金融数据应用实例合集:随机波动率SV模型、逻辑回归、参数更新、绩效比较BEST分析亚马逊股票、普尔指数...
  • 思维训练让你更高、更强 |【逻辑思维能力】「刷题训练笔记」假设法模式逻辑训练题(6-16)
  • JVM常用概念之即时常量
  • Bash语言的智能家居
  • airtest用法
  • 网络VLAN技术详解:原理、类型与实战配置
  • 重生之我在学Vue--第16天 Vue 3 插件开发
  • Django中的查询条件封装总结
  • 蓝桥杯——车牌(dfs全排列问题)
  • 【R语言入门】向量,存储和计算
  • Oracle Linux Server 7.9安装fail2ban
  • 【QA】建造者模式在Qt有哪些应用
  • Axure设计之动态折线图教程(中继器)