linux驱动开发设备树和总线之间的关系?

linux驱动开发设备树和总线之间的关系?,第1张

在 Linux 系统中,设备树(Device Tree)是一种数据结构,它用于描述硬件结构,帮助内核在启动时确定硬件设备的位置和如何使用它们。在设备树中,节点表示硬件设备,而边表示设备之间的关系。

总线(Bus)是用于在计算机系统中传输数据的通道。它通常是一组连接设备的线路,并允许设备之间交换数据。在 Linux 中,总线也在设备树中表示为节点,并且设备节点与总线节点之间存在边。

因此,在 Linux 系统中,设备树用于描述硬件结构,其中包含设备和总线,以及它们之间的关系。在驱动程序开发中,开发人员通常使用设备树来确定特定设备的位置和如何与其通信。

  通过运行 build 目录下的 mk-uboot.sh 脚本,设定选项为 roc-rk3328-cc

  编译完后输出:

  各个镜像文件的说明如下:

  也可以通过以下文件配置 UBOOT :

  kernel中需要配置,并定义设备树,会涉及到以下文件:

  通过以下命令,完成内核配置,并更新默认配置:

  需要注意,在 make menuconfig 时应进行如下配置:

  配置好后即可编译整个 kernel (脚本文件内部设置了使用 -j4 来编译):

  编译完后输出:

  创建一个大小为 20G 的根文件系统映像文件,将 ubuntu core 解压到该映像中,如果不需要安装过多的软件,可以先设置成 2G ,后期再调整。

  将 qemu-aarch64-static 放到挂载的 rootfs /usr/bin 中,能在 x86_64 主机系统下 chroot 到该 arm64 文件系统中运行:

  用 vim 编辑器打开 sources.list

   chroot 命令用来在指定的根目录下运行指令,在使用 chroot 之后,系统的目录结构将以指定的位置作为 “/” 位置。

  在 rootfs root 用户下设置:

  退出,并卸载文件系统:

  如果想要在创建的根文件系统中安装软件,也可以继续 chroot 到该文件系统中,安装一些常用的软件,比如 "pip" , "numpy" 等,避免复杂的交叉编译环境设置和加快文件系统的成型。

  这样 rootfs.img 里就已经有刚才制作的根目录内容了,但这个 img 文件大小却是定义的镜像的大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。

  检查并查看rootfs.img镜像的大小:

  减小ubuntu.img镜像文件的大小:

  把 Linux 根文件系统映像文件 rootfs 放在 out/ 下,这时 out 目录应包含以下文件:

  该脚本将根据《存储映射》所描述的布局,将分区映像文件写到指定位置,并最终打包成 out/system.img

  如下所示的"parameter.txt"就是按照存储映射布局制作的,只添加了几个必不可少的分区。

  插入 SD 卡,如果 SD 被自动挂载,则先将其卸载。

  安装 pv

  通过检查内核的日志查找 SD 卡的设备文件:

  如果设备文件为 /dev/sdb ,使用 dd 命令进行烧录:

  如果需要将分区镜像写入到 SD 卡,可以运行以下命令:

  也可以运行下面指令,将生成的统一固件 system.img 写入到 SD 卡中:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8285199.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存