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

Nuvoton NK-980IOT开发板 u-boot 编译

前言

  • 最近搭建了 Nuvoton NK-980IOT开发板 的开发编译环境,记录一下 u-boot 的 编译流程

  • Nuvoton NK-980IOT开发板 资源还是比较的丰富的,可以用于 嵌入式Linux 或者 RT-Thread 的学习开发

  • 开发板上电比较的容易,两根 USB 线即可,不需要额外的直流电源供电,板子比较的小巧,不占用太大的空间。

  • 开发板可以通过 USB 进行烧写,默认烧写到 SPI Flash 中,有【拨码开关】用于切换启动模式,烧写时,需要切换到 USB 模式

在这里插入图片描述

开发环境

  • Win10 64位

  • ubuntu 20.04

  • 虚拟机 VMware® Workstation 16 Pro

  • NUC980 bsp 自带的编译工具链: nuc980bsp.tar.gz,版本 gcc version 4.8.4 (GCC)

  • NUC980 uboot 2016.11 版本 : https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11

获取 u-boot

  • 打算让 Nuvoton NK-980IOT开发板 引导 RT-Thread,发现有两个 bin 文件, u-boot-spl 与 u-boot,所以想亲自编译出这两个固件来

  • u-boot 下载地址:https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11

  • 使用 git 拉取 u-boot 代码到 ubuntu 主机中

git clone https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11.git

编译工具链

  • Nuvoton NK-980IOT 的芯片是 nuc980 32位 ARM9 系列的CPU,需要使用较老版本的gcc 交叉编译工具链,这个工具链,在 Nuvoton 提供的 软件包中可以找到

在这里插入图片描述

  • 方法是 进入官方网站 https://www.nuvoton.com.cn/,然后搜索 nuc980,找到 相关的软件,下载 NUC980_Linux-4.4_BSP 软件包

  • 解压缩 NUC980_Linux-4.4_BSP_v1.05.000.zip,然后把 解压后的 nuc980bsp.tar.gz 复制到 ubuntu Linux 主机中,在 ubuntu Linux 主机中解压缩 nuc980bsp.tar.gz

  • 解压缩命令: tar xzf nuc980bsp.tar.gz -C /home/zhangsz/nuc980,命令后面的 -C /home/zhangsz/nuc980 为指定的解压缩路径,不指定会解压缩在当前的目录下。

zhangsz@zhangsz:~/nuc980d$ cd nuc980bsp/
zhangsz@zhangsz:~/nuc980d/nuc980bsp$ ls
arm_linux_4.8.tar.gz  image.tar.gz  install.sh  rootfs.tar.gz
  • 这里只需要再次解压缩 arm_linux_4.8.tar.gz 即可,不需要使用 install.sh

  • 解压缩 arm_linux_4.8.tar.gz 命令 tar xzf arm_linux_4.8.tar.gz -C /home/zhangsz/nuc980/tools,解压缩到 指定目录下

  • 配置gcc 的环境变量,我这里修改 /ect/profile 的方式,

  • sudo vim /etc/profile, 文件最后追加 export PATH=$PATH:/home/zhangsz/nuc980d/tools/arm_linux_4.8/bin

  • wq 保存后,然后 source /etc/profile ,交叉编译工具链即可生效

在这里插入图片描述

  • 可以输入 $ arm-linux-gcc -v 验证 交叉编译工具链 环境变量配置成功

在这里插入图片描述

编译 u-boot

  • 进入 uboot 的目录下,执行

  • 1、$ make distclean 清理工程

  • 2、 $ make nuc980_iot_defconfig 开发板默认配置

  • 3、 $ make -j4 进行编译

编译 u-boot 产物

  • 编译后,有两个产物,可以复制出来,用于下载到 开发板

在这里插入图片描述

  • 1、 u-boot.bin

  • 2、u-boot-spl.bin

烧写 u-boot 与 u-boot-spl

  • 如果开发板已经烧写过镜像,并且已经开机,就不需要每次都全部擦除一遍。

  • 这里使用 NuWriter 进行 USB 烧写

  • 烧写前,需要开发板 波动拨码开关,切换到 【USB 启动】模式,点击一下 【复位键】

  • u-boot-spl.bin,bootloader 烧写到 0x400 处

在这里插入图片描述

  • u-boot.bin , data 方式,烧写到 0x100000 处

在这里插入图片描述

  • 详细的烧写方法参考官方的文档: NK-980IoT_Quick_Start_Guide_EN_Rev1.01.pdf

烧写后启动

  • 启动模式拨码开关,切回 SPI Flash 启动,然后点击【复位键】重启,看一下启动信息

在这里插入图片描述

  • 这样 u-boot 与 u-boot-spl 编译并烧写成功了

小结

  • Nuvoton NK-980IOT开发板 还有 USB、网络等接口,接下来可以用于嵌入式Linux 与 RT-Thread 的学习与研究
http://www.lryc.cn/news/66631.html

相关文章:

  • OpenCL使用CL_MEM_USE_HOST_PTR存储器对象属性与存储器映射
  • 浅谈osgEarth操控器类的createLocalCoordFrame函数如何将局部坐标系的点转为世界坐标系下的Martix(ENU坐标)
  • PHP程序员和Python程序员的职业前景怎么样?我来聊聊自己的体会
  • 【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法
  • 最全的免费SSL证书申请方式
  • Ceph入门到精通-CrushMap算法概述
  • 如何利用API做好电商,接口如何凋用关键字
  • Give me a logic game idea about economics
  • 测试之路,2023年软件测试市场领域有哪些变化?突破走得更远...
  • 配置Windows终端直接执行Python脚本,无需输入“python“
  • IDEA快捷键
  • 关于c++指针数组的要设置初值的情况
  • 泰克RSA306B频谱分析仪测试信道功率方法
  • 深度学习技巧应用12-神经网络训练中批归一化的应用
  • Masonry使用以及源码解析(未完待续
  • 118-Linux_数据库_索引
  • macos和windows区别 macos怎么运行windows程序
  • 一起Talk Android吧(第五百四十二回:无进度值ProgressBar)
  • Oracle DataGuard奇怪的ORA-16494错误
  • 《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!
  • AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘
  • Origin如何绘制基础图形?
  • OpenGL(九)——颜色
  • Python语言技术指南:探索功能丰富的高级编程语言
  • 【YOLO 系列】YOLO v4-v5先验知识
  • 4年外包终于上岸,我只能说别去....
  • Nginx快速入门
  • Leetcode507. 完美数
  • c++ 11标准模板(STL) std::vector (九)
  • 从Facebook到Diem币:社交媒体巨头在加密货币领域的演变