lv12 uboot源码配置编译 8

2023-12-17

目录

1 uboot源码获取

2 uboot特定

3 uboot源码结构

3.1 平台相关代码

3.1.1 arch

3.1.2 board

3.2 平台无关代码

3.2.1 common下放的都是uboot的命令

3.3 配置文件、帮助文档、示例程序、工具等:

4 uboot配置

5 uboot编译

5.1 编译uboot

5.2 清除编译过程中生成的中间文件


1 uboot源码获取

uboot源码下载

http://www.denx.de/wiki/U-Boot/

uboot版本命名

前期:uboot-1.2.3

现在:uboot-2008.01

uboot版本选择

支持对应的硬件平台    (一般选择与硬件芯片年份差不多的uboot)

相对成熟的版本(资料多)

2 uboot特点

  • 代码结构清晰
  • 支持丰富的处理器与开发板,易于移植
  • 支持丰富的用户命令
  • 支持丰富的网络协议
  • 支持丰富的文件系统
  • 支持丰富的设备驱动
  • 更新活跃、用户较多、资料丰富
  • 开放源代码
  • 较高的稳定性
  • 不具有通用性(不同的处理器、开发板uboot不可通用)

3 uboot源码结构

3.1 平台相关代码

即与CPU架构或开发板硬件相关的源码,硬件的改动对应的代码也需要进行修改

  • arch:与CPU架构相关的源代码(arm x86 ...)
  • board:与开发板相关的源代码,包含各种官方评估板对应的源码
  • ...

3.1.1 arch

我们开发板需要的是armv7

3.1.2 board

不过找不到我们的开发板,不可能把所有公司的开发板都包含,主要是评估板,我们可以在官方评估板origen中修改即可使用,(找官方与4412相关的)

3.2 平台无关代码

  • api:    应用接口
  • common:    uboot命令源码
  • disk:    对磁盘设备的支持
  • drivers:    设备驱动源码
  • fs:        对文件系统的支持
  • include:    头文件
  • lib:    库
  • net:    对网络协议的支持
  • post:    上电自检程序
  • ... ...

3.2.1 common下放的都是uboot的命令

3.3 配置文件、帮助文档、示例程序、工具等:

  • README:    说明文档
  • doc:    帮助文档
  • Makefile:    编译管理
  • CREDITS:    开发者
  • COPYING:    版权
  • examples:    示例程序
  • tools:    工具     ... ...

前期只需要了解结构会用,并不需要去会写uboot

4 uboot配置

指定当前使用的硬件平台

make <board_name>_config 

注1:<board_name> 为当前使用的开发板的名字
注2:执行该命令的 前提是uboot源码支持该开发板
指定编译uboot源码使用的编译器
在uboot源码顶层目录下的Makefile中指定(CROSS_COMPILE变量)

示例

5 uboot编译

5.1 编译uboot

make     

注1:该命令必须在uboot源码的顶层目录下执行

注2:该命令执行后在uboot源码顶层目录下生成u-boot.bin

示例:

注意一定要是顶层的makefile编辑

选择编译器

让条件成立

执行make(只编译与origin相关的代码)

5.2 清除编译过程中生成的中间文件

make clean     

make distclean      //删除所有

注1:该命令必须在uboot源码的顶层目录下执行

可以删除生成的.o的中间文件删除,但是最终u-boot不会删除

6 练习

