「内容分享」嵌入式Linux系列第3部分编译和下载uboot

 admin   2024-02-21 21:07   28 人阅读  0 条评论

一、简介


本文介绍如何在ARM板上编译和下载uboot。对于初学者来说,有三个术语uboot、kernel、rootfs。当我第一次遇到这三个术语时,我感到非常困惑,但现在我使用它们,它们就更有意义了。你不用一开始就太纠结这个题,实际操作的时候你就会明白了。uboot的主要功能是启动Linux内核,因为CPU无法直接执行NAND/EMMC/SD卡等块设备上的代码。像时钟、串口之类的东西需要在复制之前做好。如果想让CPU启动Linux内核,只能让另一个程序进行必要的初始化,然后运行Linux内核的代码来启动Linux内核。您通常将Linux映像存储在块设备上,例如SD卡、Nandflash等。首先运行uboot代码并将内核代码复制到该块中。将设备复制到uboot中的特定内存地址,然后再次运行该地址来启动内核。


2下载资料


对于具体芯片,建议从原芯片厂商获取信息,信息不断更新,更加可靠。NUC972的bsp信息位于githubcom/OpenNuvoton/ARM7-ARM9-Family。


首先下载Uboot。最简单的方法是单击“克隆”或直接下载“下载-Zip”文件。


3Uboot编译


步骤一在虚拟机~/nuc972目录下新建一个uboot文件夹。


步骤2将下载的Windows上的NUC970_U-Boot_v201611-masterzip放入虚拟机的上述目录中。


步骤3解压NUC970_U-Boot_v201611-masterzip文件


第四步编译前,进入NUC970_U-Boot_v201611-master目录,输入源码/home/topsemic/nuc972/toolchain/environmentsh。


如果我输入make并尝试先编译,则会收到以下错误


make:arm-linux-gcc找不到命令


我们需要查看Makefile,因为Makefile中的CROSS_COMPILE设置有题,需要修复并更改为我们已经安装的交叉编译链。


当我重新编译时,出现以下错误


将出现一条消息,指出配置文件丢失。让我们输入makeoldconfig、makemenuconfig或makexconfig。


首先,让我们运行makemenuconfig。当我输入makemenuconfig时,我收到另一条错误消息。


网上查了一下,发现缺少libncurses5-dev库,于是尝试安装。


sudoapt-get安装libncurses5-dev,


如果再次输入makemenuconfig,过一会儿就会出现如下界面。


这意味着makemenuconfig运行成功。


这是一个图形化的配置界面,可以用来配置uboot中的各种参数。使用键盘箭头键向右移动到“保存”,然后按Enter键先保存。


当弹出如下所示的确认信息时,按Enter保存。


出去吧


最后,出口。这将创建一个配置文件。


配置文件是一个隐藏文件。任何以file开头的文件都是隐藏文件。您将需要ls-a才能看到这一点。


现在再次输入make。


又出现了一个错误。我测配置文件可能是错误的。我使用nuc972相关设置输入makenuc970_defconfig。其实这个nuc970_deconfig是一个文件。进入configs目录,打开它,看一下。内部配置选项。uboot中这些参数的定义可以参考《NUC970LinuxBSP用户手册CHTpdf》第41节。


再次成功,在uboot根目录下的spl文件夹下创建了u-bootbin和u-boot-splbin。


关于uboot详细启动过程的信息,网上也有提供。


4.刷入Uboot


现在uboot已经编译成功了,我们来烧写到板子上看看是否可以执行。编程前的准备工作


在Windows上安装WinUSB4NuVCOM_NUC970exe。这是一名司机。具体安装步骤请参见《NUC970Linux快速入门指南CHTpdf》第31节。本文档在百度网盘。


1)板上有跳线帽或拨码开关。切换到USB下载模式,将USB连接到电脑并给开发板上电。


2)打开NuWriterexe,


我的主板有原来的uboot、内核和文件系统,所以我先把它们删除。


3)插入上面创建的u-boot-splbin。


烘焙成功后,你会看到这样的内容


然后烧写ubootbin。


4)将跳线帽或拨码开关切换回NAND操作模式并打开电源。


连接调试串口,输出如下信息


5.结论


本文介绍uboot的编译和编程。uboot的编译方法与传统的MCU编译有很大不同,所以大家需要熟悉一下。


如有疑,请留言讨论。


下一期我们将介绍内核相关的内容。


一、emmc芯片拷贝方法?

1、用途嵌入式开发板通过emmc的内核文件加载并启动Linux操作系统,并存放其他程序文件。必须首先将所需文件写入emmc。


2、完整步骤如下启动uboot后,进入Linux,对emmc进行分区和格式化。Uboot支持fat和ext2格式。这里我们使用fat格式挂载它,然后插入必要的文件。这样重启后,输入uboot,将emmc中的文件加载到内存中并运行。


3、uboot中烧录emmc内容的步骤


1、uboot启动后,输入mmcinfo即可获取mmc相关信息。


2.通过tftp或其他方法启动Linux。


3.Linux启动后,输入fdisk-l查看/dev/mmcblk0中的信息。


4.使用fdisk命令格式化Linux中的mmc分区。


工作要求


1-C2000/MCU-MSP430,芯片使用,项目开发经验1年以上


2-有电机控制相关应用项目开发经验,熟悉无刷直流电机、永磁同步电机、感应电机的控制技术。


3-有太阳能逆变器相关应用项目开发经验,熟悉逆变器MPPT等数字控制技术。


熟练使用4-TI的CCS集成开发环境和IAR等编程工具。


5-能熟练应用一些常见的外设模块,如I2C、SPI、SCI、PWM、CAN、USB、PCI、以太网、视频端口、MMC/SD等。


6-熟练使用MSPFlasher、MSP-FET、MSPGANG等工具等。


7-具有电信、视频编解码、工业总线领域的项目开发经验(例如ethercat、profibus及相关应用)


8-熟练使用Linux、DSP/BIOS开发环境,熟悉uboot、linuxkernel开发。


你不能在Linux上烧录uboot。只能使用烧录工具J-link或Jtagburner。或者,如果你已经有uboot,可以直接使用uboot烧录。


abcdefghijklmn,abcdefghijklmn,abcdefghijklmn,abcdefghijklmn,abcdefghijklmn,abcdefghijklmn,abcdefghijklmn,abcdefghijklmn


本文地址:http://eptisonshop.com/post/41330.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?