NUC980 设备树

2023-12-30 18:30
文章标签 设备 nuc980

本文主要是介绍NUC980 设备树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、U-Boot中有关设备树的配置
  • 二、Kernel中有关设备树的配置
  • 三、NUC980的上电启动
  • 四、NUC980的系统内存映射

一、U-Boot中有关设备树的配置

  1. 通过终端进入 01.u-boot_v2016 中
  2. make distclean //清除所有的object code.
  3. make coidea_nuc980_defconfig //设置Uboot为出厂设置
  4. make menuconfig 中配置如下项:
    Boot images —>
    [ * ] Support Flattened Image Tree
    Library routines —>
    [ * ] Enable the FDT library
    [ ] Support running EFI Applications in U-Boot
    配完后记得Save;
  5. make all //编译U-Boot

编译成功后会产生 u-boot.bin 和 u-boot-spl.bin(如果出错,再 make all 一次就好了) :
u-boot.bin : 完整功能的 U-Boot
u-boot-spl.bin : 将 Main U-Boot 从 NAND flash 搬到 DDR 执行, 只有 NAND boot 时才会用到,
如果是 SPI boot 或 eMMC boot 只需要 u-boot.bin
u-boot-spl.bin 会产生在子目录 /spl 中
u-boot.bin 会产生在根目录中

UBoot 编译完成后会在/tools 子文件夹下生成 mkimage 工具,在编译内核生成 uImage 时会用到这个工具。所以使用命令:
#cp tools/mkimage /bin
安装 mkimage 工具( 重要) 。

二、Kernel中有关设备树的配置

  1. 查看/home/coidea/nuc980 路径下是否有 image 文件夹, 若没有, 则创建一个(必须) 。

  2. 通过终端进入 02.linux_kernel 中

  3. make clean //清除以前的编译数据

  4. make coidea980_defconfig //使用内核出厂配置,注意会使内核还原成配酷客初始配置

  5. make menuconfig 中配置如下项:
    Device Drivers —>
    [ * ] Device Tree and Open Firmware support —>
    Boot options —>
    [ * ] Flattened Device Tree support
    配完后记得Save;

  6. make uImage //编译内核,生成980uimage

  7. make //编译生成nuc980-dev-v1.0.dtb
    编译完成后会在/home/coidea/nuc980/image 生成我们所需的980uimage 镜像 。(注意:1.我们用到的是 980uimage 这个文件, 而不是 980image 2.确保执行这一步之前已经编译过 uboot 并安装过 mkimage 工具)
    设备树会保存在arch/arm/boot/dts/nuc980-dev-v1.0.dtb

  8. 这里使用coidea的开发板,建议我们新增个coidea的设备树;
    a. 进入目录 arch/arm/boot/dts 中,复制一份nuc980-dev-v1.0.dts,然后将其重命名为coidea980-dev-v1.0.dts,命令如下:
    cd arch/arm/boot/dts
    cp nuc980-dev-v1.0.dts coidea980-dev-v1.0.dts
    b. coidea980-dev-v1.0.dts创 建 好 以 后 我 们 还 需 要 修 改 文 件 arch/arm/boot/dts/Makefile , 找 到 “ dtb-$(CONFIG_ARCH_NUC980)”配置项,在此配置项中加入“coidea980-dev-v1.0.dtb” ,如下所示:

dtb-$(CONFIG_ARCH_NUC980) += \
nuc980-dev-v1.0.dtb \
coidea980-dev-v1.0.dtb

三、NUC980的上电启动

NUC980的UBoot前置启动流程:

IBR(Internal Boot ROM) —> u-boot-spl —> u-boot;

NUC980系列支持内置16 KB嵌入式SRAM和16.5 KB IBR(内部引导ROM),用于从USB, NAND, SD/eMMC和SPI Flash启动。
uboot-spl 叫做 uboot-second program loader (是uboot 的第二加载程序,第一加载程序是原厂的程序IBR),其功能特点:

  1. 只适用于NAND引导,SPI引导和eMMC引导只需要U-Boot;
  2. 初始化默认串口;
  3. 设置GD结构体;
  4. 将U-Boot从NAND flash移动到DDR,并启动U-Boot。

四、NUC980的系统内存映射