uboot特点?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lv12 uboot源码配置编译 8 的相关文章

  • 双向链表,单向链表//循环

    head h ifndef HEAD H define HEAD H include
  • thttpd嵌入式www服务工具的使用

    thttpd是一个非常小巧的轻量级web server 它非常简单 仅仅提供了HTTP 1 1和简单的CGI支持 在其官方网站上有一个与其他web server 如Apache Zeus等 的对比图 Benchmark 可以参考 此外 th
  • linux的应用线程同步与驱动同步机制

    同步机制 在 Linux 应用程序和内核中的驱动程序中 有一些常见的同步机制用于实现线程或进程之间的同步和数据访问保护 下面是它们的一些主要机制 Linux 应用程序中的同步机制 互斥锁 Mutex 用于保护共享资源 确保只有一个线程可以访
  • C语言实现DFT计算

    文章目录 一 DFT计算公式 二 DFT程序实现 一 DFT计算公式 这里就不对DFT概念进行叙述 直接上计算公式 其中N为DFT点数 公式如此 但是在程序中并非如此运算 而是利用欧拉公式对DFT的计算公式进行了转化 转换后公式变为 利用转
  • RTOS专栏(一) —— rt-thread简单介绍和qemu使用

    本期主题 简单介绍rt thread 介绍qemu和rt thread怎么配合使用 qemu的简单例子 rt thread qemu 1 rt thread介绍 2 qemu介绍 3 搭建rt thread和qemu开发环境 4 简单例子
  • FPGA UART仿真

    摘自威三学员尤凯元 tb文件 Copyright c 2014 2019 All rights reserved Author Youkaiyuan v3eduyky 126 com wechat 15921999232 File tb t
  • 海思3559:uboot顶层Makefile分析

    顶层Makefile的内容主要结构为 确定版本号及主机信息 实现静默编译功能 设置各种路径 设置编译工具链 设置规则 设置与cpu相关的伪目标 需要注意的是 结构顺序并不代表代码执行顺序 1 确定版本号及主机信息 VERSION 2016
  • 使用 Microchip SAM9X60 OTP 存储板卡的MAC地址和序列号

    1 介绍 SAM9X60 处理器有部分OTP One Time Programming Aera 可用于存储user data 这样的话我们就可以将板卡 MAC Address和 SN 序列号写到固定的OTP User Area中 为什么要
  • shell指令,通过函数实现数组求和,通过函数获取用户uid和gid

    一 实现一个对数组求和的函数 数组通过实参传递给函数 num 0 read p 请输入一组数据 a arr function add for i 0 i lt arr i do num arr i done return num add a
  • ARM架构学习(二)——流水线

    本期主题 ARM流水线 往期地址 ARMv7架构学习 ARM流水线 1 流水线概念 2 指令的分解步骤 1 流水线概念 硬件资源总是有限的 有一个明显的方法能改善硬件资源的利用率 这就是pipeline 流水线 技术 其实就是在当前指令结束
  • STM32 HAL——GPIO

    HAL的代码规范建议 以下内容是我自己参照HAL做的总结 如果公司有固定的编码规范 就跟公司保持一致 如果没有 那就推荐和所用库保持一致 注意 因人而异 并不具有普遍适用性 HAL库有如下代码规范 1 目录名除了专有词汇外 统一是单词首字母
  • 嵌入式linux ARM启动地址

    我按照一些文档通过 sdcard 在 ARM 板 例如 Freescale Vybrid tower 上启动嵌入式 Linux 在文档中 有构建 uImage 并将 u boot 写入 sdcard 的步骤 如下所示 sudo dd if
  • Linux编译 |入口点无效

    我正在编译一个linux内核使用 mipsel 工具链 一切工作正常 除了最后一点指出无效的入口点 sh 0 Can t open arch mips boot tools entry rm f arch mips boot vmlinux
  • 如何从 U-Boot 启动裸板二进制文件?

    我们如何从 U Boot 启动独立的裸板二进制文件 不是使用 U Boot 环境运行的独立二进制文件 而不是 Linux 内核 我的要求是使用我的二进制文件重新初始化主板和驱动程序 我可以用我的二进制文件替换启动介质 此处为 NOR 闪存
  • arm Linux中dma的cache管理

    概述 前两周有人询问DMA下的cache操作和dma coherent 以前零碎看过代码 临时找 还没有找到 这两天整理了调用流程 也找到了dma coherent的用法 Linux的文档里没有详细说明dma coherent的用法 根据代
  • linux使用文件描述符0、1和2来处理输入和输出

    文件描述符012 在Linux中 文件描述符0 1和2分别代表标准输入 stdin 标准输出 stdout 和标准错误 stderr 它们用于处理进程的输入和输出 文件描述符0 stdin 文件描述符0是进程的标准输入 通常用于读取用户的输
  • 在 U-Boot 中使用 I2C 读取多个字节

    我的 Freescale p1022tw 板的 I2C 驱动程序有问题 U Boot 的控制台上有一个从 I2C 设备读取的命令 i2c md chip address 0 1 2 of objects 当我从 id 为 0x60 地址为
  • 使用 U-boot 将 Coral Dev Kit EMMC 安装为 USB

    我按照这个答案的说明进行操作 备份和恢复eMMC https stackoverflow com questions 64176284 backing up and restoring the emmc也在这里描述 https develo
  • u-boot:搬迁

    这是一个与u boot相关的基本问题 为什么 u boot 代码会自行重新定位 好吧 如果 u boot 是从 NOR flash 或启动 ROM 空间执行 那么这是有道理的 但如果它已经从 SDRAM 运行 为什么它必须再次重新定位自己呢
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015

随机推荐