【elfboard linux 开发板】10. 设备树与烧录

1. 设备树介绍

设备树由一系列被命名的node和property组成
可以描述如下信息:

  • CPU的数量和类别
  • 内存基地址和大小
  • 总线和桥
  • 外设连接
  • 中断控制器和中断使用情况
  • GPIO控制器和GPIO使用情况
  • Clock 控制器和 Clock 使用情况

由dts文件以文本方式对系统设备树进行描述,经过dtc编译器将dts文件转化为二进制文件dtb。 dtb文件可以由Linux内核解析,有了设备树就可以在不改动Linux内核的情况下,对不同的平台实现无差别的支持;
硬件有变动时,不需要重新编译内核或驱动程序,只需要更换相应的dts文件即可。dtsi相当于C语言中include的h文件。

2. 移植源码

2.1 获取源码

git clone https://github.com/nxp-imx/linux-imx.git

2.2 添加配置文件

a. 配置要求存放在arch/arm/configs目录的对应文件下,可以通过make 配置文件名生成配置文件,例:make imx_v7_defconfig

b. 因为需要用arch/arm/boot/dts/Makefile来生成设备树,因此在Makefile的如下位置添加需要生成的设备树二进制文件(此处为:imx6ull-elf1-emmc.dtb,通过cp arch/arm/boot/dts/imx6ull-14x14-evk.dts arch/arm/boot/dts/imx6ull-elf1-emmc.dts生成)

vi arch/arm/boot/dts/Makefile
【elfboard linux 开发板】10. 设备树与烧录_第1张图片

c. 编译

  1. make imx_v7_defconfig
  2. make -j2
    报错:/bin/sh: 1: bison: not found
    处理:sudo apt-get install bison

d. 将zImage和对应的.dtb文件拷贝进/run/media/mmcblk1p1/下

scp arch/arm/boot/zImage [email protected]:/run/media/mmcblk1p1/
scp arch/arm/boot/dts/imx6ull-elf1-emmc.dtb [email protected]:/run/media/mmcblk1p1/

e. 保存重启

sync
reboot

在这里插入图片描述
观察时间,可以看到内核成功刷入

f. 补救措施

如果拷贝进去,系统启动不了了

  1. 将开发板boot的1,2位调到ON
  2. 在windows下,解压缩并进入mfgtools
  3. usb-typec连接开发板的OTG
  4. 双击mx6ull-8gemmc-512mddr-qt5.6.vbs打开
  5. 当出现‘符合 HID 标准的供应商定义设备’ 点击start
  6. 当出现 ‘DONE’ 点击Stop,接着点击Exit 完成退出
  7. 将开发板boot的1,2调到OFF,3 调到ON【elfboard linux 开发板】10. 设备树与烧录_第2张图片

你可能感兴趣的:(linux)