该芯片仅支持小端数据格式,并提供4g字节的寻址空间。内存空间的定义如图6 -2所示。

从0x0000_0000到0x1FFF_FFFF的内存空间用于SDRAM和外部设备。从0x3C00_0000到0x3C00_3FFF的内存空间用于嵌入式的16kbytes SRAM。用于片上控制器和外设的内存空间是从0xB000_0000到0xB00A_3FFF,而从0xFFFF_0000到0xFFFF_41FF的内存空间用于16.5 Kbytes的内部引导ROM。

该芯片提供阴影记忆功能。从0x8000_0000到0x9FFF_FFFF的内存空间是与从0x0000_0000到0x1FFF_FFFF的内存空间对应的影子内存空间。从0xBC00_0000到0xBC00_3FFF的内存空间是用于从0x3C00_0000到0x3C00_3FFF的内存空间的影子内存空间。如果片上控制器的DMA想要访问这个16Kbytes的嵌入式SRAM,就必须使用0xBC00_0000到0xBC00_3FFF的内存空间。

预留的内存空间无法访问。芯片在访问预留内存空间时的行为是不确定和不可预测的。

在这里插入图片描述

分配给每个片上控制器或外设的寻址空间,如表6.2-1所示。

在这里插入图片描述
在这里插入图片描述

这篇关于NUC980 设备树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/553660

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

海鲜加工污水处理设备处理效果高

诸城市鑫淼环保小编带大家了解一下海鲜加工污水处理设备处理效果高   海鲜加工污水处理设备通常采用物理、化学和生物处理相结合的方法,对废水中的污染物进行高xiao去除。设备设计紧凑,占地面积小,操作简便,适用于不同规模的海鲜加工厂。   设备特点   高xiao性:采用先进的处理工艺和技术,确保废水处理效果稳定可靠。   占地面积小:设备设计紧凑,占地面积小,适合在有限的空间内安装。

集运系统需要与哪些硬件设备集成?

随着电商和跨境贸易的不断发展,集运服务越来越受到海外用户的青睐。集运系统作为一种高效的跨境物流管理工具,可以协调各个环节之间的物流流程,提高物流效率和管理水平,被越来越多的集运企业采用。而集运系统作为集运服务的重要组成部分,也需要配套相应的硬件设备才能更好地支持跨境集运业务。下面就来介绍一下集运系统需要哪些硬件设备支持呢? 1.PDA:是一种便携式电子设备,可以轻松地进行数据采集和处理,具有移

3.门锁_STM32_矩阵按键设备实现

概述 需求来源: 门锁肯定是要输入密码,这个门锁提供了两个输入密码的方式:一个是蓝牙输入,一个是按键输入。对于按键输入,采用矩阵按键来实现。矩阵按键是为了模拟触摸屏的按键输入,后续如果项目结束前还有时间就更新为触摸屏按键输入。 矩阵按键开发整体思路: 由于矩阵按键就是GPIO的控制,所以不进行芯片和设备的分层编写,控制写在同一个文件中,最终向应用层提供一个接口。 代码层级关系:

Anroid BLE蓝牙(手机分别作为中心设备和外围设备)

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。  BLE蓝牙模块主要应用领域     1、移动扩展设备     2、汽车电子设备     3、健康医疗用品:心跳带、血压计等     4、定位应用:室内定位、井下定位等     5、近距离数据采集:无线

RS在不同设备间同步文件

参考: 1. Resilio(BtSync)搭建 2. 使用Resilio Sync共享文件【附操作指南】 4. Linux 下挂载新硬盘方法 5. Partition 1 does not start on physical sector boundary. 6. Ubuntu 16.04添加开机启动脚本的方法 7. Ubuntu 16.04以普通用户身份开机启动 8. Ubunt

如何编写Linux PCI设备驱动器 之一

如何编写Linux PCI设备驱动器 之一 PCI寻址PCI驱动器使用的APIpci_register_driver()pci_driver结构pci_device_id结构 如何查找PCI设备存取PCI配置空间读配置空间APIs写配置空间APIswhere的常量值共用部分类型0类型1 PCI总线通过使用比ISA更高的时钟速率来实现更好的性能;它是时钟运行在 25 或 33 M