ARM X210 官方 uboot 配置编译实践

news2024/11/28 5:31:35

一、X210官方uboot配置编译实践1

1. 找到官方移植好的 uboot(BSP 概念)

(1) 源头的源代码是 uboot 官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的 SoC 对应的移植版本。

(2) SoC 厂商在推出一款 SoC 后,厂商的工程师会去 uboot 官网下载一个 uboot,根据自己的 SoC 进行第一步的移植,移植的目标是厂商推出的开发板。(譬如三星的 S5PV210 芯片厂商出的开发板就叫 SMDKV210 ).所以三星的工程师移植的 uboot 是根据他们自己的 SMDKV210 开发板移植的。

(3) 具体的开发板供应商(譬如 X210 的生产商深圳市九鼎科技)首先购买三星的 SMDKV210 开发板,然后进行裁剪(把一些无用的接口功能裁剪去,配置降低一下,某些配置会被替换)。硬件替换和裁剪之后生成的新的开发板(譬如 X210)和三星官方的 SMDKV210 有所不同,因此 uboot 也不同。但是因为 SoC 是相同的,所以相似度至少有 60% 以上。所以具体开发板供应商会以三星 SMDKV210 中移植的 uboot 为蓝本,来移植得到自己的开发板的一个 uboot 移植。我们买 X210 开发板时厂商光盘中带的 BSP 中的 uboot 源码就是他移植过的。

总结:uboot 可以有 3 种获取途径:uboot 官方、SoC 官方、具体开发板的官方


二、X210 官方 uboot 配置编译实践2

1、在 linux 源生目录下配置编译

(1) X210 移植过的 uboot 在开发板光盘的 BSP 中。
在这里插入图片描述

(2) BSP 就是 board support package (板级支持包,一般由开发板供应商提供),里面的内容就是这个开发板的所有相关的源代码、文档、教程等。

(3) 将整个 BSP 打包文件弄到 linux 的源生目录中去解压分析,不要在 windows 中的共享文件夹中解压开。(除非你的代码只在 windows 下去分析而不去编译,如果你想编译工程就一定不要在 windows 共享文件夹下,否则会出错)

(4) tar -jxvf qt_x210v3_130807.tar.bz2

(5) 我们在 linux 下维持一份 uboot,在 windows 下也维持一份 uboot,在我们没有开始任何工作之前,这两份 uboot 内容一样的,都是九鼎官方的 uboot 内容。我们这样做目的是:在 linux 中进行编译、在 windwos 下进行代码分析和观看。(windwos 下有 SourceInsight 等很好的工具辅助我们看代码、编辑代码,在 linux 下编译和看代码都很麻烦·····)


2、配置

(1) uboot 和 linux kernel 等复杂项目,都不能直接编译,都要先配置才能编译。

(2) uboot 也要先配置,配置方法是:首先 cd 进入 uboot 源码的根目录,然后在根目录下执行: make x210_sd_config 。执行配置命令后,如果出现:Configuring for x210_sd board...
说明配置好了,如果不是这个,是别的说明配置出错了。

root@ubuntu:/home/aston/workspace/uboot_bsp/uboot_jiuding/uboot# ls include/configs/
x210_nand.h  x210_sd.h
root@ubuntu:/home/aston/workspace/uboot_bsp/uboot_jiuding/uboot# make x210_sd_config
Configuring for x210_sd board...
root@ubuntu:/home/aston/workspace/uboot_bsp/uboot_jiuding/uboot# 

3、编译得到uboot.bin

(1) 编译之前一定要注意检查 arm-linux-gcc 对不对,检查分 2 步:
第一步:检查当前编译环境中有没有安装合适的 arm-linux-gcc 。我们装的是 arm-2009q3 ,因为这个是三星官方、九鼎官方开发 uboot 时使用的。
第二步:检查当前目录下(uboot 根目录)的 Makefile 中编译器的设置是否正确。在工程的总Makefile 中会设置交叉编译工具链的路径和名字,必须确保这个路径和名字和我们自己装的一致,否则编译会出错。
在这里插入图片描述

