前言

最近在搭建NUC972的虚拟机编译环境时遇到了一些小问题,通过网络各种搜索关于uboot编译的说明没有太详细的说明,最后各种百度搜索解决了此问题,把具体步实现步骤分享一下。

1. uboot 简介

1.1. uboot是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机结构,包括ARM、AVR32、MIPS、x86等。这也是一套在GNU通用公共许可证之下发布的自由软件。
1.2. uboot在嵌入是linux系统中起引导作用,类似于PC主机的Bios,可以在系统上电时加载一些基础配置驱动。
1.3. uboot的工作模式有启动加载模式和下载模式。启动加载模式是Bootloader的正常工作模式,嵌入式产品发布时,Bootloader必须工作在这种模式下,Bootloader将嵌入式操作系统从Flash中加载到SDRAM中运行,整个过程时自动的。下载模式就是Bootloader通过某些通信手段将内核映像或根文件系统映像等从PC机中下载到目标板的Flash中。

2. NUC972 uboot 编译环境搭建步骤

步骤1. 从新唐官网下载最新的VMware虚拟机环境

官方默认的系统是ubuntu 18.04.3 LTS
我是用的是win10系统+VMware Workstation 15 Player;
新唐VMware虚拟机环境下载链接:
下载虚拟机环境后,打开VMware选择加载文件,这之前需要将官方压缩包解压,首次用VMware打开并加载一次环境后,以后再打开VMware时就可以直接选择了。


官方系统默认的登录密码是:user


登录成功后,我们使用快捷键“Ctrl+Alt+T”打开终端,到此我们的使用环境准备好了。

步骤2. NUC970_BSP 开发工具包安装

我使用的bsp包是旧的nuc970bsp-release-20151111,里面有一个nuc970bsp.tar.gz文件,通过Vmware共享文件方式将其上传至虚拟机/home/user/SharFile/Downloads文件夹下进行解压锁,我们接着再上一步打开的终端里输入以下指令,如下图所示

//--------------------------------------------------------------------
cd /home/user/SharFile/Downloads        //进入根目录
tar zxvf nuc970bsp.tar.gz;               //解压缩文件到当前目录下
sudo ./install.sh                       //进入root权限,然后运行安装bsp
//--------------------------------------------------------------------

中间过程会提示编译器arm_linux_4.3已经存在,默认输入Y回车就行。
下一步就是bsp本体包安装路径确认,具体操作如下:

//--------------------------------------------------------------------
Please enter absolute path for installing(eg:/home/<user name>) :
/home/user/SharFile
//--------------------------------------------------------------------

我们通过终端在/home/user/SharFile列出子目录发现nuc970bsp文件夹,进入列出子目录发现开发包已经安装完成;

步骤3. 编译工具下载

//--------------------------------------------------------------------
//因为我用的虚拟机是64位的,而新唐的这个开发环境是在32位环境下运行的,要安装32位的库文件
sudo apt-get update
sudo apt-get install lib32z1
sudo apt-get install lib32stdc++6
sudo apt-get install lib32ncurses5-dev
//--------------------------------------------------------------------

步骤4. 使用系统自带的vim编辑器配置gcc环境变量

操作提示:vim的操作指令参考链接

//设置环境变量
sudo vim /etc/profile
//在打开文件的末尾添加如下指令
export CROSS_COMPILE=arm-linux-
export PATH=$PATH:/usr/local/arm_linux_4.3/usr/bin
//保存退出
source /etc/profile

步骤5. 编译uboot

首先进入到nuc970bsp/uboot文件夹下
输入以下指令

//设置环境变量
make O=/home/user/SharFile/nuc970bsp/build/nuc970_uboot/ distclean
make O=/home/user/SharFile/nuc970bsp/build/nuc970_uboot/ nuc970_config
make O=/home/user/SharFile/nuc970bsp/build/nuc970_uboot/ all

3. 总结

通过以上步骤我们实现了uboot的编译,最新的官方虚拟环境包内有最新bsp包,可以参考环境包内路径/home/user/NUC970_Buildroot-master/README.txt,里面描述的uboot的生成方式有所改变,希望有兴趣的小伙伴可以继续研究下去共同进步。

