当前位置:   article > 正文

驱动开发-系统移植

驱动开发-系统移植

一、Linux系统移植概念

        需要移植三部分东西,Uboot   ,内核   ,根文件系统 (rootfs)  ,这三个构成了一个完整的Linux系统。

        把这三部分学明白,系统移植就懂点了。

二、Uboot

1、啥是Uboot

uboot就是引导程序下载的一段代码,有三种我们可以去使用的,可以去开发的。

1.官网uboot ,比较原始

2.半导体厂商的uboot ,半导体厂商比如NXP,自家开发板对应修改裁剪的,可靠性比较好

3.还有自己厂家自己做的Uboot,比如说正点原子自家加的开发板,做的Uboot

现在用的正点原子开开发板,还没有自己修改Uboot的啥水平,先用的他们的Uboot跑跑,主要做法:

1.把他们Uboot弄到虚拟机里,配置一下编译前的版本信息,然后进行编译生成镜像文件.mix

2.通过SD卡下载到开发板

3.跑一跑,学一学

但是通过SD卡下载到开发板出现了一个坑:

虚拟机识别不到SD卡,咋办呢,最后慢慢摸索出来了

主要关注下面的内容

1.虚拟机设置,添加USB控制器设置

2.主机设置,打开VMware USB服务

接着

然后重启虚拟机

3.插入SD卡,选择断开连接,然后重新连接就行了

也可以看看有没有这个图标,有着图标说明就可以了

烧写Uboot进入SD卡命令(文档322页):

1.插入SD卡前后,使用ls /dev/sd* 命令查看分区

2.烧写到SD的内存分区

使用 imxdownload SD 卡烧写 led.bin 文件,命令格式如下:
./imxdownload <.bin file> <SD Card>
烧写完成的样子
3.调整拨码开关,开发板的启动方式,插入sd卡

2、Uboot如何用

        使用Uboot当然要用一些命令去操作,主要是一些增、删、改、查的命令。

用这些命令的能操作哪些对象要了解,比如操作信息查询、修改环境变量、操作内存、操作网络,等等,操作这些对象干啥,要了解。

        boot命令记一下bootzbootm boot

        bootz加载镜像文件zImage。也能瞄准地址,加载设备树文件,可以自己试试这个命令。

        bootm也差不多,启用uImage。

3、Uboot移植

        上面也说了,把修改官方的uboot是比较麻烦的,所以要站在巨人的肩膀上,修改芯片厂商修改后的uboot进行开发是比较容易的。

移植操作步骤:

        1.找到对应芯片厂商的Uboot进行编译

        编译的命令如下:

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
  2. make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

        mx6ull_14x14_evk_emmc_defconfig是在Uboot的configs目录配置中找的,命令参数,对应我们开发板的型号。

        arm-linux-gnueabihf- 指定的编译器

上述编译命令,既可以一句依据的编译执行,也可以写在顶层makefile中,也可以写在一个shell脚本中一键执行。

编译完成以后会生成 u-boot.bin u-boot.imx 等文件,但是这些文件是 NXP 官方 I.MX6ULL
EVK 开发板。如何才能用到自家的开翻版呢,这是一个大大的问号?
        2.编译完成后下载到板子里,和上面的操作方式一样
        发现一些问题:就是用正点原子的板子加上NXP的uboot,连接串口也能输出信息,内存分区显示正常,但是类,LCD屏幕不亮和网络连接显示有问题,下面去解决这些问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/133872
推荐阅读
相关标签
  

闽ICP备14008679号