(2) 确保了以上 2 点,即可进行编译。编译很简单,直接 make 即可。或者可以 make -j4 (多线程编译,主机如果是多核心电脑,可以尝试多线程编译,会快一些)

在这里插入图片描述


源自朱有鹏老师.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享145个ASP源码,总有一款适合您

ASP源码 分享145个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 145个ASP源码下载链接:https://pan.baidu.com/s/1gxm3rFFLu8pUhVncQga6-g?pwd7n85 提取码&#x…

HJ56、HJ58、JZ4、JZ6、JZ15、JZ17几道题

文章目录HJ56 完全数计算题目描述:具体实现:HJ58 输入n个整数,输出其中最小的k个题目描述:具体实现:JZ4 二维数组中的查找题目描述:具体实现:JZ6 从尾到头打印链表题目描述:具体实现…

springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显

springboot文件上传&#xff0c;单文件上传和多文件上传项目结构及pom.xml创建文件表单页面编写javabean编写controller映射MultipartFile类RequestPart注解controller代码application.properties中的文件上传配置遍历数据显示页面运行显示项目结构及pom.xml pom.xml: <dep…

SQL用法详解补充

本文是对上次“SQL用法详解”的一些补充&#xff0c;一些基本操作可以点击链接查看 目录 一.对表结构的常用操作 查看表结构格式 修改表结构格式 1.修改列名和类型 2.修改添加列 3.修改表删除列 4.修改表名 5.数据删除 二.总结 三.实例 解决 完整代码 一.对表结构的常用操…

TIA博途中启用或禁用DP从站或PROFINET IO设备的具体方法

TIA博途中启用或禁用DP从站或PROFINET IO设备的具体方法 在实际项目中我们会遇到这样的问题, 例如:硬件组态中配置了一个控制器和3个 PN IO设备,但是最后只用到了2个PN IO设备,这样控制器一侧无法连接到第3个PN IO设备时,CPU会产生报警,PLC的Error指示灯会一直闪烁。 那么…

蓝桥杯2021省赛Python

蓝桥杯2021省赛Python 不得不说2021的比2020的难 1.卡片 很明显&#xff0c;最先没的肯定是1或者0&#xff0c;我们只要统计到谁会消耗2022个1或者0就好了 if __name__ __main__:res1 0res0 0for i in range(1,100000):i str(i)res1 i.count(1)res0 i.count(0)if res1…

[Rust笔记] 规则宏的“卫生保健”

规则宏代码的“卫生保健”规则宏mbe即是由macro_rules!宏所定义的宏。它的英文全称是Macro By Example。相比近乎“徒手攀岩”的Cpp模板元编程&#xff0c;rustc提供了有限的编译时宏代码检查功能&#xff08;名曰&#xff1a;Mixed Hygiene宏的混合保健&#xff09;。因为rust…

pointcovn 阅读笔记

各种点云采样算法 https://blog.csdn.net/weixin_41485242/article/details/107150963 Inverse Density 1.2 Inverse Density Importance Sampling (IDIS): 这个也比较好理解&#xff0c;简而言之就是根据每个点的密度来对其重新进行排序&#xff0c;尽可能地保留密度比较低的地…

python第九章 异常笔记

和Java类似程序运行有异常的时候&#xff0c;服务器会采用系统默认的异常处理机制&#xff1a;返回信息&#xff0c;终止程序。异常的类型&#xff1a;常见异常类型&#xff1a;1.NameError&#xff1a;访问了未定义的变量2.IndexError&#xff1a;越界访问3.AttributeError&am…

网络原理-网络发展史和通信基础

目录 1.网络发展史 面向终端的计算机网络 计算机网络阶段(局域网LAN) 组网方式 计算机网络互联阶段(广域网WAN) 2.通信基础 IP地址 端口号 网络协议 协议的作用 知名协议的默认端口 协议分层 分层的作用 OSI七层模型 TCP/IP五层模型 网络设备所在分层 网络分层…