新唐NUC972 uboot 编译环境搭建相关推荐

  1. 【Linux】新唐NUC977系统编译及烧写流程

    新唐NUC977系统编译及下载流程 前言 一.UBoot的编译 二.Kernel的编译 三.文件系统的制作 四.系统的烧录 烧录u-boot-spl.bin 烧写u-boot.bin 烧写env.tx ...

  2. 全志R16_Tina SDK编译环境搭建

    2. Tina SDK 目录结构 ├── tina │ ├── abi │ ├── app │ ├── bionic │ ├── build │ ├── device │ │ ├── softwinn ...

  3. linux下guide编译不了,全志R16编译环境搭建指南,全志R16_Tina SDK Quick Start Guide

    2. Tina SDK 目录结构 ├── tina │ ├── abi │ ├── app │ ├── bionic │ ├── build │ ├── device │ │ ├── softwinn ...

  4. PowerPC uboot交叉编译环境搭建说明

                                                                    MPC8640D uboot交叉编译环境搭建说明 目录 1 概括... ...

  5. Linux环境配置编译orange,orangepi zero2编译环境搭建及传感器测试

    一.编译环境搭建及版本镜像编译 我这里使用的是官方手册上提供的linux SDK,包括uboot.linux内核及根文件系统均是orangePI官方的代码包,但在使用的一开始,我就遇到一个让人比较郁闷 ...

  6. Runtime编译环境搭建

    Runtime编译环境搭建 首先,需要准备的资源:runtime完整源码,这个可以在苹果开放资源网页找到.点进这个页面,接着点击macOS下面的最新版本,在新页面中command+f搜索objc即可找 ...

  7. Windows编译环境搭建(VS2010)

    引言:   本篇文章基于教程目的(由于windows和linux相关环境搭建篇幅过大,在博客中做这些讲解),主要描述Windows的发展历程和编译环境搭建(基于 Visual Studio 2010版 ...

  8. FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译

    FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译 什么是Firmament? Firmament (FMT) 是一款基于模型设计 (Model-Based-Design, M ...

  9. 鸟人的Android揭秘(3)——Android 编译环境搭建

    一.主机环境要求 要顺利编译 Android 源代码,硬件环境和操作系统都必须满足一定的条件.官方推荐的硬件环境配置是: 编译 Gingerbread(2.3.x)及后续版本必须使用64位系统 需至少 ...

最新文章

  1. javascript优缺点_为什么要在JavaScript中使用静态类型? 优缺点
  2. 阿里云服务centOS7下安装rabbitmq
  3. Linux 编译安装Boost
  4. vue父子组件生命周期执行顺序_关于Vue组件的生命周期及执行顺序
  5. 微信圈子将于12月28日停止运营,网友:不是微信朋友圈?
  6. [GO]无缓冲通道(unbuffered channel)
  7. 无限服务器不装显卡能用吗,云服务器能装显卡吗
  8. apache2.2后修改最大并发连接数
  9. js调用数科阅读器_js调用ocx控件(读写IC卡
  10. hdu 1864 最大报销额
  11. 如何区分电梯卡为id卡ic卡_怎么看小区门禁卡是ic还是id
  12. 测量学matlab使用心得,测量学实习心得体会4篇
  13. Flutter 淡入淡出效果
  14. 认识区块链——思维导图总结
  15. 分销小程序开发|分销系统开发是怎么裂变的?
  16. vivox21支持html,【vivoX21评测】看完vivo X21这20个重点,我忍不住剁手_vivo X21_手机评测-中关村在线...
  17. Centos7安装Nethogs网络监控软件
  18. fseek 函数 详解
  19. Exceptional C++读书笔记:编译器防火墙与Pimpl惯用法(一)
  20. 2022年全球市场超高频射频识别嵌体总体规模、主要生产商、主要地区、产品和应用细分研究报告

热门文章

  1. android和和jni的关系,Android.mk与jni目录的关系
  2. JSP中定时器的使用
  3. 机器学习之向量空间的基本概念
  4. Python基本数据类型有哪些
  5. 邓应海:3.25晚间黄金一波大涨,后市又该怎么操作
  6. 商汤科技3D人脸识别技术加持智能门锁,帮你解放双手
  7. 介绍一项让 React 可以与 Vue 抗衡的技术
  8. 鼠标点击特效——富强、民主、文明、和谐.....
  9. LiveVideoStackCon 2018 打造多媒体人自己的盛宴
  10. 鼠标滑动变色(discolor)