「内容分享」嵌入式Linux系列第3部分编译和下载uboot
一、简介
本文介绍如何在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
发表评论