《数据结构》八大排序和拓展的排序(详细教学并提供多种版本、动态图分析)

今天&#xff0c;我将带来数据结构的排序算法&#xff0c;排序算法作为校招中常考知识点之一&#xff0c;我们必须要熟练的掌握它,对自己提出高要求&#xff0c;才能有高回报。 目录排序的概念和应用内部排序和外部排序排序算法需要掌握的知识插入排序1.直接插入排序2.希尔排序…

【教程】Python实时检测CPU和GPU的功耗

目录 前言 GPU功耗检测方法 CPU功耗检测方法 sudo的困扰与解决 完整功耗分析示例代码 转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 前言 相关一些检测工具挺多的&#xff0c;比如powertop、powerstat、s-tui等。但如何通过代码的方式来实时检测&#xf…

Unsafe Fileupload-基础篇(文件上传绕过技巧与upload-labs靶场)

数据来源 本文仅用于信息安全的学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若观众因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与本人无关。 文件上传基础 01 什么是文件上传 02 文件上传产生漏洞的原因 03 文件上传漏洞危害 0…

济人药业更新招股书:计划在A股上市,中成药业务收入持续下滑

近日&#xff0c;安徽济人药业股份有限公司&#xff08;下称“济人药业”&#xff09;递交预披露更新招股书&#xff0c;准备在上海证券交易所主板上市。据贝多财经了解&#xff0c;济人药业于2022年7月1日递交上市申请&#xff0c;此次更新了截至2022年6月30日的财务数据等信息…

Android深入系统完全讲解(42)

红色部分 pc 000007cc 代表当前 pc 指向的位置。libnative-lib.so 代表在哪个库里面。于是我 们就需要知道&#xff0c;libnative-lib.so 库的 pc 000007cc 偏移位置&#xff0c;是个什么代码。 我们从 NDK 开发包中找到 D:\android-ndk-r19c\toolchains\arm-linux-androideabi…

远程控制软件

远程控制软件1. 概述2. TeamViewer3. Todesk4. 向日葵5. AnyDesk6. Splashtop结束语1. 概述 出门在外或者工作时突然需要访问家中的电脑拿取文件或者资料时&#xff0c;是直接跑回家拿去、还是委托家里人员帮忙呢&#xff1f; 这时候你就需要一类软件来完成这个任务了&#xf…

前端图片压缩方案及代码实现

1. 为什么要进行图片压缩? 随着互联网的发展&#xff0c;图片在各种网站和应用中铺天盖地&#xff0c;运营人员在后台管理系统中上传图片时常常忽略的图片的体积大小&#xff0c;随之产生的带宽和服务器容量也大大增加&#xff0c;图片压缩的需求随之产生。 常见的压缩图片的…

【笔记】SemGCN

一. 论文总结 1.1 核心贡献 提出了一种改进的图卷积操作&#xff0c;称为语义图卷积(SemGConv)&#xff0c;它源自cnn。其关键思想是学习图中暗示的边的信道权值&#xff0c;然后将它们与核矩阵结合起来。这大大提高了图卷积的能力。其次&#xff0c;我们引入了SemGCN&#x…

GPU服务器上跑深度学习模型

1 问题来源 近期在本地 Windows 系统上跑深度学习人群计数模型时&#xff0c;由于笔记本 NVIDIA 显卡 NVIDIA GeForce GTX 1650 的专用 GPU 内存只有 4 GB&#xff0c;无法设置较大的 batchsize 进行训练&#xff0c;导致模型训练时间过长&#xff0c;且易发生内存溢出&#xf…

年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款

大家好&#xff0c;我是小悟 今天是正月初五&#xff0c;天气超级好&#xff0c;也是迎财神的日子&#xff0c;祝大家顺风顺水&#xff0c;财源滚滚&#xff0c;钱兔似锦。 既然要发财&#xff0c;那自然少不了收款咯。如果你是一个商家&#xff0c;肯定是想收款的方式越方便越…