| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux系统移植:U-Boot 工程创建 -> 正文阅读 |
|
[系统运维]Linux系统移植:U-Boot 工程创建 |
文章目录Linux系统移植:U-Boot 工程创建本章用于分析 U-Boot 的工程文件目录功能,以及创建一个 U-Boot 工程做开发,此处的 U-Boot 以正点原子修改的 U-Boot 作为示例 一、U-Boot 文件目录解压正点原子的 uboot 工程文件(工程下载链接 0 积分),目录如下: 我们在 linux 下编译一遍源码,然后把编译后结果放到 win 下,方便观看,编译后文件目录如下: 编译后比编译前多了许多文件,对文件和文件夹做一个梳理: 关键文件夹: 关键文件: 以上就是其关键文件,第二节对他其中 主要文件功能进行一个仔细的分析 二、U-Boot 目录解析2.1 arch文件夹文件夹存放着和各种芯片架构的有关文件 imx6ull 是 arm 架构的芯片,所以看一下 arm 文件夹 arm 文件夹内和 imx 有关的是 imx-common 文件夹;同时 cpu 文件夹下有个名为 uboot.lds 的链接脚本文件,这个就是 ARM 芯片所使用的 u-boot 链接脚本文件 cpu 文件夹下存放着各种具体内核架构的配置信息,比如 armv7 就是和 ARM-V7 架构有关的配置信息! 2.2 board 文件夹该文件夹存放具体型号板子的适配 uboot imx6ull 在飞思卡尔的板子内,进入可以看到 后面移植修改到原子的板子上,就是在这个基础上进行修改 2.3 config 文件夹因为 uboot 是可配置的,所以此文件夹为 uboot 配置文件 我们修改时直接基于厂商的配置文件进行修改就行,此处对于原子的开发板来说,我们基于 mx6ull_14x14_ddr512_emmc_defconfig 和 mx6ull_14x14_ddr256_nand_defconfig 这两个文件中的一个进行修改就行(一个是 NAND ,一个是 EMMC),编译 uboot 前使用如下指令根据配置文件配置 uboot
2.4 .u-boot.xxx_cmd 文件u-boot.xxx_cmd 是由一系列编译生成的文件,包含一些执行命令,方便调用 比如 u-boot.imx 是在 u-boot.bin 文件的头部添加了 IVT、DCD 等信息生成的文件,这个生成工作是由文件 .u-boot.imx.cmd 来完成的,此文件内容如下
这条命令使用工具 mkimage 就是读取文件 imximage-ddr512.cfg.cfgtmp 里面的信息,然后将其添加到文件 u-boot.bin 的头部,最终生成 u-boot.imx 2.5 顶层Makefile 文件图中是顶层 Makefile 文件,Makefile 支持嵌套的(顶层 Makefile 可以调用子目录中的 Makefile 文件)
2.6 u-boot.xxx 文件u-boot.xxx 是一系列编译前后的文件,如下: 文件含义如下
2.7 .config文件uboot 配置文件, make xxx_defconfig 命令配置 uboot 以后就会自动生成,该文件中都是以 CONFIG_ 开头的配置项,这些配置项就是 Makefile 中的变量,因此后面都跟有相应的值和使能标志,用于 Makefile 调用 2.8 README 文件README 文件是官方或者厂商提供的描述了 uboot 的详细信息,包括 uboot 该如何编译、uboot 中各文件夹的含 义、相应的命令等等,把它当说明书看就行 三、U-Boot 过程创建我们将前几章编译后的 uboot 源码在 Ubuntu 下面用 vscode 创建一个工程,方便进行二次开发,创建工程步骤如下: 3.1 打开工程文件夹vscode 打开工程文件夹: 打开后可以看到一堆文件,其中我们有很多文件不需要,所以要建立构建关系,排除一些不需要的文件,不加入工程构建中去 3.2 保存工作区将工程保存为一个工作区 命名工作区,保存在源码文件根目录下 3.3 建立构建关系在 VSCode IDE上建名为 .vscode 的文件夹,同时在 .vscode 文件夹中新建一个名为 settings.json 的文件,文件输入如下代码:
search.exclude 里面是需要在搜索结果中排除的文件或者文件夹,files.exclude 是左侧工程目录中需要排除的文件或者文件夹,本章要排除的文件如下:
保存 json 文件排除完成,我们刷新一下 vscode 工作区看看,可以看到不需要的文件和文件夹已经排除出工作区 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 2:40:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |